From f1bf455da4ccb7f2659c82fbb574ad9aa3fd0743 Mon Sep 17 00:00:00 2001 From: kedrickfudala Date: Mon, 16 Sep 2024 22:12:50 -0400 Subject: [PATCH 001/110] First Commit/Setup --- .gitattributes | 2 + .gitignore | 61 +------------------------------ icon.svg | 1 + icon.svg.import | 37 +++++++++++++++++++ project.godot | 26 +++++++++++++ source/game_container.gd | 9 +++++ source/game_container.tscn | 6 +++ source/stages/stage_template.tscn | 6 +++ source/stages/world.tscn | 3 ++ 9 files changed, 92 insertions(+), 59 deletions(-) create mode 100644 .gitattributes create mode 100644 icon.svg create mode 100644 icon.svg.import create mode 100644 project.godot create mode 100644 source/game_container.gd create mode 100644 source/game_container.tscn create mode 100644 source/stages/stage_template.tscn create mode 100644 source/stages/world.tscn diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..8ad74f78 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore index 0a046de1..47091836 100644 --- a/.gitignore +++ b/.gitignore @@ -1,59 +1,2 @@ -# This .gitignore file should be placed at the root of your Unity project directory -# -# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore -# -/[Ll]ibrary/ -/[Tt]emp/ -/[Oo]bj/ -/[Bb]uild/ -/[Bb]uilds/ -/[Ll]ogs/ -/[Mm]emoryCaptures/ - -# Never ignore Asset meta data -!/[Aa]ssets/**/*.meta - -# Uncomment this line if you wish to ignore the asset store tools plugin -# /[Aa]ssets/AssetStoreTools* - -# Autogenerated Jetbrains Rider plugin -[Aa]ssets/Plugins/Editor/JetBrains* - -# Visual Studio cache directory -.vs/ - -# Gradle cache directory -.gradle/ - -# Autogenerated VS/MD/Consulo solution and project files -ExportedObj/ -.consulo/ -*.csproj -*.unityproj -*.sln -*.suo -*.tmp -*.user -*.userprefs -*.pidb -*.booproj -*.svd -*.pdb -*.mdb -*.opendb -*.VC.db - -# Unity3D generated meta files -*.pidb.meta -*.pdb.meta -*.mdb.meta - -# Unity3D generated file on crash reports -sysinfo.txt - -# Builds -*.apk -*.unitypackage - -# Crashlytics generated file -crashlytics-build.properties +# Godot 4+ specific ignores +.godot/ diff --git a/icon.svg b/icon.svg new file mode 100644 index 00000000..3fe4f4ae --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 00000000..1f65b4f1 --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dekh4a6t8uq3j" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot new file mode 100644 index 00000000..6e67c486 --- /dev/null +++ b/project.godot @@ -0,0 +1,26 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Hallow's Thief" +run/main_scene="res://source/game_container.tscn" +config/features=PackedStringArray("4.2", "GL Compatibility") +config/icon="res://icon.svg" + +[layer_names] + +2d_physics/layer_1="Walls" +2d_physics/layer_2="Player" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/source/game_container.gd b/source/game_container.gd new file mode 100644 index 00000000..23d41218 --- /dev/null +++ b/source/game_container.gd @@ -0,0 +1,9 @@ +extends Node2D +class_name GameContainer + +@onready var WorldScene : PackedScene = preload("res://source/stages/world.tscn") + +func _ready(): + RenderingServer.set_default_clear_color(Color("000000")) + pass + diff --git a/source/game_container.tscn b/source/game_container.tscn new file mode 100644 index 00000000..bfba7d10 --- /dev/null +++ b/source/game_container.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://cpeool1ufkioa"] + +[ext_resource type="Script" path="res://source/game_container.gd" id="1_13cro"] + +[node name="GameContainer" type="Node2D"] +script = ExtResource("1_13cro") diff --git a/source/stages/stage_template.tscn b/source/stages/stage_template.tscn new file mode 100644 index 00000000..a7bbdc54 --- /dev/null +++ b/source/stages/stage_template.tscn @@ -0,0 +1,6 @@ +[gd_scene format=3 uid="uid://dfbde6txjyuca"] + +[node name="StageTemplate" type="Node2D"] + +[node name="TileMap" type="TileMap" parent="."] +format = 2 diff --git a/source/stages/world.tscn b/source/stages/world.tscn new file mode 100644 index 00000000..af085532 --- /dev/null +++ b/source/stages/world.tscn @@ -0,0 +1,3 @@ +[gd_scene format=3 uid="uid://bq7lbiloaxa0a"] + +[node name="World" type="Node2D"] From 001c900cbf430a037667abfaa4e742769db2fc4e Mon Sep 17 00:00:00 2001 From: Luke Webb Date: Sat, 21 Sep 2024 14:18:20 -0400 Subject: [PATCH 002/110] working demo --- scenes/player.tscn | 44 ++++++++++++++++++++++++++++++++++++++++++++ scripts/item.gd | 21 +++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 scenes/player.tscn create mode 100644 scripts/item.gd diff --git a/scenes/player.tscn b/scenes/player.tscn new file mode 100644 index 00000000..e6805ef7 --- /dev/null +++ b/scenes/player.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=4 format=3 uid="uid://cll66afrhe8br"] + +[sub_resource type="GDScript" id="GDScript_rptgx"] +script/source = "extends CharacterBody2D + + +const SPEED = 300.0 +const JUMP_VELOCITY = -400.0 + + +func _physics_process(delta: float) -> void: + # Add the gravity. + if not is_on_floor(): + velocity += get_gravity() * delta + + # Handle jump. + if Input.is_action_just_pressed(\"ui_accept\") and is_on_floor(): + velocity.y = JUMP_VELOCITY + + # Get the input direction and handle the movement/deceleration. + # As good practice, you should replace UI actions with custom gameplay actions. + var direction := Input.get_axis(\"ui_left\", \"ui_right\") + if direction: + velocity.x = direction * SPEED + else: + velocity.x = move_toward(velocity.x, 0, SPEED) + + move_and_slide() +" + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1syju"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_wuljl"] + +[node name="Player" type="CharacterBody2D"] +script = SubResource("GDScript_rptgx") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CapsuleShape2D_1syju") + +[node name="MeshInstance2D" type="MeshInstance2D" parent="."] +position = Vector2(1.07288e-06, -0.5) +scale = Vector2(20, 14.5) +mesh = SubResource("CapsuleMesh_wuljl") diff --git a/scripts/item.gd b/scripts/item.gd new file mode 100644 index 00000000..dee4f192 --- /dev/null +++ b/scripts/item.gd @@ -0,0 +1,21 @@ +extends Resource +class_name Item + + +@export var sprite : Texture +@export var name : String + +#base good guy stat boosts/characteristics (passive items + weapons) +@export var health : float +@export var mana : float +@export var speed : float +@export var cooldown : float +@export var value : int +#@export var type : Global.itemType + + + +#weapon stats (weapons only) +@export var damage : float +@export var attackSpeed : float +@export var manaCost : float From 2d33fa2c24c14fd72ef68e151712c2ce2f2610b9 Mon Sep 17 00:00:00 2001 From: kedrickfudala Date: Tue, 24 Sep 2024 22:28:41 -0400 Subject: [PATCH 003/110] Fixed deprecated tilemap --- project.godot | 2 +- source/game_container.gd | 1 - source/stages/stage_template.tscn | 3 +-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/project.godot b/project.godot index 6e67c486..708ea43a 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="Hallow's Thief" run/main_scene="res://source/game_container.tscn" -config/features=PackedStringArray("4.2", "GL Compatibility") +config/features=PackedStringArray("4.3", "GL Compatibility") config/icon="res://icon.svg" [layer_names] diff --git a/source/game_container.gd b/source/game_container.gd index 23d41218..2abdbea3 100644 --- a/source/game_container.gd +++ b/source/game_container.gd @@ -6,4 +6,3 @@ class_name GameContainer func _ready(): RenderingServer.set_default_clear_color(Color("000000")) pass - diff --git a/source/stages/stage_template.tscn b/source/stages/stage_template.tscn index a7bbdc54..b04eae6a 100644 --- a/source/stages/stage_template.tscn +++ b/source/stages/stage_template.tscn @@ -2,5 +2,4 @@ [node name="StageTemplate" type="Node2D"] -[node name="TileMap" type="TileMap" parent="."] -format = 2 +[node name="TileMapLayer" type="TileMapLayer" parent="."] From 79dd52b57b059e4721733b334072d1982fdb367d Mon Sep 17 00:00:00 2001 From: Luke Webb Date: Thu, 26 Sep 2024 20:04:37 -0400 Subject: [PATCH 004/110] basic player controller, blank demo room added --- project.godot | 25 ++++++++++++++++++++- source/scenes/demo_room.tscn | 9 ++++++++ source/scenes/player.tscn | 18 ++++++++++++++++ source/scripts/player.gd | 42 ++++++++++++++++++++++++++++++++++++ 4 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 source/scenes/demo_room.tscn create mode 100644 source/scenes/player.tscn create mode 100644 source/scripts/player.gd diff --git a/project.godot b/project.godot index 708ea43a..6569ac3f 100644 --- a/project.godot +++ b/project.godot @@ -11,10 +11,33 @@ config_version=5 [application] config/name="Hallow's Thief" -run/main_scene="res://source/game_container.tscn" +run/main_scene="res://source/scenes/demo_room.tscn" config/features=PackedStringArray("4.3", "GL Compatibility") config/icon="res://icon.svg" +[input] + +Left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} +Right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +] +} +Up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +] +} +Down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +] +} + [layer_names] 2d_physics/layer_1="Walls" diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn new file mode 100644 index 00000000..33ba6c57 --- /dev/null +++ b/source/scenes/demo_room.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://diprigu67ubnb"] + +[ext_resource type="PackedScene" uid="uid://rgfnpcsvv534" path="res://source/scenes/player.tscn" id="1_uxgo6"] + +[node name="DemoRoom" type="Node2D"] + +[node name="Player" parent="." instance=ExtResource("1_uxgo6")] + +[node name="Camera2D" type="Camera2D" parent="."] diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn new file mode 100644 index 00000000..ec67b5cf --- /dev/null +++ b/source/scenes/player.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=4 format=3 uid="uid://rgfnpcsvv534"] + +[ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_tx0kn"] + +[node name="Player" type="CharacterBody2D"] +script = ExtResource("1_ws1a7") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CapsuleShape2D_1d7hi") + +[node name="MeshInstance2D" type="MeshInstance2D" parent="."] +position = Vector2(1.07288e-06, 1.90735e-06) +scale = Vector2(20, 15) +mesh = SubResource("CapsuleMesh_tx0kn") diff --git a/source/scripts/player.gd b/source/scripts/player.gd new file mode 100644 index 00000000..c106dd2c --- /dev/null +++ b/source/scripts/player.gd @@ -0,0 +1,42 @@ +extends CharacterBody2D + +var Speed := 0.0 +var topSpeed := 150.0 +var hDirection := 0.0 +var vDirection := 0.0 + +const SPEED_INC := 15.0 + + + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta) -> void: + handle_move(delta) + + + +func handle_move(delta) -> void: + hDirection = Input.get_axis("Left", "Right") + vDirection = Input.get_axis("Up", "Down") + if hDirection and vDirection: + Speed = move_toward(Speed, topSpeed, SPEED_INC) #slowed velocity's to account for increased movement + velocity.x = hDirection * Speed / 1.4 + velocity.y = vDirection * Speed / 1.4 + elif hDirection: + Speed = move_toward(Speed, topSpeed, SPEED_INC) + velocity.x = hDirection * Speed + velocity.y = move_toward(velocity.y, 0, SPEED_INC) + elif vDirection: + Speed = move_toward(Speed, topSpeed, SPEED_INC) + velocity.y = vDirection * Speed + velocity.x = move_toward(velocity.x, 0, SPEED_INC) + else: + velocity.x = move_toward(velocity.x, 0, SPEED_INC) + velocity.y = move_toward(velocity.y, 0, SPEED_INC) + move_and_slide() From b87451d232cfef359fddfd4cb88bcd3c457d7680 Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Fri, 27 Sep 2024 00:31:51 -0400 Subject: [PATCH 005/110] Moved Changes from Vincent to Vincent2 Moves some scripts around and move item getting to player script --- AdditionalShot.tres | 9 ++++++ DmgBuffItem.tres | 9 ++++++ project.godot | 36 ++++++++++------------ source/scenes/ItemTestingScene.tscn | 18 +++++++++++ source/scripts/Item_Advanced_Functions.gd | 12 ++++++++ source/scripts/Item_Test.gd | 10 ++++++ source/scripts/Player_Test.gd | 37 +++++++++++++++++++++++ 7 files changed, 111 insertions(+), 20 deletions(-) create mode 100644 AdditionalShot.tres create mode 100644 DmgBuffItem.tres create mode 100644 source/scenes/ItemTestingScene.tscn create mode 100644 source/scripts/Item_Advanced_Functions.gd create mode 100644 source/scripts/Item_Test.gd create mode 100644 source/scripts/Player_Test.gd diff --git a/AdditionalShot.tres b/AdditionalShot.tres new file mode 100644 index 00000000..c60ba5cc --- /dev/null +++ b/AdditionalShot.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" load_steps=2 format=3 uid="uid://dkvnmfbifsaig"] + +[ext_resource type="Script" path="res://source/scripts/Item_Test.gd" id="1_a0pdk"] + +[resource] +script = ExtResource("1_a0pdk") +damage = 0 +health = 0 +onFireFunctions = "shoot_additional_projectile" diff --git a/DmgBuffItem.tres b/DmgBuffItem.tres new file mode 100644 index 00000000..f97c83ef --- /dev/null +++ b/DmgBuffItem.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" load_steps=2 format=3 uid="uid://6ukslotnk4y3"] + +[ext_resource type="Script" path="res://source/scripts/Item_Test.gd" id="1_h2nlj"] + +[resource] +script = ExtResource("1_h2nlj") +damage = 5 +health = 0 +onFireFunctions = "damage_increase" diff --git a/project.godot b/project.godot index 6569ac3f..77ccd4b6 100644 --- a/project.godot +++ b/project.godot @@ -11,39 +11,35 @@ config_version=5 [application] config/name="Hallow's Thief" -run/main_scene="res://source/scenes/demo_room.tscn" -config/features=PackedStringArray("4.3", "GL Compatibility") +run/main_scene="res://source/scenes/ItemTestingScene.tscn" +config/features=PackedStringArray("4.3", "Forward Plus") config/icon="res://icon.svg" +[autoload] + +ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" + [input] -Left={ +mouse_0={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) ] } -Right={ +mouse_1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null) ] } -Up={ +1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":49,"key_label":0,"unicode":49,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194439,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } -Down={ +2={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":50,"key_label":0,"unicode":50,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194440,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } - -[layer_names] - -2d_physics/layer_1="Walls" -2d_physics/layer_2="Player" - -[rendering] - -renderer/rendering_method="gl_compatibility" -renderer/rendering_method.mobile="gl_compatibility" diff --git a/source/scenes/ItemTestingScene.tscn b/source/scenes/ItemTestingScene.tscn new file mode 100644 index 00000000..8d0e2816 --- /dev/null +++ b/source/scenes/ItemTestingScene.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=5 format=3 uid="uid://csmmvcufjnsl2"] + +[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] +[ext_resource type="Resource" uid="uid://6ukslotnk4y3" path="res://DmgBuffItem.tres" id="2_blmat"] +[ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://AdditionalShot.tres" id="3_slule"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] +script = ExtResource("1_rryau") +items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_slule")]) + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") diff --git a/source/scripts/Item_Advanced_Functions.gd b/source/scripts/Item_Advanced_Functions.gd new file mode 100644 index 00000000..838cc14e --- /dev/null +++ b/source/scripts/Item_Advanced_Functions.gd @@ -0,0 +1,12 @@ +extends Node#extend node to allow global script +#THIS NEEDS TO BE SET AS A GLOBAL SCRIPT +#Project > Project Settings > Globals + + +#Class stores and type of special item functionality +class Item_Advanced_Functions: + static func damage_increase(ps): + ps.damage += 1 + print("I increased ur damage dawg") + static func shoot_additional_projectile(ps): + print("let's pretend the player shot an additional projectile") diff --git a/source/scripts/Item_Test.gd b/source/scripts/Item_Test.gd new file mode 100644 index 00000000..b6ce2ead --- /dev/null +++ b/source/scripts/Item_Test.gd @@ -0,0 +1,10 @@ +extends Resource + +#basic stats +@export var damage :int +@export var health : int +@export var onFireFunctions : String #Array[String] for multiple on fire functions +#Could exports strings of other events that have item functions +#On hit, On take damage, On every frame + +#in the future stat changes could be in an array or dictionary in order to not clutter up the inspector with exports diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd new file mode 100644 index 00000000..e72debb3 --- /dev/null +++ b/source/scripts/Player_Test.gd @@ -0,0 +1,37 @@ +extends Node + +#this is just a test repleca of the player +@export var items: Array[Resource] + + +var damage :int = 0 +var health :int = 0 +signal onAttack(player) +#more signals to tell items when to trigger their effects + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_delta: float) -> void: + #Press enter to get item (currently only the DmgBuffItem) + if Input.is_action_just_pressed("1"): + print("Gave Item " + str(items[0].resource_path)) + get_item(items[0]) + if Input.is_action_just_pressed("2"): + print("Gave Item " + str(items[1].resource_path)) + get_item(items[1]) + + #press left mouse to "fire" + if Input.is_action_just_pressed("mouse_0"): + print("Just Fired") + onAttack.emit(self) + #press right mouse to check damage stat + if Input.is_action_just_pressed("mouse_1"): + print("damage is " + str(damage)) +func get_item(item : Resource): + damage += item.damage + health += item.health + onAttack.connect(Callable(ItemAdvancedFunctions.Item_Advanced_Functions,item.onFireFunctions)) From 55ea080414995093544d18b4264a0f269beba8fc Mon Sep 17 00:00:00 2001 From: JoeyGiordano Date: Sat, 28 Sep 2024 11:06:50 -0400 Subject: [PATCH 006/110] Project Settings Added arrow key to movement binds Changed default window settings --- project.godot | 19 ++++++++++++++----- source/scenes/demo_room.tscn | 5 +++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/project.godot b/project.godot index 6569ac3f..ae6e7f66 100644 --- a/project.godot +++ b/project.godot @@ -12,29 +12,38 @@ config_version=5 config/name="Hallow's Thief" run/main_scene="res://source/scenes/demo_room.tscn" -config/features=PackedStringArray("4.3", "GL Compatibility") +config/features=PackedStringArray("4.2", "GL Compatibility") config/icon="res://icon.svg" +[display] + +window/size/mode=2 +window/stretch/mode="canvas_items" + [input] Left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) ] } Right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) ] } Up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) ] } Down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) ] } diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 33ba6c57..87dbbc09 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -7,3 +7,8 @@ [node name="Player" parent="." instance=ExtResource("1_uxgo6")] [node name="Camera2D" type="Camera2D" parent="."] + +[node name="ColorRect" type="ColorRect" parent="."] +offset_right = 40.0 +offset_bottom = 40.0 +color = Color(1, 0, 1, 1) From 3b58b10eca8f1c2af74e024c50aec40dd4b5afce Mon Sep 17 00:00:00 2001 From: JoeyGiordano Date: Sat, 28 Sep 2024 13:55:54 -0400 Subject: [PATCH 007/110] Item Functionality First Try --- source/item/Stats.gd | 30 ++++++++++++++++++++++++ source/item/base_player_stats.tres | 12 ++++++++++ source/item/item_resource.gd | 28 ++++++++++++++++++++++ source/item/items/item1.tres | 6 +++++ source/item/items/item2.tres | 12 ++++++++++ source/scenes/item_handler.gd | 37 ++++++++++++++++++++++++++++++ source/scenes/player.tscn | 8 ++++++- 7 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 source/item/Stats.gd create mode 100644 source/item/base_player_stats.tres create mode 100644 source/item/item_resource.gd create mode 100644 source/item/items/item1.tres create mode 100644 source/item/items/item2.tres create mode 100644 source/scenes/item_handler.gd diff --git a/source/item/Stats.gd b/source/item/Stats.gd new file mode 100644 index 00000000..c1a332e8 --- /dev/null +++ b/source/item/Stats.gd @@ -0,0 +1,30 @@ +class_name Stats + +var damage : float = 0 +var dmg_mult : float = 0 +var max_health : float = 0 +var strength : float = 0 +var speed : float = 0 + +func add_stats(s : Stats) : + damage += s.damage + dmg_mult += s.dmg_mult + max_health += s.max_health + strength += s.strength + speed += s.speed + +func subtract_stats(s : Stats) : + damage -= s.damage + dmg_mult -= s.dmg_mult + max_health -= s.max_health + strength -= s.strength + speed -= s.speed + +func copy() -> Stats : + var s = Stats.new() + s.damage = damage + s.dmg_mult = dmg_mult + s.max_health = max_health + s.strength = strength + s.speed = speed + return s \ No newline at end of file diff --git a/source/item/base_player_stats.tres b/source/item/base_player_stats.tres new file mode 100644 index 00000000..9d1abe40 --- /dev/null +++ b/source/item/base_player_stats.tres @@ -0,0 +1,12 @@ +[gd_resource type="Resource" load_steps=2 format=3 uid="uid://1qjff6n2w5m"] + +[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_3dkj6"] + +[resource] +script = ExtResource("1_3dkj6") +damage = 5.0 +dmg_mult = 1.0 +max_health = 100.0 +strength = 2.0 +speed = 4.0 +func_name = "" diff --git a/source/item/item_resource.gd b/source/item/item_resource.gd new file mode 100644 index 00000000..7986ed21 --- /dev/null +++ b/source/item/item_resource.gd @@ -0,0 +1,28 @@ +extends Resource + +@export var damage : float = 0 +@export var dmg_mult : float = 0 +@export var max_health : float = 0 +@export var strength : float = 0 +@export var speed : float = 0 +@export var func_name : String = "" + + +func get_stats() -> Stats : + var s = Stats.new() + s.damage = damage + s.dmg_mult = dmg_mult + s.max_health = max_health + s.strength = strength + s.speed = speed + return s + +#################################################################### +###### ITEM FUNCTIONS ######################################## + +static func do_nothing(item_handler : Node) : + print(item_handler.player_stats.damage) + item_handler.player_stats.damage += 2 + print(item_handler.player_stats.damage) + print("nothing") + pass \ No newline at end of file diff --git a/source/item/items/item1.tres b/source/item/items/item1.tres new file mode 100644 index 00000000..9a42d51b --- /dev/null +++ b/source/item/items/item1.tres @@ -0,0 +1,6 @@ +[gd_resource type="Resource" load_steps=2 format=3 uid="uid://hxw1lhveewdh"] + +[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_u47e6"] + +[resource] +script = ExtResource("1_u47e6") diff --git a/source/item/items/item2.tres b/source/item/items/item2.tres new file mode 100644 index 00000000..3c37f9d3 --- /dev/null +++ b/source/item/items/item2.tres @@ -0,0 +1,12 @@ +[gd_resource type="Resource" load_steps=2 format=3 uid="uid://wracq7cgo1wj"] + +[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_hqexa"] + +[resource] +script = ExtResource("1_hqexa") +damage = 0.0 +dmg_mult = 0.0 +max_health = 0.0 +strength = 0.0 +speed = 0.0 +func_name = "" diff --git a/source/scenes/item_handler.gd b/source/scenes/item_handler.gd new file mode 100644 index 00000000..f01a58eb --- /dev/null +++ b/source/scenes/item_handler.gd @@ -0,0 +1,37 @@ +extends Node2D + +var items : Array[Resource] + +@export var base_stats : Resource #base stats +var stats_with_items : Stats = Stats.new() #base stats + stats from items (updated when a new item is picked up) +var player_stats : Stats = Stats.new() #base stats + stats from items + conditional effects from items (updated every frame) + + +func _process(delta): + handle_process_effects() + pass + +func handle_process_effects() : + player_stats = stats_with_items.copy() + for item in items : + call(item.func_name, self) + pass + +func handle_pickup(item : Resource) : + #add the item list of player items + items.append(item) + + #change the player stats (eg if the item has damage +2, the player stats_with_items damage will increase by 2) + stats_with_items.add_stats(item.get_stats()) + + #here we could also add something for a special on pickup function for each item + +func handle_drop(item : Resource) : + #remove the item from the list of player items + items.remove_at(items.find(item)) + + #change the player stats (eg if the item has damage +2, the player stats_with_items damage will decrease by 2) + stats_with_items.subtract_stats(item.get_stats()) + + #here we could also add something for a special on drop function for each item + diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index ec67b5cf..9d1c949c 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -1,6 +1,8 @@ -[gd_scene load_steps=4 format=3 uid="uid://rgfnpcsvv534"] +[gd_scene load_steps=6 format=3 uid="uid://rgfnpcsvv534"] [ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] +[ext_resource type="Script" path="res://source/scenes/item_handler.gd" id="2_cjdm3"] +[ext_resource type="Resource" uid="uid://1qjff6n2w5m" path="res://source/item/base_player_stats.tres" id="3_0avcd"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] @@ -16,3 +18,7 @@ shape = SubResource("CapsuleShape2D_1d7hi") position = Vector2(1.07288e-06, 1.90735e-06) scale = Vector2(20, 15) mesh = SubResource("CapsuleMesh_tx0kn") + +[node name="ItemHandler" type="Node2D" parent="."] +script = ExtResource("2_cjdm3") +base_stats = ExtResource("3_0avcd") From 9d8f0f4521e653654f38469e5f8e7314d694ed9e Mon Sep 17 00:00:00 2001 From: JoeyGiordano Date: Sat, 28 Sep 2024 16:38:44 -0400 Subject: [PATCH 008/110] Item and Stats Functionality Tested; not thoroughly tested. Added what we were talking about in the meeting today. Left a few things in there that are for testing. Left a ton of comments. I tried to keep it as consolidated and simple as possible --- source/item/Stats.gd | 8 ++-- source/item/base_player_stats.tres | 4 +- source/item/item.gd | 8 ++++ source/item/item_resource.gd | 25 ++++++---- source/item/items/item1.tres | 6 --- source/item/items/item2.tres | 12 ----- source/item/stats_and_item_handler.gd | 42 ++++++++++++++++ source/scenes/demo_room.tscn | 6 ++- source/scenes/item_handler.gd | 37 -------------- source/scenes/player.tscn | 35 +++++++++++--- source/scripts/player.gd | 69 +++++++++++++++------------ source/scripts/quit.gd | 5 ++ 12 files changed, 150 insertions(+), 107 deletions(-) create mode 100644 source/item/item.gd delete mode 100644 source/item/items/item1.tres delete mode 100644 source/item/items/item2.tres create mode 100644 source/item/stats_and_item_handler.gd delete mode 100644 source/scenes/item_handler.gd create mode 100644 source/scripts/quit.gd diff --git a/source/item/Stats.gd b/source/item/Stats.gd index c1a332e8..d16ab9a4 100644 --- a/source/item/Stats.gd +++ b/source/item/Stats.gd @@ -4,21 +4,21 @@ var damage : float = 0 var dmg_mult : float = 0 var max_health : float = 0 var strength : float = 0 -var speed : float = 0 +var top_speed : float = 0 func add_stats(s : Stats) : damage += s.damage dmg_mult += s.dmg_mult max_health += s.max_health strength += s.strength - speed += s.speed + top_speed += s.top_speed func subtract_stats(s : Stats) : damage -= s.damage dmg_mult -= s.dmg_mult max_health -= s.max_health strength -= s.strength - speed -= s.speed + top_speed -= s.top_speed func copy() -> Stats : var s = Stats.new() @@ -26,5 +26,5 @@ func copy() -> Stats : s.dmg_mult = dmg_mult s.max_health = max_health s.strength = strength - s.speed = speed + s.top_speed = top_speed return s \ No newline at end of file diff --git a/source/item/base_player_stats.tres b/source/item/base_player_stats.tres index 9d1abe40..a41d113a 100644 --- a/source/item/base_player_stats.tres +++ b/source/item/base_player_stats.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" load_steps=2 format=3 uid="uid://1qjff6n2w5m"] +[gd_resource type="Resource" script_class="Item_Res" load_steps=2 format=3 uid="uid://1qjff6n2w5m"] [ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_3dkj6"] @@ -8,5 +8,5 @@ damage = 5.0 dmg_mult = 1.0 max_health = 100.0 strength = 2.0 -speed = 4.0 +top_speed = 0.0 func_name = "" diff --git a/source/item/item.gd b/source/item/item.gd new file mode 100644 index 00000000..c8c5387b --- /dev/null +++ b/source/item/item.gd @@ -0,0 +1,8 @@ +extends Node2D + +class_name Item + +@export var item_res : Item_Res + +func get_stats() -> Stats : + return item_res.get_stats() \ No newline at end of file diff --git a/source/item/item_resource.gd b/source/item/item_resource.gd index 7986ed21..0c2807ca 100644 --- a/source/item/item_resource.gd +++ b/source/item/item_resource.gd @@ -1,12 +1,15 @@ extends Resource +class_name Item_Res + @export var damage : float = 0 @export var dmg_mult : float = 0 @export var max_health : float = 0 @export var strength : float = 0 -@export var speed : float = 0 +@export var top_speed : float = 0 @export var func_name : String = "" +#note that when adding a stat, a few lines need to be added in stats.gd and in get_stats() in this class func get_stats() -> Stats : var s = Stats.new() @@ -14,15 +17,21 @@ func get_stats() -> Stats : s.dmg_mult = dmg_mult s.max_health = max_health s.strength = strength - s.speed = speed + s.top_speed = top_speed return s #################################################################### -###### ITEM FUNCTIONS ######################################## +###### ITEM SPECIFIC FUNCTIONS ######################################## + +#EXAMPLE +""" +static func amulet_of_fear(player : Player) : + if (player.is_scared) : + player.stats.top_speed += 10 +""" -static func do_nothing(item_handler : Node) : - print(item_handler.player_stats.damage) - item_handler.player_stats.damage += 2 - print(item_handler.player_stats.damage) +#TESTING +static func do_nothing(player : Player) : + player.stats.top_speed += 10 print("nothing") - pass \ No newline at end of file + pass diff --git a/source/item/items/item1.tres b/source/item/items/item1.tres deleted file mode 100644 index 9a42d51b..00000000 --- a/source/item/items/item1.tres +++ /dev/null @@ -1,6 +0,0 @@ -[gd_resource type="Resource" load_steps=2 format=3 uid="uid://hxw1lhveewdh"] - -[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_u47e6"] - -[resource] -script = ExtResource("1_u47e6") diff --git a/source/item/items/item2.tres b/source/item/items/item2.tres deleted file mode 100644 index 3c37f9d3..00000000 --- a/source/item/items/item2.tres +++ /dev/null @@ -1,12 +0,0 @@ -[gd_resource type="Resource" load_steps=2 format=3 uid="uid://wracq7cgo1wj"] - -[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_hqexa"] - -[resource] -script = ExtResource("1_hqexa") -damage = 0.0 -dmg_mult = 0.0 -max_health = 0.0 -strength = 0.0 -speed = 0.0 -func_name = "" diff --git a/source/item/stats_and_item_handler.gd b/source/item/stats_and_item_handler.gd new file mode 100644 index 00000000..8c19c0c0 --- /dev/null +++ b/source/item/stats_and_item_handler.gd @@ -0,0 +1,42 @@ +extends Node2D + +@onready var player := get_parent() +@onready var unconditional_stats : Stats = player.base_stats.get_stats().copy() #player base stats + unconditional stats from items (updated when a new item is picked up) + + +func _ready(): + #temp code allowing items to be added before runtime + for item in get_children() : + handle_pickup(item) + +func _process(delta): + handle_process_effects() + pass + +func handle_process_effects() : + #reset the stats to the non-conditional values + player.stats = unconditional_stats.copy() + #add any conditional values + for item in get_children() : + if item.item_res.func_name == "" : continue + item.item_res.call(item.item_res.func_name, player) #calls the item specific function, passes the player + pass + +func handle_pickup(item : Item) : + #add the item node as a child of this node, the children of this node is the list of items the player has + item.reparent(self) + #change the unconditional stats (eg if the item has damage +2, the player unconditional_stats damage will increase by 2) + unconditional_stats.add_stats(item.get_stats()) + #here we could also add something for a special on_pickup() for each item if need be + pass + +func handle_drop(item : Item, destroy : bool) : + #if destroy is false, the item should be reparented + #change the unconditional stats (eg if the item has damage +2, the player unconditional_stats damage will decrease by 2) + unconditional_stats.subtract_stats(item.get_stats()) + #here we could also add something for a special on_drop() for each item if need be + #remove the item from the list of player items + #(queue_free() is temporary, will change later when we know whats actually going to happen with the item) + if destroy : item.queue_free() + pass + diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 87dbbc09..81ed9a43 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=2 format=3 uid="uid://diprigu67ubnb"] +[gd_scene load_steps=3 format=3 uid="uid://diprigu67ubnb"] [ext_resource type="PackedScene" uid="uid://rgfnpcsvv534" path="res://source/scenes/player.tscn" id="1_uxgo6"] +[ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] [node name="DemoRoom" type="Node2D"] @@ -12,3 +13,6 @@ offset_right = 40.0 offset_bottom = 40.0 color = Color(1, 0, 1, 1) + +[node name="quit" type="Node2D" parent="."] +script = ExtResource("2_c3313") diff --git a/source/scenes/item_handler.gd b/source/scenes/item_handler.gd deleted file mode 100644 index f01a58eb..00000000 --- a/source/scenes/item_handler.gd +++ /dev/null @@ -1,37 +0,0 @@ -extends Node2D - -var items : Array[Resource] - -@export var base_stats : Resource #base stats -var stats_with_items : Stats = Stats.new() #base stats + stats from items (updated when a new item is picked up) -var player_stats : Stats = Stats.new() #base stats + stats from items + conditional effects from items (updated every frame) - - -func _process(delta): - handle_process_effects() - pass - -func handle_process_effects() : - player_stats = stats_with_items.copy() - for item in items : - call(item.func_name, self) - pass - -func handle_pickup(item : Resource) : - #add the item list of player items - items.append(item) - - #change the player stats (eg if the item has damage +2, the player stats_with_items damage will increase by 2) - stats_with_items.add_stats(item.get_stats()) - - #here we could also add something for a special on pickup function for each item - -func handle_drop(item : Resource) : - #remove the item from the list of player items - items.remove_at(items.find(item)) - - #change the player stats (eg if the item has damage +2, the player stats_with_items damage will decrease by 2) - stats_with_items.subtract_stats(item.get_stats()) - - #here we could also add something for a special on drop function for each item - diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index 9d1c949c..cd6b74a3 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -1,15 +1,35 @@ -[gd_scene load_steps=6 format=3 uid="uid://rgfnpcsvv534"] +[gd_scene load_steps=9 format=3 uid="uid://rgfnpcsvv534"] [ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] -[ext_resource type="Script" path="res://source/scenes/item_handler.gd" id="2_cjdm3"] -[ext_resource type="Resource" uid="uid://1qjff6n2w5m" path="res://source/item/base_player_stats.tres" id="3_0avcd"] +[ext_resource type="Script" path="res://source/item/stats_and_item_handler.gd" id="3_3yyiq"] +[ext_resource type="Script" path="res://source/item/item.gd" id="4_imn1n"] +[ext_resource type="Script" path="res://source/item/item_resource.gd" id="5_qrgxk"] + +[sub_resource type="Resource" id="Resource_t33mb"] +script = ExtResource("5_qrgxk") +damage = 0.0 +dmg_mult = 0.0 +max_health = 0.0 +strength = 0.0 +top_speed = 10.0 +func_name = "" [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] [sub_resource type="CapsuleMesh" id="CapsuleMesh_tx0kn"] +[sub_resource type="Resource" id="Resource_qmnsb"] +script = ExtResource("5_qrgxk") +damage = 0.0 +dmg_mult = 0.0 +max_health = 0.0 +strength = 0.0 +top_speed = 3.0 +func_name = "do_nothing" + [node name="Player" type="CharacterBody2D"] script = ExtResource("1_ws1a7") +base_stats = SubResource("Resource_t33mb") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CapsuleShape2D_1d7hi") @@ -19,6 +39,9 @@ position = Vector2(1.07288e-06, 1.90735e-06) scale = Vector2(20, 15) mesh = SubResource("CapsuleMesh_tx0kn") -[node name="ItemHandler" type="Node2D" parent="."] -script = ExtResource("2_cjdm3") -base_stats = ExtResource("3_0avcd") +[node name="StatsAndItemHandler" type="Node2D" parent="."] +script = ExtResource("3_3yyiq") + +[node name="Item" type="Node2D" parent="StatsAndItemHandler"] +script = ExtResource("4_imn1n") +item_res = SubResource("Resource_qmnsb") diff --git a/source/scripts/player.gd b/source/scripts/player.gd index c106dd2c..fe1579e9 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -1,42 +1,49 @@ extends CharacterBody2D -var Speed := 0.0 -var topSpeed := 150.0 -var hDirection := 0.0 -var vDirection := 0.0 - -const SPEED_INC := 15.0 +class_name Player +var Speed := 0.0 +var movement := Vector2.ZERO +const TOP_SPEED_FACTOR := 15.0 +const ACCELERATION := 15.0 -# Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. + pass -# Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta) -> void: - handle_move(delta) - - - -func handle_move(delta) -> void: - hDirection = Input.get_axis("Left", "Right") - vDirection = Input.get_axis("Up", "Down") - if hDirection and vDirection: - Speed = move_toward(Speed, topSpeed, SPEED_INC) #slowed velocity's to account for increased movement - velocity.x = hDirection * Speed / 1.4 - velocity.y = vDirection * Speed / 1.4 - elif hDirection: - Speed = move_toward(Speed, topSpeed, SPEED_INC) - velocity.x = hDirection * Speed - velocity.y = move_toward(velocity.y, 0, SPEED_INC) - elif vDirection: - Speed = move_toward(Speed, topSpeed, SPEED_INC) - velocity.y = vDirection * Speed - velocity.x = move_toward(velocity.x, 0, SPEED_INC) - else: - velocity.x = move_toward(velocity.x, 0, SPEED_INC) - velocity.y = move_toward(velocity.y, 0, SPEED_INC) + handle_move() + + +func handle_move() -> void: + movement = Vector2(Input.get_axis("Left", "Right"), Input.get_axis("Up", "Down")).normalized() + if movement.length() : + Speed = move_toward(Speed, stats.top_speed * TOP_SPEED_FACTOR, ACCELERATION) + + if movement.x : + velocity.x = movement.x * Speed + else : + velocity.x = move_toward(velocity.x, 0, ACCELERATION) + + if movement.y : + velocity.y = movement.y * Speed + else : + velocity.y = move_toward(velocity.y, 0, ACCELERATION) + move_and_slide() + +#### item and stats handling (everything else is implemented in the stats_and_item_handler) +@onready var stats_and_item_handler : Node2D = $StatsAndItemHandler +@export var base_stats : Item_Res +var stats : Stats = Stats.new() + +func pickup_item(item : Item) : + stats_and_item_handler.handle_pickup(item) + pass + +func drop_item(item : Item, destroy : bool) : + #if destroy is false, you should be reparenting the item + stats_and_item_handler.handle_drop(item, destroy) + pass \ No newline at end of file diff --git a/source/scripts/quit.gd b/source/scripts/quit.gd new file mode 100644 index 00000000..af9cc95b --- /dev/null +++ b/source/scripts/quit.gd @@ -0,0 +1,5 @@ +extends Node + +func _process(delta): + if Input.is_key_pressed(KEY_Q) : + get_tree().quit() \ No newline at end of file From ba98c8d54bce85917747db3c5c59e8e6c6cb82c4 Mon Sep 17 00:00:00 2001 From: JoeyGiordano Date: Sun, 29 Sep 2024 17:05:47 -0400 Subject: [PATCH 009/110] Item and Stats Manager Refined Ready To Use --- source/item/Stats.gd | 48 ++++++++++++++++----------- source/item/item_resource.gd | 44 +++++++++++++++++------- source/item/stats_and_item_handler.gd | 11 +++--- source/scenes/player.tscn | 33 +++++++----------- source/scripts/player.gd | 2 +- 5 files changed, 77 insertions(+), 61 deletions(-) diff --git a/source/item/Stats.gd b/source/item/Stats.gd index d16ab9a4..f18d4d2a 100644 --- a/source/item/Stats.gd +++ b/source/item/Stats.gd @@ -1,30 +1,38 @@ class_name Stats -var damage : float = 0 -var dmg_mult : float = 0 -var max_health : float = 0 -var strength : float = 0 -var top_speed : float = 0 +var health : float = 0 +var topSpeed : float = 0 +var attackSpeed : float = 0 +var attackDamage : float = 0 +var dashCooldown : float = 0 +var abilityCooldown : float = 0 +var cost : int = 0 func add_stats(s : Stats) : - damage += s.damage - dmg_mult += s.dmg_mult - max_health += s.max_health - strength += s.strength - top_speed += s.top_speed + health += s.health + topSpeed += s.topSpeed + attackSpeed += s.attackSpeed + attackDamage += s.attackDamage + dashCooldown += s.dashCooldown + abilityCooldown += s.abilityCooldown + cost += s.cost func subtract_stats(s : Stats) : - damage -= s.damage - dmg_mult -= s.dmg_mult - max_health -= s.max_health - strength -= s.strength - top_speed -= s.top_speed + health -= s.health + topSpeed -= s.topSpeed + attackSpeed -= s.attackSpeed + attackDamage -= s.attackDamage + dashCooldown -= s.dashCooldown + abilityCooldown -= s.abilityCooldown + cost -= s.cost func copy() -> Stats : var s = Stats.new() - s.damage = damage - s.dmg_mult = dmg_mult - s.max_health = max_health - s.strength = strength - s.top_speed = top_speed + s.health = health + s.topSpeed = topSpeed + s.attackSpeed = attackSpeed + s.attackDamage = attackDamage + s.dashCooldown = dashCooldown + s.abilityCooldown = abilityCooldown + s.cost = cost return s \ No newline at end of file diff --git a/source/item/item_resource.gd b/source/item/item_resource.gd index 0c2807ca..426060e5 100644 --- a/source/item/item_resource.gd +++ b/source/item/item_resource.gd @@ -1,23 +1,43 @@ extends Resource - class_name Item_Res -@export var damage : float = 0 -@export var dmg_mult : float = 0 -@export var max_health : float = 0 -@export var strength : float = 0 -@export var top_speed : float = 0 -@export var func_name : String = "" +enum Rarity { + COMMON, + UNCOMMON, + RARE, + LEGENDARY +} + +#Info +@export var sprite : Texture +@export var name : String +@export var description : String +@export var rarity : Rarity + +#Functions +@export var func_names : Array[String] + +#Stats +@export var health : float +@export var topSpeed : float +@export var attackSpeed : float +@export var attackDamage : float +@export var dashCooldown : float +@export var abilityCooldown : float +@export var cost : int + #note that when adding a stat, a few lines need to be added in stats.gd and in get_stats() in this class func get_stats() -> Stats : var s = Stats.new() - s.damage = damage - s.dmg_mult = dmg_mult - s.max_health = max_health - s.strength = strength - s.top_speed = top_speed + s.health = health + s.topSpeed = topSpeed + s.attackSpeed = attackSpeed + s.attackDamage = attackDamage + s.dashCooldown = dashCooldown + s.abilityCooldown = abilityCooldown + s.cost = cost return s #################################################################### diff --git a/source/item/stats_and_item_handler.gd b/source/item/stats_and_item_handler.gd index 8c19c0c0..e6f7ae02 100644 --- a/source/item/stats_and_item_handler.gd +++ b/source/item/stats_and_item_handler.gd @@ -4,11 +4,6 @@ extends Node2D @onready var unconditional_stats : Stats = player.base_stats.get_stats().copy() #player base stats + unconditional stats from items (updated when a new item is picked up) -func _ready(): - #temp code allowing items to be added before runtime - for item in get_children() : - handle_pickup(item) - func _process(delta): handle_process_effects() pass @@ -18,8 +13,10 @@ func handle_process_effects() : player.stats = unconditional_stats.copy() #add any conditional values for item in get_children() : - if item.item_res.func_name == "" : continue - item.item_res.call(item.item_res.func_name, player) #calls the item specific function, passes the player + #calls the item specific functions, passes the player + for func_name in item.item_res.func_names : + if func_name == "" : continue + item.item_res.call(func_name, player) #this line calls a one of the static functions in the Item_Res class pass func handle_pickup(item : Item) : diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index cd6b74a3..529e164b 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -1,32 +1,27 @@ -[gd_scene load_steps=9 format=3 uid="uid://rgfnpcsvv534"] +[gd_scene load_steps=7 format=3 uid="uid://rgfnpcsvv534"] [ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] [ext_resource type="Script" path="res://source/item/stats_and_item_handler.gd" id="3_3yyiq"] -[ext_resource type="Script" path="res://source/item/item.gd" id="4_imn1n"] [ext_resource type="Script" path="res://source/item/item_resource.gd" id="5_qrgxk"] [sub_resource type="Resource" id="Resource_t33mb"] script = ExtResource("5_qrgxk") -damage = 0.0 -dmg_mult = 0.0 -max_health = 0.0 -strength = 0.0 -top_speed = 10.0 -func_name = "" +name = "" +description = "" +rarity = 0 +func_names = Array[String]([]) +health = 0.0 +topSpeed = 10.0 +attackSpeed = 0.0 +attackDamage = 0.0 +dashCooldown = 0.0 +abilityCooldown = 0.0 +cost = 0 [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] [sub_resource type="CapsuleMesh" id="CapsuleMesh_tx0kn"] -[sub_resource type="Resource" id="Resource_qmnsb"] -script = ExtResource("5_qrgxk") -damage = 0.0 -dmg_mult = 0.0 -max_health = 0.0 -strength = 0.0 -top_speed = 3.0 -func_name = "do_nothing" - [node name="Player" type="CharacterBody2D"] script = ExtResource("1_ws1a7") base_stats = SubResource("Resource_t33mb") @@ -41,7 +36,3 @@ mesh = SubResource("CapsuleMesh_tx0kn") [node name="StatsAndItemHandler" type="Node2D" parent="."] script = ExtResource("3_3yyiq") - -[node name="Item" type="Node2D" parent="StatsAndItemHandler"] -script = ExtResource("4_imn1n") -item_res = SubResource("Resource_qmnsb") diff --git a/source/scripts/player.gd b/source/scripts/player.gd index fe1579e9..a079c472 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -20,7 +20,7 @@ func _process(delta) -> void: func handle_move() -> void: movement = Vector2(Input.get_axis("Left", "Right"), Input.get_axis("Up", "Down")).normalized() if movement.length() : - Speed = move_toward(Speed, stats.top_speed * TOP_SPEED_FACTOR, ACCELERATION) + Speed = move_toward(Speed, stats.topSpeed * TOP_SPEED_FACTOR, ACCELERATION) if movement.x : velocity.x = movement.x * Speed From 9bdf7f84a734929f4a702d92b57253d4ea2de5f2 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 3 Oct 2024 19:15:43 -0400 Subject: [PATCH 010/110] Bump project version from 4.2 to 4.3 --- project.godot | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/project.godot b/project.godot index ae6e7f66..bba8654f 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="Hallow's Thief" run/main_scene="res://source/scenes/demo_room.tscn" -config/features=PackedStringArray("4.2", "GL Compatibility") +config/features=PackedStringArray("4.3", "GL Compatibility") config/icon="res://icon.svg" [display] @@ -24,26 +24,26 @@ window/stretch/mode="canvas_items" Left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } Right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } Up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } Down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } From 15dc2fd4fbb8bc89289d2c0f20d26f3892d36f41 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 3 Oct 2024 19:43:17 -0400 Subject: [PATCH 011/110] Delete old item script --- scripts/item.gd | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 scripts/item.gd diff --git a/scripts/item.gd b/scripts/item.gd deleted file mode 100644 index dee4f192..00000000 --- a/scripts/item.gd +++ /dev/null @@ -1,21 +0,0 @@ -extends Resource -class_name Item - - -@export var sprite : Texture -@export var name : String - -#base good guy stat boosts/characteristics (passive items + weapons) -@export var health : float -@export var mana : float -@export var speed : float -@export var cooldown : float -@export var value : int -#@export var type : Global.itemType - - - -#weapon stats (weapons only) -@export var damage : float -@export var attackSpeed : float -@export var manaCost : float From c0aa50f4f9ff939b0d1872f747e4252237bd2c19 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 3 Oct 2024 19:53:33 -0400 Subject: [PATCH 012/110] Remove redundant player scene --- scenes/player.tscn | 44 -------------------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 scenes/player.tscn diff --git a/scenes/player.tscn b/scenes/player.tscn deleted file mode 100644 index e6805ef7..00000000 --- a/scenes/player.tscn +++ /dev/null @@ -1,44 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://cll66afrhe8br"] - -[sub_resource type="GDScript" id="GDScript_rptgx"] -script/source = "extends CharacterBody2D - - -const SPEED = 300.0 -const JUMP_VELOCITY = -400.0 - - -func _physics_process(delta: float) -> void: - # Add the gravity. - if not is_on_floor(): - velocity += get_gravity() * delta - - # Handle jump. - if Input.is_action_just_pressed(\"ui_accept\") and is_on_floor(): - velocity.y = JUMP_VELOCITY - - # Get the input direction and handle the movement/deceleration. - # As good practice, you should replace UI actions with custom gameplay actions. - var direction := Input.get_axis(\"ui_left\", \"ui_right\") - if direction: - velocity.x = direction * SPEED - else: - velocity.x = move_toward(velocity.x, 0, SPEED) - - move_and_slide() -" - -[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1syju"] - -[sub_resource type="CapsuleMesh" id="CapsuleMesh_wuljl"] - -[node name="Player" type="CharacterBody2D"] -script = SubResource("GDScript_rptgx") - -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource("CapsuleShape2D_1syju") - -[node name="MeshInstance2D" type="MeshInstance2D" parent="."] -position = Vector2(1.07288e-06, -0.5) -scale = Vector2(20, 14.5) -mesh = SubResource("CapsuleMesh_wuljl") From 929426e78a0c3da2edd586d1dd84b995e52a75e7 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 3 Oct 2024 20:27:46 -0400 Subject: [PATCH 013/110] Create a very early item directory --- source/scenes/item_directory.tscn | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 source/scenes/item_directory.tscn diff --git a/source/scenes/item_directory.tscn b/source/scenes/item_directory.tscn new file mode 100644 index 00000000..a89adc60 --- /dev/null +++ b/source/scenes/item_directory.tscn @@ -0,0 +1,20 @@ +[gd_scene format=3 uid="uid://dneing502fg0w"] + +[node name="ItemDirectory" type="MarginContainer"] +offset_right = 40.0 +offset_bottom = 40.0 +theme_override_constants/margin_left = 120 +theme_override_constants/margin_top = 80 +theme_override_constants/margin_right = 120 +theme_override_constants/margin_bottom = 80 + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 2 + +[node name="Button" type="Button" parent="HBoxContainer"] +layout_mode = 2 +text = "Item1" + +[node name="Button2" type="Button" parent="HBoxContainer"] +layout_mode = 2 +text = "Item1" From 47f692bd1bdbb4f4f5f95ee6d6c4e77f6098c304 Mon Sep 17 00:00:00 2001 From: JoeyGiordano Date: Thu, 3 Oct 2024 21:42:46 -0400 Subject: [PATCH 014/110] Scene switching architecture The base of the scene switching architecture. I will extend it when we have more scenes. --- source/game_container.gd | 49 +++++++++++++++++++++++++- source/game_container.tscn | 11 +++++- source/item/items/tophat.tres | 17 +++++++++ source/scenes/menus/main_menu.tscn | 25 +++++++++++++ source/scenes/menus/switch_to_stage.gd | 10 ++++++ source/stages/stage_template.tscn | 5 ++- 6 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 source/item/items/tophat.tres create mode 100644 source/scenes/menus/main_menu.tscn create mode 100644 source/scenes/menus/switch_to_stage.gd diff --git a/source/game_container.gd b/source/game_container.gd index 2abdbea3..bb70ad04 100644 --- a/source/game_container.gd +++ b/source/game_container.gd @@ -1,8 +1,55 @@ extends Node2D class_name GameContainer -@onready var WorldScene : PackedScene = preload("res://source/stages/world.tscn") +#easy way to access the GameContainer from other nodes +static var GAME_CONTAINER : GameContainer + +#There should only ever be one active scene (menu or stage) and it will be the only child of the ActiveSceneHolder node +@onready var ActiveSceneHolder = $ActiveSceneHolder +#Other scenes should be overlay panels (UI, eg pause menu) can be put in the OverlayPanels node +@onready var OverlayPanels = $OverlayPanels +#The player nodes are instantiated in the Players node, they can be hidden and frozen when necessary +@onready var Players = $Players + +#Scenes +@onready var main_menu : PackedScene = preload("res://source/scenes/menus/main_menu.tscn") +@onready var world_scene : PackedScene = preload("res://source/stages/world.tscn") +@onready var stage_template : PackedScene = preload("res://source/stages/stage_template.tscn") + +#Other vars +var current_stage : int = 0 + + +#### Methods #### func _ready(): RenderingServer.set_default_clear_color(Color("000000")) + GAME_CONTAINER = self + pass + +func _process(delta): + if Input.is_key_pressed(KEY_Q) : + get_tree().quit() pass + + +func switch_to_stage(stage : int) : + match stage : + 0 : switch_active_scene(stage_template) + _ : + print("Stage " + str(stage) + " not recognized") + return + current_stage = stage + +func switch_to_main_menu() : + switch_active_scene(main_menu) + + +#### Resource Methods #### + +func switch_active_scene(scene : PackedScene) : + ActiveSceneHolder.get_child(0).queue_free() + var s = scene.instantiate() + ActiveSceneHolder.add_child(s) + + diff --git a/source/game_container.tscn b/source/game_container.tscn index bfba7d10..c9c70eda 100644 --- a/source/game_container.tscn +++ b/source/game_container.tscn @@ -1,6 +1,15 @@ -[gd_scene load_steps=2 format=3 uid="uid://cpeool1ufkioa"] +[gd_scene load_steps=3 format=3 uid="uid://cpeool1ufkioa"] [ext_resource type="Script" path="res://source/game_container.gd" id="1_13cro"] +[ext_resource type="PackedScene" uid="uid://ol5fp5ldsygt" path="res://source/scenes/menus/main_menu.tscn" id="2_u3qcu"] [node name="GameContainer" type="Node2D"] script = ExtResource("1_13cro") + +[node name="ActiveSceneHolder" type="Node2D" parent="."] + +[node name="MainMenu" parent="ActiveSceneHolder" instance=ExtResource("2_u3qcu")] + +[node name="OverlayPanels" type="Node2D" parent="."] + +[node name="Players" type="Node2D" parent="."] diff --git a/source/item/items/tophat.tres b/source/item/items/tophat.tres new file mode 100644 index 00000000..b4af7813 --- /dev/null +++ b/source/item/items/tophat.tres @@ -0,0 +1,17 @@ +[gd_resource type="Resource" script_class="Item_Res" load_steps=2 format=3 uid="uid://ddfc2l76phcr5"] + +[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_rpq0y"] + +[resource] +script = ExtResource("1_rpq0y") +name = "" +description = "" +rarity = 0 +func_names = Array[String]([]) +health = 0.0 +topSpeed = 0.0 +attackSpeed = 0.0 +attackDamage = 0.0 +dashCooldown = 0.0 +abilityCooldown = 0.0 +cost = 0 diff --git a/source/scenes/menus/main_menu.tscn b/source/scenes/menus/main_menu.tscn new file mode 100644 index 00000000..bb18da0d --- /dev/null +++ b/source/scenes/menus/main_menu.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=2 format=3 uid="uid://ol5fp5ldsygt"] + +[ext_resource type="Script" path="res://source/scenes/menus/switch_to_stage.gd" id="1_7ap72"] + +[node name="MainMenu" type="Control" node_paths=PackedStringArray("button")] +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1_7ap72") +button = NodePath("PlayButton") + +[node name="PlayButton" type="Button" parent="."] +layout_mode = 0 +offset_left = 162.0 +offset_top = 73.0 +offset_right = 250.0 +offset_bottom = 122.0 +text = "Play" + +[node name="Label" type="Label" parent="."] +layout_mode = 0 +offset_left = 158.0 +offset_top = 25.0 +offset_right = 262.0 +offset_bottom = 48.0 +text = "Hallows Thief" diff --git a/source/scenes/menus/switch_to_stage.gd b/source/scenes/menus/switch_to_stage.gd new file mode 100644 index 00000000..08353530 --- /dev/null +++ b/source/scenes/menus/switch_to_stage.gd @@ -0,0 +1,10 @@ +extends Control + +@export var button : Button +@export var stage_to_switch_to : int + +func _ready() : + button.connect("pressed", button_pressed) + +func button_pressed() : + GameContainer.GAME_CONTAINER.switch_to_stage(stage_to_switch_to) diff --git a/source/stages/stage_template.tscn b/source/stages/stage_template.tscn index b04eae6a..607475cf 100644 --- a/source/stages/stage_template.tscn +++ b/source/stages/stage_template.tscn @@ -2,4 +2,7 @@ [node name="StageTemplate" type="Node2D"] -[node name="TileMapLayer" type="TileMapLayer" parent="."] +[node name="Label" type="Label" parent="."] +offset_right = 40.0 +offset_bottom = 23.0 +text = "Temp Room" From ca3be986b10f448aa101692f5377abe2584f7d68 Mon Sep 17 00:00:00 2001 From: JoeyGiordano Date: Sun, 6 Oct 2024 15:47:57 -0400 Subject: [PATCH 015/110] Push to avoid loss --- source/game_container.gd | 99 ++++++++++++++----- source/game_container.tscn | 15 --- .../scenes/cut_scenes/pre_game_cut_scene.tscn | 23 +++++ source/scenes/game_container.tscn | 9 ++ source/scenes/menus/character_select.tscn | 22 +++++ source/scenes/menus/credits.tscn | 18 ++++ source/scenes/menus/game_over.tscn | 19 ++++ source/scenes/menus/instructions.tscn | 18 ++++ source/scenes/menus/main_menu.tscn | 48 +++++---- source/scenes/menus/switch_to_stage.gd | 10 -- source/scenes/stages/shop.tscn | 24 +++++ source/scenes/stages/stage1.tscn | 27 +++++ source/scenes/stages/stage2.tscn | 27 +++++ source/scenes/stages/stage3.tscn | 27 +++++ source/scenes/stages/stage4.tscn | 27 +++++ source/scenes/switch_to_scene.gd | 9 ++ 16 files changed, 354 insertions(+), 68 deletions(-) delete mode 100644 source/game_container.tscn create mode 100644 source/scenes/cut_scenes/pre_game_cut_scene.tscn create mode 100644 source/scenes/game_container.tscn create mode 100644 source/scenes/menus/character_select.tscn create mode 100644 source/scenes/menus/credits.tscn create mode 100644 source/scenes/menus/game_over.tscn create mode 100644 source/scenes/menus/instructions.tscn delete mode 100644 source/scenes/menus/switch_to_stage.gd create mode 100644 source/scenes/stages/shop.tscn create mode 100644 source/scenes/stages/stage1.tscn create mode 100644 source/scenes/stages/stage2.tscn create mode 100644 source/scenes/stages/stage3.tscn create mode 100644 source/scenes/stages/stage4.tscn create mode 100644 source/scenes/switch_to_scene.gd diff --git a/source/game_container.gd b/source/game_container.gd index bb70ad04..b91a43c4 100644 --- a/source/game_container.gd +++ b/source/game_container.gd @@ -13,43 +13,94 @@ static var GAME_CONTAINER : GameContainer #Scenes @onready var main_menu : PackedScene = preload("res://source/scenes/menus/main_menu.tscn") -@onready var world_scene : PackedScene = preload("res://source/stages/world.tscn") -@onready var stage_template : PackedScene = preload("res://source/stages/stage_template.tscn") - -#Other vars -var current_stage : int = 0 - - -#### Methods #### +@onready var credits : PackedScene = preload("res://source/scenes/menus/credits.tscn") +@onready var instructions : PackedScene = preload("res://source/scenes/menus/instructions.tscn") +@onready var character_select : PackedScene = preload("res://source/scenes/menus/character_select.tscn") +@onready var pre_game_cut_scene : PackedScene = preload("res://source/scenes/cut_scenes/pre_game_cut_scene.tscn") +@onready var shop : PackedScene = preload("res://source/scenes/stages/shop.tscn") +@onready var game_over : PackedScene = preload("res://source/scenes/menus/game_over.tscn") +@onready var stage1 : PackedScene = preload("res://source/scenes/stages/stage1.tscn") +@onready var stage2 : PackedScene = preload("res://source/scenes/stages/stage2.tscn") +@onready var stage3 : PackedScene = preload("res://source/scenes/stages/stage3.tscn") +@onready var stage4 : PackedScene = preload("res://source/scenes/stages/stage4.tscn") +enum Scene { + MAIN_MENU, + CREDITS, + INSTRUCTIONS, + CHARACTER_SELECT, + PRE_GAME_CUT_SCENE, + GAME_OVER, + SHOP, + STAGE1, + STAGE2, + STAGE3, + STAGE4, + RANDOM_STAGE +} + +#Scoring +var PLAYER_SCORES : Array[int] = [0,0,0,0] +var winning_score : int = 5 + +#### METHODS #### func _ready(): - RenderingServer.set_default_clear_color(Color("000000")) GAME_CONTAINER = self pass func _process(delta): + #quit if Q pressed - DEBUG if Input.is_key_pressed(KEY_Q) : get_tree().quit() pass - -func switch_to_stage(stage : int) : - match stage : - 0 : switch_active_scene(stage_template) - _ : - print("Stage " + str(stage) + " not recognized") - return - current_stage = stage - -func switch_to_main_menu() : - switch_active_scene(main_menu) - - -#### Resource Methods #### +func switch_to_scene(scene_enum : Scene) : + #switch_active_scene(getScene(scene_enum)) + #below: debug code, above: actual code + if scene_enum == Scene.SHOP : + award_point_to_player(1) + print("POINTS AWARDED FOR DEBUG PURPOSES") + if PLAYER_SCORES[0] == winning_score : + switch_active_scene(game_over) + else : + switch_active_scene(getScene(scene_enum)) func switch_active_scene(scene : PackedScene) : ActiveSceneHolder.get_child(0).queue_free() var s = scene.instantiate() ActiveSceneHolder.add_child(s) - +func getScene(scene_enum : Scene) -> PackedScene: + match (scene_enum) : + Scene.MAIN_MENU : return main_menu + Scene.CREDITS : return credits + Scene.INSTRUCTIONS : return instructions + Scene.CHARACTER_SELECT : return character_select + Scene.PRE_GAME_CUT_SCENE : return pre_game_cut_scene + Scene.GAME_OVER : return game_over + Scene.SHOP : return shop + Scene.STAGE1 : return stage1 + Scene.STAGE2 : return stage2 + Scene.STAGE3 : return stage3 + Scene.STAGE4 : return stage4 + Scene.RANDOM_STAGE : return get_random_stage() + _ : + print("Scene not recognized") + return main_menu + +func get_random_stage() -> PackedScene: + var r = int(randf() * 4) + if r == 0 : return stage1 + if r == 1 : return stage2 + if r == 2 : return stage3 + else : return stage4 + +func award_point_to_player(player : int) : + PLAYER_SCORES[player] += 1 + +func award_points_to_player(player : int, points : int) : + PLAYER_SCORES[player] += points + +func award_points_to_players(points : Array[int]) : + for i in PLAYER_SCORES.size() : + PLAYER_SCORES[i] += points[i] \ No newline at end of file diff --git a/source/game_container.tscn b/source/game_container.tscn deleted file mode 100644 index c9c70eda..00000000 --- a/source/game_container.tscn +++ /dev/null @@ -1,15 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://cpeool1ufkioa"] - -[ext_resource type="Script" path="res://source/game_container.gd" id="1_13cro"] -[ext_resource type="PackedScene" uid="uid://ol5fp5ldsygt" path="res://source/scenes/menus/main_menu.tscn" id="2_u3qcu"] - -[node name="GameContainer" type="Node2D"] -script = ExtResource("1_13cro") - -[node name="ActiveSceneHolder" type="Node2D" parent="."] - -[node name="MainMenu" parent="ActiveSceneHolder" instance=ExtResource("2_u3qcu")] - -[node name="OverlayPanels" type="Node2D" parent="."] - -[node name="Players" type="Node2D" parent="."] diff --git a/source/scenes/cut_scenes/pre_game_cut_scene.tscn b/source/scenes/cut_scenes/pre_game_cut_scene.tscn new file mode 100644 index 00000000..5e8d43e5 --- /dev/null +++ b/source/scenes/cut_scenes/pre_game_cut_scene.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=2 format=3 uid="uid://bn5ejiljdkkwe"] + +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_dulpl"] + +[node name="PreGameCutScene" type="Node2D"] + +[node name="CutSceneOverButton" type="Button" parent="."] +offset_right = 128.0 +offset_bottom = 31.0 +text = "[CutSceneOver]" +script = ExtResource("1_dulpl") +switch_to = 10 + +[node name="THIS SCENE IS TEMP" type="Label" parent="."] +offset_left = 142.0 +offset_top = 130.0 +offset_right = 1088.0 +offset_bottom = 231.0 +text = "Pre Game Cut Scene +THIS SCENE IS TEMP +delete the button and trigger the next scene at the end of the cutscene animation +(use GameContainer.GAME_CONTAINER.switch_to_scene(GameContainer.Scene.RANDOM_STAGE) +(you can call it from any script)" diff --git a/source/scenes/game_container.tscn b/source/scenes/game_container.tscn new file mode 100644 index 00000000..da501b47 --- /dev/null +++ b/source/scenes/game_container.tscn @@ -0,0 +1,9 @@ +[gd_scene format=3 uid="uid://dajeyyd76x0vu"] + +[node name="GameContainer" type="Node2D"] + +[node name="ActiveScene" type="Node2D" parent="."] + +[node name="OverlayPanels" type="Node2D" parent="."] + +[node name="Players" type="Node2D" parent="."] diff --git a/source/scenes/menus/character_select.tscn b/source/scenes/menus/character_select.tscn new file mode 100644 index 00000000..2bd40e20 --- /dev/null +++ b/source/scenes/menus/character_select.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=2 format=3 uid="uid://dmg3rcypapom8"] + +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_bh3vu"] + +[node name="CharacterSelect" type="Node2D"] + +[node name="PlayButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "Play" +script = ExtResource("1_bh3vu") +switch_to = 4 + +[node name="THIS SCENE IS TEMP" type="Label" parent="."] +offset_left = 144.0 +offset_top = 130.0 +offset_right = 308.0 +offset_bottom = 179.0 +text = "Character Select +THIS SCENE IS TEMP +Aidan will replace +" diff --git a/source/scenes/menus/credits.tscn b/source/scenes/menus/credits.tscn new file mode 100644 index 00000000..514ece87 --- /dev/null +++ b/source/scenes/menus/credits.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=2 format=3 uid="uid://bhuom4ivjp0be"] + +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_lxpdn"] + +[node name="Credits" type="Node2D"] + +[node name="BackButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "Back" +script = ExtResource("1_lxpdn") + +[node name="TEMP" type="Label" parent="."] +offset_left = 144.0 +offset_top = 130.0 +offset_right = 308.0 +offset_bottom = 179.0 +text = "Credits" diff --git a/source/scenes/menus/game_over.tscn b/source/scenes/menus/game_over.tscn new file mode 100644 index 00000000..23d8b03f --- /dev/null +++ b/source/scenes/menus/game_over.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=2 format=3 uid="uid://cby3remb66qik"] + +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_mua0j"] + +[node name="GameOver" type="Node2D"] + +[node name="MainMenuButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "MainMenu" +script = ExtResource("1_mua0j") + +[node name="TEMP" type="Label" parent="."] +offset_left = 144.0 +offset_top = 130.0 +offset_right = 308.0 +offset_bottom = 179.0 +text = "Game_Over +Player 1 Wins" diff --git a/source/scenes/menus/instructions.tscn b/source/scenes/menus/instructions.tscn new file mode 100644 index 00000000..f0cf3a23 --- /dev/null +++ b/source/scenes/menus/instructions.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=2 format=3 uid="uid://cltaghkxnswjy"] + +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_4nwng"] + +[node name="Instructions" type="Node2D"] + +[node name="BackButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "Back" +script = ExtResource("1_4nwng") + +[node name="TEMP" type="Label" parent="."] +offset_left = 144.0 +offset_top = 130.0 +offset_right = 308.0 +offset_bottom = 179.0 +text = "Instructions" diff --git a/source/scenes/menus/main_menu.tscn b/source/scenes/menus/main_menu.tscn index bb18da0d..b406d2c8 100644 --- a/source/scenes/menus/main_menu.tscn +++ b/source/scenes/menus/main_menu.tscn @@ -1,25 +1,35 @@ -[gd_scene load_steps=2 format=3 uid="uid://ol5fp5ldsygt"] +[gd_scene load_steps=2 format=3 uid="uid://dd71ltua8vpqj"] -[ext_resource type="Script" path="res://source/scenes/menus/switch_to_stage.gd" id="1_7ap72"] +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_6s5mx"] -[node name="MainMenu" type="Control" node_paths=PackedStringArray("button")] -layout_mode = 3 -anchors_preset = 0 -script = ExtResource("1_7ap72") -button = NodePath("PlayButton") +[node name="MainMenu" type="Node2D"] [node name="PlayButton" type="Button" parent="."] -layout_mode = 0 -offset_left = 162.0 -offset_top = 73.0 -offset_right = 250.0 -offset_bottom = 122.0 +offset_right = 8.0 +offset_bottom = 8.0 text = "Play" +script = ExtResource("1_6s5mx") +switch_to = 3 -[node name="Label" type="Label" parent="."] -layout_mode = 0 -offset_left = 158.0 -offset_top = 25.0 -offset_right = 262.0 -offset_bottom = 48.0 -text = "Hallows Thief" +[node name="CreditsButton" type="Button" parent="."] +offset_top = 115.0 +offset_right = 63.0 +offset_bottom = 146.0 +text = "Credits" +script = ExtResource("1_6s5mx") +switch_to = 1 + +[node name="InstructionsButton" type="Button" parent="."] +offset_top = 57.0 +offset_right = 101.0 +offset_bottom = 88.0 +text = "Instructions" +script = ExtResource("1_6s5mx") +switch_to = 2 + +[node name="TEMP" type="Label" parent="."] +offset_left = 144.0 +offset_top = 130.0 +offset_right = 308.0 +offset_bottom = 179.0 +text = "Main Menu" diff --git a/source/scenes/menus/switch_to_stage.gd b/source/scenes/menus/switch_to_stage.gd deleted file mode 100644 index 08353530..00000000 --- a/source/scenes/menus/switch_to_stage.gd +++ /dev/null @@ -1,10 +0,0 @@ -extends Control - -@export var button : Button -@export var stage_to_switch_to : int - -func _ready() : - button.connect("pressed", button_pressed) - -func button_pressed() : - GameContainer.GAME_CONTAINER.switch_to_stage(stage_to_switch_to) diff --git a/source/scenes/stages/shop.tscn b/source/scenes/stages/shop.tscn new file mode 100644 index 00000000..a54ac00b --- /dev/null +++ b/source/scenes/stages/shop.tscn @@ -0,0 +1,24 @@ +[gd_scene load_steps=2 format=3 uid="uid://c35tr47yom1wt"] + +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_peg2r"] + +[node name="Shop" type="Node2D"] + +[node name="PlayButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "Play" +script = ExtResource("1_peg2r") +switch_to = 10 + +[node name="THIS SCENE IS TEMP" type="Label" parent="."] +offset_left = 117.0 +offset_top = 121.0 +offset_right = 1076.0 +offset_bottom = 300.0 +text = "Shop +THIS SCENE IS TEMP +luke is working on it +delete the button and trigger the next scene when someone wins +(use GameContainer.GAME_CONTAINER.switch_to_scene(GameContainer.Scene.RANDOM_STAGE) +(you can call this method from any script)" diff --git a/source/scenes/stages/stage1.tscn b/source/scenes/stages/stage1.tscn new file mode 100644 index 00000000..01ce9398 --- /dev/null +++ b/source/scenes/stages/stage1.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=2 format=3 uid="uid://brihhvr3e0dtq"] + +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_g1qqk"] + +[node name="Stage1" type="Node2D"] + +[node name="StageOverButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "[StageOver]" +script = ExtResource("1_g1qqk") +switch_to = 5 + +[node name="THIS SCENE IS TEMP" type="Label" parent="."] +offset_left = 117.0 +offset_top = 121.0 +offset_right = 1076.0 +offset_bottom = 300.0 +text = "Stage 1 +THIS SCENE IS TEMP +for now this scene just assumes player 1 wins +delete the button and trigger the next scene when someone wins +(use GameContainer.GAME_CONTAINER.switch_to_scene(GameContainer.Scene.RANDOM_STAGE) +before switching to the next scene, make sure the points have been awarded. +(call GameContinaer.GAME_CONTAINER.award_point_to_player() +or .award_points_to_players() or .award_points_to_players()) +(you can call these methods from any script)" diff --git a/source/scenes/stages/stage2.tscn b/source/scenes/stages/stage2.tscn new file mode 100644 index 00000000..70a8328d --- /dev/null +++ b/source/scenes/stages/stage2.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=2 format=3 uid="uid://cf2y7c10u4cxh"] + +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_y2uux"] + +[node name="Stage2" type="Node2D"] + +[node name="StageOverButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "[StageOver]" +script = ExtResource("1_y2uux") +switch_to = 5 + +[node name="THIS SCENE IS TEMP" type="Label" parent="."] +offset_left = 117.0 +offset_top = 121.0 +offset_right = 1076.0 +offset_bottom = 300.0 +text = "Stage 2 +THIS SCENE IS TEMP +for now this scene just assumes player 1 wins +delete the button and trigger the next scene when someone wins +(use GameContainer.GAME_CONTAINER.switch_to_scene(GameContainer.Scene.RANDOM_STAGE) +before switching to the next scene, make sure the points have been awarded. +(call GameContinaer.GAME_CONTAINER.award_point_to_player() +or .award_points_to_players() or .award_points_to_players()) +(you can call these methods from any script)" diff --git a/source/scenes/stages/stage3.tscn b/source/scenes/stages/stage3.tscn new file mode 100644 index 00000000..90e45c04 --- /dev/null +++ b/source/scenes/stages/stage3.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=2 format=3 uid="uid://dydnt3eq7h3wx"] + +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_cb363"] + +[node name="Stage3" type="Node2D"] + +[node name="StageOverButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "[StageOver]" +script = ExtResource("1_cb363") +switch_to = 5 + +[node name="THIS SCENE IS TEMP" type="Label" parent="."] +offset_left = 117.0 +offset_top = 121.0 +offset_right = 1076.0 +offset_bottom = 300.0 +text = "Stage 3 +THIS SCENE IS TEMP +for now this scene just assumes player 1 wins +delete the button and trigger the next scene when someone wins +(use GameContainer.GAME_CONTAINER.switch_to_scene(GameContainer.Scene.RANDOM_STAGE) +before switching to the next scene, make sure the points have been awarded. +(call GameContinaer.GAME_CONTAINER.award_point_to_player() +or .award_points_to_players() or .award_points_to_players()) +(you can call these methods from any script)" diff --git a/source/scenes/stages/stage4.tscn b/source/scenes/stages/stage4.tscn new file mode 100644 index 00000000..155080cc --- /dev/null +++ b/source/scenes/stages/stage4.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=2 format=3 uid="uid://bhtkciwdnjwos"] + +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_rb1yx"] + +[node name="Stage4" type="Node2D"] + +[node name="StageOverButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "[StageOver]" +script = ExtResource("1_rb1yx") +switch_to = 5 + +[node name="THIS SCENE IS TEMP" type="Label" parent="."] +offset_left = 117.0 +offset_top = 121.0 +offset_right = 1076.0 +offset_bottom = 300.0 +text = "Stage 4 +THIS SCENE IS TEMP +for now this scene just assumes player 1 wins +delete the button and trigger the next scene when someone wins +(use GameContainer.GAME_CONTAINER.switch_to_scene(GameContainer.Scene.RANDOM_STAGE) +before switching to the next scene, make sure the points have been awarded. +(call GameContinaer.GAME_CONTAINER.award_point_to_player() +or .award_points_to_players() or .award_points_to_players()) +(you can call these methods from any script)" diff --git a/source/scenes/switch_to_scene.gd b/source/scenes/switch_to_scene.gd new file mode 100644 index 00000000..ed0ef590 --- /dev/null +++ b/source/scenes/switch_to_scene.gd @@ -0,0 +1,9 @@ +extends Button + +@export var switch_to : GameContainer.Scene + +func _ready() : + connect("pressed", on_pressed) + +func on_pressed() : + GameContainer.GAME_CONTAINER.switch_to_scene(switch_to) From d0f25816e574c68bb858a962506e9f7dffd4dc77 Mon Sep 17 00:00:00 2001 From: JoeyGiordano Date: Sun, 6 Oct 2024 15:52:09 -0400 Subject: [PATCH 016/110] Saving again phewf --- source/scenes/stages/shop.tscn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/scenes/stages/shop.tscn b/source/scenes/stages/shop.tscn index a54ac00b..d32a9f5c 100644 --- a/source/scenes/stages/shop.tscn +++ b/source/scenes/stages/shop.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://c35tr47yom1wt"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_peg2r"] +[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_vm7w5"] [node name="Shop" type="Node2D"] @@ -8,7 +8,7 @@ offset_right = 8.0 offset_bottom = 8.0 text = "Play" -script = ExtResource("1_peg2r") +script = ExtResource("1_vm7w5") switch_to = 10 [node name="THIS SCENE IS TEMP" type="Label" parent="."] From b5567991dbad05758e8b457487ecf4a58c928abc Mon Sep 17 00:00:00 2001 From: JoeyGiordano Date: Sun, 6 Oct 2024 16:20:06 -0400 Subject: [PATCH 017/110] Fully Function GameContainer and Scene Switching I created some placeholders for scenes that other people are currently working on. I left notes (in the form of labels) of how to properly connect your scenes to the chain of things. Please move and rename the scenes you make to replace the placeholder scenes. There are a bunch of some resource methods in GameContainer. GameContainer is not a singleton, HOWEVER because of the setup it is always instantiated and it controls the scene order by instantiating new scenes as its children. ALSO you can access the game container at any time non-staticly with GameContainer.GAME_CONTAINER. TODO: Option was left open for overlay panels (ie a pause menu). Did not implement yet. --- .../scenes/cut_scenes/pre_game_cut_scene.tscn | 4 ++-- source/scenes/game_container.tscn | 9 --------- .../game_container}/game_container.gd | 20 +++++++++++-------- .../scenes/game_container/game_container.tscn | 15 ++++++++++++++ .../{ => game_container}/switch_to_scene.gd | 0 source/scenes/menus/character_select.tscn | 2 +- source/scenes/menus/credits.tscn | 2 +- source/scenes/menus/game_over.tscn | 2 +- source/scenes/menus/instructions.tscn | 2 +- source/scenes/menus/main_menu.tscn | 2 +- source/scenes/stages/shop.tscn | 4 ++-- source/scenes/stages/stage1.tscn | 4 ++-- source/scenes/stages/stage2.tscn | 4 ++-- source/scenes/stages/stage3.tscn | 4 ++-- source/scenes/stages/stage4.tscn | 4 ++-- ... STAGES HERE PUT THEM IN SCENES FOLDER.txt | 0 16 files changed, 44 insertions(+), 34 deletions(-) delete mode 100644 source/scenes/game_container.tscn rename source/{ => scenes/game_container}/game_container.gd (89%) create mode 100644 source/scenes/game_container/game_container.tscn rename source/scenes/{ => game_container}/switch_to_scene.gd (100%) create mode 100644 source/stages/TEMP FOLDER DONT PUT ACTUAL STAGES HERE PUT THEM IN SCENES FOLDER.txt diff --git a/source/scenes/cut_scenes/pre_game_cut_scene.tscn b/source/scenes/cut_scenes/pre_game_cut_scene.tscn index 5e8d43e5..41c514b5 100644 --- a/source/scenes/cut_scenes/pre_game_cut_scene.tscn +++ b/source/scenes/cut_scenes/pre_game_cut_scene.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://bn5ejiljdkkwe"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_dulpl"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_dulpl"] [node name="PreGameCutScene" type="Node2D"] @@ -9,7 +9,7 @@ offset_right = 128.0 offset_bottom = 31.0 text = "[CutSceneOver]" script = ExtResource("1_dulpl") -switch_to = 10 +switch_to = 11 [node name="THIS SCENE IS TEMP" type="Label" parent="."] offset_left = 142.0 diff --git a/source/scenes/game_container.tscn b/source/scenes/game_container.tscn deleted file mode 100644 index da501b47..00000000 --- a/source/scenes/game_container.tscn +++ /dev/null @@ -1,9 +0,0 @@ -[gd_scene format=3 uid="uid://dajeyyd76x0vu"] - -[node name="GameContainer" type="Node2D"] - -[node name="ActiveScene" type="Node2D" parent="."] - -[node name="OverlayPanels" type="Node2D" parent="."] - -[node name="Players" type="Node2D" parent="."] diff --git a/source/game_container.gd b/source/scenes/game_container/game_container.gd similarity index 89% rename from source/game_container.gd rename to source/scenes/game_container/game_container.gd index b91a43c4..dffe2228 100644 --- a/source/game_container.gd +++ b/source/scenes/game_container/game_container.gd @@ -39,7 +39,7 @@ enum Scene { } #Scoring -var PLAYER_SCORES : Array[int] = [0,0,0,0] +var player_scores : Array[int] = [0,0,0,0] var winning_score : int = 5 #### METHODS #### @@ -60,17 +60,21 @@ func switch_to_scene(scene_enum : Scene) : if scene_enum == Scene.SHOP : award_point_to_player(1) print("POINTS AWARDED FOR DEBUG PURPOSES") - if PLAYER_SCORES[0] == winning_score : + if player_scores[0] == winning_score : switch_active_scene(game_over) + player_scores = [0,0,0,0] else : - switch_active_scene(getScene(scene_enum)) + switch_active_scene(shop) + else : + switch_active_scene(getSceneFromEnum(scene_enum)) + func switch_active_scene(scene : PackedScene) : ActiveSceneHolder.get_child(0).queue_free() var s = scene.instantiate() ActiveSceneHolder.add_child(s) -func getScene(scene_enum : Scene) -> PackedScene: +func getSceneFromEnum(scene_enum : Scene) -> PackedScene: match (scene_enum) : Scene.MAIN_MENU : return main_menu Scene.CREDITS : return credits @@ -96,11 +100,11 @@ func get_random_stage() -> PackedScene: else : return stage4 func award_point_to_player(player : int) : - PLAYER_SCORES[player] += 1 + player_scores[player-1] += 1 func award_points_to_player(player : int, points : int) : - PLAYER_SCORES[player] += points + player_scores[player-1] += points func award_points_to_players(points : Array[int]) : - for i in PLAYER_SCORES.size() : - PLAYER_SCORES[i] += points[i] \ No newline at end of file + for i in player_scores.size() : + player_scores[i] += points[i] diff --git a/source/scenes/game_container/game_container.tscn b/source/scenes/game_container/game_container.tscn new file mode 100644 index 00000000..193b2771 --- /dev/null +++ b/source/scenes/game_container/game_container.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=3 uid="uid://dajeyyd76x0vu"] + +[ext_resource type="Script" path="res://source/scenes/game_container/game_container.gd" id="1_nfc83"] +[ext_resource type="PackedScene" uid="uid://dd71ltua8vpqj" path="res://source/scenes/menus/main_menu.tscn" id="1_ojqp2"] + +[node name="GameContainer" type="Node2D"] +script = ExtResource("1_nfc83") + +[node name="ActiveSceneHolder" type="Node2D" parent="."] + +[node name="MainMenu" parent="ActiveSceneHolder" instance=ExtResource("1_ojqp2")] + +[node name="OverlayPanels" type="Node2D" parent="."] + +[node name="Players" type="Node2D" parent="."] diff --git a/source/scenes/switch_to_scene.gd b/source/scenes/game_container/switch_to_scene.gd similarity index 100% rename from source/scenes/switch_to_scene.gd rename to source/scenes/game_container/switch_to_scene.gd diff --git a/source/scenes/menus/character_select.tscn b/source/scenes/menus/character_select.tscn index 2bd40e20..944640b2 100644 --- a/source/scenes/menus/character_select.tscn +++ b/source/scenes/menus/character_select.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://dmg3rcypapom8"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_bh3vu"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_bh3vu"] [node name="CharacterSelect" type="Node2D"] diff --git a/source/scenes/menus/credits.tscn b/source/scenes/menus/credits.tscn index 514ece87..115f757d 100644 --- a/source/scenes/menus/credits.tscn +++ b/source/scenes/menus/credits.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://bhuom4ivjp0be"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_lxpdn"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_lxpdn"] [node name="Credits" type="Node2D"] diff --git a/source/scenes/menus/game_over.tscn b/source/scenes/menus/game_over.tscn index 23d8b03f..dc5ae702 100644 --- a/source/scenes/menus/game_over.tscn +++ b/source/scenes/menus/game_over.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://cby3remb66qik"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_mua0j"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_mua0j"] [node name="GameOver" type="Node2D"] diff --git a/source/scenes/menus/instructions.tscn b/source/scenes/menus/instructions.tscn index f0cf3a23..26487459 100644 --- a/source/scenes/menus/instructions.tscn +++ b/source/scenes/menus/instructions.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://cltaghkxnswjy"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_4nwng"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_4nwng"] [node name="Instructions" type="Node2D"] diff --git a/source/scenes/menus/main_menu.tscn b/source/scenes/menus/main_menu.tscn index b406d2c8..969e7ac8 100644 --- a/source/scenes/menus/main_menu.tscn +++ b/source/scenes/menus/main_menu.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://dd71ltua8vpqj"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_6s5mx"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_6s5mx"] [node name="MainMenu" type="Node2D"] diff --git a/source/scenes/stages/shop.tscn b/source/scenes/stages/shop.tscn index d32a9f5c..858a2cde 100644 --- a/source/scenes/stages/shop.tscn +++ b/source/scenes/stages/shop.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://c35tr47yom1wt"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_vm7w5"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_vm7w5"] [node name="Shop" type="Node2D"] @@ -9,7 +9,7 @@ offset_right = 8.0 offset_bottom = 8.0 text = "Play" script = ExtResource("1_vm7w5") -switch_to = 10 +switch_to = 11 [node name="THIS SCENE IS TEMP" type="Label" parent="."] offset_left = 117.0 diff --git a/source/scenes/stages/stage1.tscn b/source/scenes/stages/stage1.tscn index 01ce9398..c99dfe69 100644 --- a/source/scenes/stages/stage1.tscn +++ b/source/scenes/stages/stage1.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://brihhvr3e0dtq"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_g1qqk"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_g1qqk"] [node name="Stage1" type="Node2D"] @@ -9,7 +9,7 @@ offset_right = 8.0 offset_bottom = 8.0 text = "[StageOver]" script = ExtResource("1_g1qqk") -switch_to = 5 +switch_to = 6 [node name="THIS SCENE IS TEMP" type="Label" parent="."] offset_left = 117.0 diff --git a/source/scenes/stages/stage2.tscn b/source/scenes/stages/stage2.tscn index 70a8328d..502c1d24 100644 --- a/source/scenes/stages/stage2.tscn +++ b/source/scenes/stages/stage2.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://cf2y7c10u4cxh"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_y2uux"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_y2uux"] [node name="Stage2" type="Node2D"] @@ -9,7 +9,7 @@ offset_right = 8.0 offset_bottom = 8.0 text = "[StageOver]" script = ExtResource("1_y2uux") -switch_to = 5 +switch_to = 6 [node name="THIS SCENE IS TEMP" type="Label" parent="."] offset_left = 117.0 diff --git a/source/scenes/stages/stage3.tscn b/source/scenes/stages/stage3.tscn index 90e45c04..84920778 100644 --- a/source/scenes/stages/stage3.tscn +++ b/source/scenes/stages/stage3.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://dydnt3eq7h3wx"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_cb363"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_cb363"] [node name="Stage3" type="Node2D"] @@ -9,7 +9,7 @@ offset_right = 8.0 offset_bottom = 8.0 text = "[StageOver]" script = ExtResource("1_cb363") -switch_to = 5 +switch_to = 6 [node name="THIS SCENE IS TEMP" type="Label" parent="."] offset_left = 117.0 diff --git a/source/scenes/stages/stage4.tscn b/source/scenes/stages/stage4.tscn index 155080cc..3a7ca979 100644 --- a/source/scenes/stages/stage4.tscn +++ b/source/scenes/stages/stage4.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://bhtkciwdnjwos"] -[ext_resource type="Script" path="res://source/scenes/switch_to_scene.gd" id="1_rb1yx"] +[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_rb1yx"] [node name="Stage4" type="Node2D"] @@ -9,7 +9,7 @@ offset_right = 8.0 offset_bottom = 8.0 text = "[StageOver]" script = ExtResource("1_rb1yx") -switch_to = 5 +switch_to = 6 [node name="THIS SCENE IS TEMP" type="Label" parent="."] offset_left = 117.0 diff --git a/source/stages/TEMP FOLDER DONT PUT ACTUAL STAGES HERE PUT THEM IN SCENES FOLDER.txt b/source/stages/TEMP FOLDER DONT PUT ACTUAL STAGES HERE PUT THEM IN SCENES FOLDER.txt new file mode 100644 index 00000000..e69de29b From 9e10f40b7eefaf2fd41be3fed53d67cb11573869 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Tue, 8 Oct 2024 18:10:56 -0400 Subject: [PATCH 018/110] basic controller support --- .DS_Store | Bin 0 -> 6148 bytes project.godot | 68 ++++++++++++++++++++++++++++++++--- source/.DS_Store | Bin 0 -> 6148 bytes source/scenes/demo_room.tscn | 17 +++++++++ source/scripts/player.gd | 9 +++-- source/scripts/quit.gd | 2 +- 6 files changed, 86 insertions(+), 10 deletions(-) create mode 100644 .DS_Store create mode 100644 source/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..663a83953d061c3718ffa3f9ee77629b186784d3 GIT binary patch literal 6148 zcmeHK&2AGh5FV$Y-B2nb0a7nWD{&1WBvGY`OB&Jx2QCeQ1E7%2Mqy#Qj&?UqQ4}d> zcn4mAD^J3^aDs1aSIRnYjiB;K;f z9~URk`Y$D@@evVW7K!~|$L_zNiDm!IvcGNH!!M$9nqrRBjwbF~-UqNtVflf^h?>K9 zf>sE%)+xSNo)tQyQ>?y6&w+JB42vrjKP``4PuZr(WQtW;){3*Q zYn)lu!91H9hQ9~XILh)y&i=e?2xgIB<8TUlN7(V&? zQ0G4f?Bg5k7+h(@2t;UCpmr7Ji6OK*`h8>9F}TvG-AS0ohcJX zD;)!lfg%Gtx>@D>|Mc(g|Duy?IR+d9*NOpA?)7_Jq-5^ajpX>Q^`Y;eENr*Zs9aE( i>sVFzDn5iN!I;k#V8`G}BYGh2kAR}V6^?_ODN;Ol^{3(D#;R+h%~N}lpd-|Im3_P z$}i!+aDwmI9%|A}a6)MFlb*k4`#mTAVn4@3B*u&Q5mAqbTqvV+6U7C>{j6KkF)bV? z)EE;wBS|?`6mEIj2FrkD;D2L)_wH?)V!zHPq0Rl9Vjm||&>?!`=b1cEw54rPlIj@$eK4c{xmOJhzgZuS&61y;-)Yo^W4 zj|c^cu+>)V69Q54ixGN0Cdo- z1UCO5aExcrH&|;#4@Brtpbi!0iXn73+CAgv8>}_za1!S7Au;QG5VZf void: pass - func _process(delta) -> void: handle_move() - func handle_move() -> void: - movement = Vector2(Input.get_axis("Left", "Right"), Input.get_axis("Up", "Down")).normalized() + var player_num = get_meta("player_num") + movement = Vector2(Input.get_axis("Left%s" % player_num, "Right%s" % player_num), Input.get_axis("Up%s" % player_num, "Down%s" % player_num)).normalized() + if movement.length() : Speed = move_toward(Speed, stats.topSpeed * TOP_SPEED_FACTOR, ACCELERATION) @@ -46,4 +45,4 @@ func pickup_item(item : Item) : func drop_item(item : Item, destroy : bool) : #if destroy is false, you should be reparenting the item stats_and_item_handler.handle_drop(item, destroy) - pass \ No newline at end of file + pass diff --git a/source/scripts/quit.gd b/source/scripts/quit.gd index af9cc95b..317dcd2d 100644 --- a/source/scripts/quit.gd +++ b/source/scripts/quit.gd @@ -2,4 +2,4 @@ extends Node func _process(delta): if Input.is_key_pressed(KEY_Q) : - get_tree().quit() \ No newline at end of file + get_tree().quit() From d20df237b222dfe2f8bdbaa54a14cd0899adbf43 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Tue, 8 Oct 2024 18:12:41 -0400 Subject: [PATCH 019/110] Revert "basic controller support" This reverts commit 9e10f40b7eefaf2fd41be3fed53d67cb11573869. --- .DS_Store | Bin 6148 -> 0 bytes project.godot | 68 +++-------------------------------- source/.DS_Store | Bin 6148 -> 0 bytes source/scenes/demo_room.tscn | 17 --------- source/scripts/player.gd | 9 ++--- source/scripts/quit.gd | 2 +- 6 files changed, 10 insertions(+), 86 deletions(-) delete mode 100644 .DS_Store delete mode 100644 source/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 663a83953d061c3718ffa3f9ee77629b186784d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK&2AGh5FV$Y-B2nb0a7nWD{&1WBvGY`OB&Jx2QCeQ1E7%2Mqy#Qj&?UqQ4}d> zcn4mAD^J3^aDs1aSIRnYjiB;K;f z9~URk`Y$D@@evVW7K!~|$L_zNiDm!IvcGNH!!M$9nqrRBjwbF~-UqNtVflf^h?>K9 zf>sE%)+xSNo)tQyQ>?y6&w+JB42vrjKP``4PuZr(WQtW;){3*Q zYn)lu!91H9hQ9~XILh)y&i=e?2xgIB<8TUlN7(V&? zQ0G4f?Bg5k7+h(@2t;UCpmr7Ji6OK*`h8>9F}TvG-AS0ohcJX zD;)!lfg%Gtx>@D>|Mc(g|Duy?IR+d9*NOpA?)7_Jq-5^ajpX>Q^`Y;eENr*Zs9aE( i>sVFzDn5iN!I;k#V8`G}BYGh2kAR}V6^?_ODN;Ol^{3(D#;R+h%~N}lpd-|Im3_P z$}i!+aDwmI9%|A}a6)MFlb*k4`#mTAVn4@3B*u&Q5mAqbTqvV+6U7C>{j6KkF)bV? z)EE;wBS|?`6mEIj2FrkD;D2L)_wH?)V!zHPq0Rl9Vjm||&>?!`=b1cEw54rPlIj@$eK4c{xmOJhzgZuS&61y;-)Yo^W4 zj|c^cu+>)V69Q54ixGN0Cdo- z1UCO5aExcrH&|;#4@Brtpbi!0iXn73+CAgv8>}_za1!S7Au;QG5VZf void: pass + func _process(delta) -> void: handle_move() + func handle_move() -> void: - var player_num = get_meta("player_num") - movement = Vector2(Input.get_axis("Left%s" % player_num, "Right%s" % player_num), Input.get_axis("Up%s" % player_num, "Down%s" % player_num)).normalized() - + movement = Vector2(Input.get_axis("Left", "Right"), Input.get_axis("Up", "Down")).normalized() if movement.length() : Speed = move_toward(Speed, stats.topSpeed * TOP_SPEED_FACTOR, ACCELERATION) @@ -45,4 +46,4 @@ func pickup_item(item : Item) : func drop_item(item : Item, destroy : bool) : #if destroy is false, you should be reparenting the item stats_and_item_handler.handle_drop(item, destroy) - pass + pass \ No newline at end of file diff --git a/source/scripts/quit.gd b/source/scripts/quit.gd index 317dcd2d..af9cc95b 100644 --- a/source/scripts/quit.gd +++ b/source/scripts/quit.gd @@ -2,4 +2,4 @@ extends Node func _process(delta): if Input.is_key_pressed(KEY_Q) : - get_tree().quit() + get_tree().quit() \ No newline at end of file From b6c048516a5d7cb3984429763c1c2fb75861dcd3 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Tue, 8 Oct 2024 18:13:58 -0400 Subject: [PATCH 020/110] basic controller support --- project.godot | 68 +++++++++++++++++++++++++++++++++--- source/scenes/demo_room.tscn | 17 +++++++++ source/scripts/player.gd | 9 +++-- source/scripts/quit.gd | 2 +- 4 files changed, 86 insertions(+), 10 deletions(-) diff --git a/project.godot b/project.godot index bba8654f..39141162 100644 --- a/project.godot +++ b/project.godot @@ -22,30 +22,90 @@ window/stretch/mode="canvas_items" [input] -Left={ +Left1={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } -Right={ +Right1={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } -Up={ +Up1={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } -Down={ +Down1={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +Left2={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +] +} +Right2={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +] +} +Up2={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +] +} +Down2={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +] +} +Left3={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":-1.0,"script":null) +] +} +Right3={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":1.0,"script":null) +] +} +Up3={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":-1.0,"script":null) +] +} +Down3={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":1.0,"script":null) +] +} +Left4={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":0,"axis_value":-1.0,"script":null) +] +} +Right4={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":0,"axis_value":1.0,"script":null) +] +} +Up4={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":1,"axis_value":-1.0,"script":null) +] +} +Down4={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":1,"axis_value":1.0,"script":null) +] +} [layer_names] diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 81ed9a43..e40d1b31 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -6,6 +6,23 @@ [node name="DemoRoom" type="Node2D"] [node name="Player" parent="." instance=ExtResource("1_uxgo6")] +collision_mask = 2 +metadata/player_num = 1 + +[node name="Player2" parent="." instance=ExtResource("1_uxgo6")] +position = Vector2(73, 0) +collision_mask = 2 +metadata/player_num = 2 + +[node name="Player3" parent="." instance=ExtResource("1_uxgo6")] +position = Vector2(122, 1) +collision_mask = 2 +metadata/player_num = 3 + +[node name="Player4" parent="." instance=ExtResource("1_uxgo6")] +position = Vector2(156, -2) +collision_mask = 2 +metadata/player_num = 4 [node name="Camera2D" type="Camera2D" parent="."] diff --git a/source/scripts/player.gd b/source/scripts/player.gd index a079c472..a5a30bfe 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -8,17 +8,16 @@ var movement := Vector2.ZERO const TOP_SPEED_FACTOR := 15.0 const ACCELERATION := 15.0 - func _ready() -> void: pass - func _process(delta) -> void: handle_move() - func handle_move() -> void: - movement = Vector2(Input.get_axis("Left", "Right"), Input.get_axis("Up", "Down")).normalized() + var player_num = get_meta("player_num") + movement = Vector2(Input.get_axis("Left%s" % player_num, "Right%s" % player_num), Input.get_axis("Up%s" % player_num, "Down%s" % player_num)).normalized() + if movement.length() : Speed = move_toward(Speed, stats.topSpeed * TOP_SPEED_FACTOR, ACCELERATION) @@ -46,4 +45,4 @@ func pickup_item(item : Item) : func drop_item(item : Item, destroy : bool) : #if destroy is false, you should be reparenting the item stats_and_item_handler.handle_drop(item, destroy) - pass \ No newline at end of file + pass diff --git a/source/scripts/quit.gd b/source/scripts/quit.gd index af9cc95b..317dcd2d 100644 --- a/source/scripts/quit.gd +++ b/source/scripts/quit.gd @@ -2,4 +2,4 @@ extends Node func _process(delta): if Input.is_key_pressed(KEY_Q) : - get_tree().quit() \ No newline at end of file + get_tree().quit() From e216db4e90688518a42fe5a78338478b01535232 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Wed, 9 Oct 2024 03:18:46 -0400 Subject: [PATCH 021/110] controls menu keyboard/controller toggle + keyboard keybinds --- project.godot | 35 +++++++------ source/scenes/demo_room.tscn | 10 +++- source/scenes/input_button.gd | 59 +++++++++++++++++++++ source/scenes/input_button.tscn | 36 +++++++++++++ source/scenes/input_controls.gd | 21 ++++++++ source/scenes/input_controls.tscn | 59 +++++++++++++++++++++ source/scenes/settings.gd | 6 +++ source/scenes/settings.tscn | 86 +++++++++++++++++++++++++++++++ 8 files changed, 296 insertions(+), 16 deletions(-) create mode 100644 source/scenes/input_button.gd create mode 100644 source/scenes/input_button.tscn create mode 100644 source/scenes/input_controls.gd create mode 100644 source/scenes/input_controls.tscn create mode 100644 source/scenes/settings.gd create mode 100644 source/scenes/settings.tscn diff --git a/project.godot b/project.godot index 39141162..6f992c45 100644 --- a/project.godot +++ b/project.godot @@ -25,45 +25,45 @@ window/stretch/mode="canvas_items" Left1={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } Right1={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } Up1={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) ] } Down1={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) ] } Left2={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":-1.0,"script":null) ] } Right2={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":1.0,"script":null) ] } Up2={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":-1.0,"script":null) ] } Down2={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":1.0,"script":null) ] } Left3={ @@ -73,37 +73,42 @@ Left3={ } Right3={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":0,"axis_value":1.0,"script":null) ] } Up3={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":-1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":1,"axis_value":-1.0,"script":null) ] } Down3={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":1,"axis_value":1.0,"script":null) ] } Left4={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":0,"axis_value":-1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":3,"axis":0,"axis_value":-1.0,"script":null) ] } Right4={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":0,"axis_value":1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":3,"axis":0,"axis_value":1.0,"script":null) ] } Up4={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":1,"axis_value":-1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":3,"axis":1,"axis_value":-1.0,"script":null) ] } Down4={ "deadzone": 0.5, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":2,"axis":1,"axis_value":1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":3,"axis":1,"axis_value":1.0,"script":null) +] +} +esc={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index e40d1b31..5b752100 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=3 uid="uid://diprigu67ubnb"] +[gd_scene load_steps=4 format=3 uid="uid://diprigu67ubnb"] [ext_resource type="PackedScene" uid="uid://rgfnpcsvv534" path="res://source/scenes/player.tscn" id="1_uxgo6"] [ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] +[ext_resource type="PackedScene" uid="uid://b55salwd6xeoq" path="res://source/scenes/settings.tscn" id="3_c83ju"] [node name="DemoRoom" type="Node2D"] @@ -33,3 +34,10 @@ color = Color(1, 0, 1, 1) [node name="quit" type="Node2D" parent="."] script = ExtResource("2_c3313") + +[node name="Settings" parent="." instance=ExtResource("3_c83ju")] +visible = false +offset_left = -508.0 +offset_top = -258.0 +offset_right = 516.0 +offset_bottom = 254.0 diff --git a/source/scenes/input_button.gd b/source/scenes/input_button.gd new file mode 100644 index 00000000..fc132d5c --- /dev/null +++ b/source/scenes/input_button.gd @@ -0,0 +1,59 @@ +extends Control +class_name Input_Button + +@onready var label = $HBoxContainer/Label as Label +@onready var button = $HBoxContainer/Button as Button + +@onready var player_num = get_parent().get_parent().get_meta("player_num") +@onready var input_type = get_parent().get_parent().get_meta("input_type") +@onready var waiting = false +@onready var action + +var inputK +var inputJ + +func _ready() -> void: + set_process_unhandled_key_input(false) + label.text = get_meta("input_name") + action = label.text + "%s" % player_num + + for input in InputMap.action_get_events(action): + if input is InputEventKey: inputK = input + else: inputJ = input + + InputMap.action_erase_events(action) + if input_type == "Keyboard": InputMap.action_add_event(action, inputK) + else: InputMap.action_add_event(action, inputJ) + +func _process(delta) -> void: + var cur_input_type = get_parent().get_parent().get_meta("input_type") + if cur_input_type != input_type: + InputMap.action_erase_events(action) + if cur_input_type == "Keyboard": InputMap.action_add_event(action, inputK) + else: InputMap.action_add_event(action, inputJ) + input_type = cur_input_type + + if waiting == true: button.text = "Press Any Key" + if waiting == false: + + for input in InputMap.action_get_events(action): + if input is InputEventKey: inputK = input + else: inputJ = input + + if input_type == "Keyboard": + if inputK: button.text = "%s" % OS.get_keycode_string(inputK.physical_keycode) + else: button.text = "---" + else: button.text = "wip" + + +func _on_button_pressed() -> void: + if input_type == "Keyboard": + waiting = true + set_process_unhandled_key_input(true) + +func _input(event): + if waiting == true && input_type == "Keyboard" && event is InputEventKey: + InputMap.action_erase_events(action) + InputMap.action_add_event(action, event) + inputK = event + waiting = false diff --git a/source/scenes/input_button.tscn b/source/scenes/input_button.tscn new file mode 100644 index 00000000..570f0588 --- /dev/null +++ b/source/scenes/input_button.tscn @@ -0,0 +1,36 @@ +[gd_scene load_steps=2 format=3 uid="uid://caum2ucqak0ro"] + +[ext_resource type="Script" path="res://source/scenes/input_button.gd" id="1_8e18b"] + +[node name="Input Button" type="Control"] +custom_minimum_size = Vector2(0, 32) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_8e18b") +metadata/input_name = "" + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 0 +offset_right = 400.0 +offset_bottom = 32.0 +theme_override_constants/separation = 1 + +[node name="Label" type="Label" parent="HBoxContainer"] +layout_mode = 2 +text = "Input Name" +metadata/action_name = "" + +[node name="VSeparator" type="VSeparator" parent="HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="Button" type="Button" parent="HBoxContainer"] +custom_minimum_size = Vector2(150, 0) +layout_mode = 2 +text = "Input" + +[connection signal="pressed" from="HBoxContainer/Button" to="." method="_on_button_pressed"] diff --git a/source/scenes/input_controls.gd b/source/scenes/input_controls.gd new file mode 100644 index 00000000..c65372e0 --- /dev/null +++ b/source/scenes/input_controls.gd @@ -0,0 +1,21 @@ +extends Control +class_name Input_Controls + +@onready var label = $VBoxContainer/HBoxContainer/Label as Label +@onready var button = $VBoxContainer/HBoxContainer/Button as Button + +@onready var player_num = get_meta("player_num") +@onready var input_type = get_meta("input_type") + +func _ready() -> void: + set_process_unhandled_key_input(false) + +func _process(delta) -> void: + input_type = get_meta("input_type") + button.text = get_meta("input_type") + +func _on_button_pressed() -> void: + if input_type == "Keyboard": + set_meta("input_type", "Controller") + else: + set_meta("input_type", "Keyboard") diff --git a/source/scenes/input_controls.tscn b/source/scenes/input_controls.tscn new file mode 100644 index 00000000..3ff26bec --- /dev/null +++ b/source/scenes/input_controls.tscn @@ -0,0 +1,59 @@ +[gd_scene load_steps=3 format=3 uid="uid://cl8jv2cft44qw"] + +[ext_resource type="Script" path="res://source/scenes/input_controls.gd" id="1_8pc6d"] +[ext_resource type="PackedScene" uid="uid://caum2ucqak0ro" path="res://source/scenes/input_button.tscn" id="1_ygp52"] + +[node name="Input Controls" type="Control"] +custom_minimum_size = Vector2(0, 256) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_8pc6d") +metadata/player_num = 0 +metadata/input_type = "" + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 0 +offset_right = 400.0 +offset_bottom = 400.0 +theme_override_constants/separation = 16 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +custom_minimum_size = Vector2(0, 32) +layout_mode = 2 +theme_override_constants/separation = 1 + +[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Input Type" +metadata/action_name = "" + +[node name="VSeparator" type="VSeparator" parent="VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="Button" type="Button" parent="VBoxContainer/HBoxContainer"] +custom_minimum_size = Vector2(150, 0) +layout_mode = 2 +text = "Input Type" + +[node name="Input Button1" parent="VBoxContainer" instance=ExtResource("1_ygp52")] +layout_mode = 2 +metadata/input_name = "Up" + +[node name="Input Button2" parent="VBoxContainer" instance=ExtResource("1_ygp52")] +layout_mode = 2 +metadata/input_name = "Left" + +[node name="Input Button3" parent="VBoxContainer" instance=ExtResource("1_ygp52")] +layout_mode = 2 +metadata/input_name = "Down" + +[node name="Input Button4" parent="VBoxContainer" instance=ExtResource("1_ygp52")] +layout_mode = 2 +metadata/input_name = "Right" + +[connection signal="pressed" from="VBoxContainer/HBoxContainer/Button" to="." method="_on_button_pressed"] diff --git a/source/scenes/settings.gd b/source/scenes/settings.gd new file mode 100644 index 00000000..ba3d614b --- /dev/null +++ b/source/scenes/settings.gd @@ -0,0 +1,6 @@ +extends Control + +func _process(delta): + if Input.is_action_just_pressed("esc") : + if(visible): visible = false + else: visible = true diff --git a/source/scenes/settings.tscn b/source/scenes/settings.tscn new file mode 100644 index 00000000..dc49ac9e --- /dev/null +++ b/source/scenes/settings.tscn @@ -0,0 +1,86 @@ +[gd_scene load_steps=4 format=3 uid="uid://b55salwd6xeoq"] + +[ext_resource type="Script" path="res://source/scenes/settings.gd" id="1_lmc7t"] +[ext_resource type="PackedScene" uid="uid://cl8jv2cft44qw" path="res://source/scenes/input_controls.tscn" id="1_ovefd"] + +[sub_resource type="CanvasTexture" id="CanvasTexture_awq37"] + +[node name="Settings" type="Control"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 1024.0 +offset_bottom = 512.0 +script = ExtResource("1_lmc7t") + +[node name="TextureRect" type="TextureRect" parent="."] +modulate = Color(0, 0.333333, 0.572549, 1) +layout_mode = 0 +offset_right = 1024.0 +offset_bottom = 512.0 +texture = SubResource("CanvasTexture_awq37") + +[node name="TabContainer" type="TabContainer" parent="."] +layout_mode = 0 +offset_right = 1024.0 +offset_bottom = 512.0 +current_tab = 0 + +[node name="Controls" type="TabBar" parent="TabContainer"] +layout_mode = 2 +metadata/_tab_index = 0 + +[node name="MarginContainer" type="MarginContainer" parent="TabContainer/Controls"] +layout_mode = 2 +offset_right = 1024.0 +offset_bottom = 481.0 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 20 +theme_override_constants/margin_bottom = 20 + +[node name="ScrollContainer" type="ScrollContainer" parent="TabContainer/Controls/MarginContainer"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Controls/MarginContainer/ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/separation = 16 + +[node name="HSeparator" type="HSeparator" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] +layout_mode = 2 +text = "Player 1" + +[node name="Input Controls" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] +layout_mode = 2 +metadata/player_num = 1 +metadata/input_type = "Keyboard" + +[node name="Label2" type="Label" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] +layout_mode = 2 +text = "Player 2" + +[node name="Input Controls2" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] +layout_mode = 2 +metadata/player_num = 2 +metadata/input_type = "Controller" + +[node name="Label3" type="Label" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] +layout_mode = 2 +text = "Player 3" + +[node name="Input Controls3" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] +layout_mode = 2 +metadata/player_num = 3 +metadata/input_type = "Controller" + +[node name="Label4" type="Label" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] +layout_mode = 2 +text = "Player 4" + +[node name="Input Controls4" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] +layout_mode = 2 +metadata/player_num = 4 +metadata/input_type = "Controller" From 0828d19807ce7448d03e46c0ff369eb932900815 Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Thu, 10 Oct 2024 00:27:18 -0400 Subject: [PATCH 022/110] Some progress for item system with status effect --- project.godot | 2 -- source/item/Stats.gd | 2 +- source/scenes/Ite47CD.tmp | 21 +++++++++++++++++++++ source/scripts/Item_Advanced_Functions.gd | 13 +++++++------ source/scripts/Player_Test.gd | 15 ++++++++++++++- source/scripts/StatusEffect.gd | 11 +++++++++++ source/scripts/StatusEffectManager.gd | 18 ++++++++++++++++++ 7 files changed, 72 insertions(+), 10 deletions(-) create mode 100644 source/scenes/Ite47CD.tmp create mode 100644 source/scripts/StatusEffect.gd create mode 100644 source/scripts/StatusEffectManager.gd diff --git a/project.godot b/project.godot index 13901070..ff7f1a88 100644 --- a/project.godot +++ b/project.godot @@ -18,8 +18,6 @@ config/icon="res://icon.svg" [autoload] ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" - - window/size/mode=2 window/stretch/mode="canvas_items" diff --git a/source/item/Stats.gd b/source/item/Stats.gd index f18d4d2a..e2411e6a 100644 --- a/source/item/Stats.gd +++ b/source/item/Stats.gd @@ -35,4 +35,4 @@ func copy() -> Stats : s.dashCooldown = dashCooldown s.abilityCooldown = abilityCooldown s.cost = cost - return s \ No newline at end of file + return s diff --git a/source/scenes/Ite47CD.tmp b/source/scenes/Ite47CD.tmp new file mode 100644 index 00000000..dd3571d5 --- /dev/null +++ b/source/scenes/Ite47CD.tmp @@ -0,0 +1,21 @@ +[gd_scene load_steps=5 format=3 uid="uid://csmmvcufjnsl2"] + +[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] +[ext_resource type="Resource" uid="uid://6ukslotnk4y3" path="res://DmgBuffItem.tres" id="2_blmat"] +[ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://AdditionalShot.tres" id="3_slule"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] +script = ExtResource("1_rryau") +items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_slule")]) + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") + +[node name="Timer" type="Timer" parent="Player"] +one_shot = true diff --git a/source/scripts/Item_Advanced_Functions.gd b/source/scripts/Item_Advanced_Functions.gd index 838cc14e..0179bd95 100644 --- a/source/scripts/Item_Advanced_Functions.gd +++ b/source/scripts/Item_Advanced_Functions.gd @@ -1,12 +1,13 @@ +class_name Item_Advanced_Functions extends Node#extend node to allow global script #THIS NEEDS TO BE SET AS A GLOBAL SCRIPT #Project > Project Settings > Globals #Class stores and type of special item functionality -class Item_Advanced_Functions: - static func damage_increase(ps): - ps.damage += 1 - print("I increased ur damage dawg") - static func shoot_additional_projectile(ps): - print("let's pretend the player shot an additional projectile") + +static func damage_increase(ps :Player_Test): + if(!ps.statusEffects.hasStatus("Damage Buff")): + ps.statusEffects.giveStatus(StatusEffect.new("Damage Buff",(func(): ps.damage += 1),(func(): ps.damage -= 1)), 3) +static func shoot_additional_projectile(ps:Player_Test): + print("let's pretend the player shot an additional projectile") diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index e72debb3..e6af03af 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -1,3 +1,4 @@ +class_name Player_Test extends Node #this is just a test repleca of the player @@ -9,6 +10,10 @@ var health :int = 0 signal onAttack(player) #more signals to tell items when to trigger their effects + +var statusEffects : StatusEffectManager + + # Called when the node enters the scene tree for the first time. func _ready() -> void: pass # Replace with function body. @@ -16,6 +21,9 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(_delta: float) -> void: + manage_test_input() + +func manage_test_input(): #Press enter to get item (currently only the DmgBuffItem) if Input.is_action_just_pressed("1"): print("Gave Item " + str(items[0].resource_path)) @@ -23,7 +31,6 @@ func _process(_delta: float) -> void: if Input.is_action_just_pressed("2"): print("Gave Item " + str(items[1].resource_path)) get_item(items[1]) - #press left mouse to "fire" if Input.is_action_just_pressed("mouse_0"): print("Just Fired") @@ -31,7 +38,13 @@ func _process(_delta: float) -> void: #press right mouse to check damage stat if Input.is_action_just_pressed("mouse_1"): print("damage is " + str(damage)) + func get_item(item : Resource): damage += item.damage health += item.health onAttack.connect(Callable(ItemAdvancedFunctions.Item_Advanced_Functions,item.onFireFunctions)) + +func hit_object(ps: Player_Test): + pass +func add_status_effect(effect : StatusEffect): + pass diff --git a/source/scripts/StatusEffect.gd b/source/scripts/StatusEffect.gd new file mode 100644 index 00000000..932aeb86 --- /dev/null +++ b/source/scripts/StatusEffect.gd @@ -0,0 +1,11 @@ +class_name StatusEffect + +var name : String +var onStart : Callable +var onEnd : Callable + + +func _init(_name : String ,start: Callable = Callable(),end : Callable = Callable()) -> void: + name = _name + onStart = start + onEnd = end diff --git a/source/scripts/StatusEffectManager.gd b/source/scripts/StatusEffectManager.gd new file mode 100644 index 00000000..262308c8 --- /dev/null +++ b/source/scripts/StatusEffectManager.gd @@ -0,0 +1,18 @@ +class_name StatusEffectManager +extends Node + +var statuses : Array[String] + + +func giveStatus(status: StatusEffect,duration : float) -> void: + statuses.append(status) + create_timer(status,duration) +func hasStatus(status: String) -> bool: + return statuses.has(status) +func create_timer(status : StatusEffect, duration :float): + var timer := Timer.new() + add_child(timer) + timer.wait_time = duration + timer.one_shot = true + timer.start() + timer.connect("timeout",status.onEnd) From 518bbb6da03d9b13c3ba191df0198bb1315222cf Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 10 Oct 2024 17:43:24 -0400 Subject: [PATCH 023/110] Rename to item selector --- source/scenes/{item_directory.tscn => item_selector.tscn} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/scenes/{item_directory.tscn => item_selector.tscn} (100%) diff --git a/source/scenes/item_directory.tscn b/source/scenes/item_selector.tscn similarity index 100% rename from source/scenes/item_directory.tscn rename to source/scenes/item_selector.tscn From 4c228c7655e158c14e6237344448a01d43b57b8c Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 10 Oct 2024 19:11:12 -0400 Subject: [PATCH 024/110] Update the early item selector --- source/scenes/item_selector.tscn | 56 +++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/source/scenes/item_selector.tscn b/source/scenes/item_selector.tscn index a89adc60..4ab68003 100644 --- a/source/scenes/item_selector.tscn +++ b/source/scenes/item_selector.tscn @@ -1,20 +1,58 @@ -[gd_scene format=3 uid="uid://dneing502fg0w"] +[gd_scene load_steps=2 format=3 uid="uid://dneing502fg0w"] -[node name="ItemDirectory" type="MarginContainer"] +[sub_resource type="CanvasTexture" id="CanvasTexture_wuym8"] + +[node name="ItemDirectory" type="Control"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 350.0 +offset_bottom = 191.0 + +[node name="TextureRect" type="TextureRect" parent="."] +modulate = Color(0.258824, 0.529412, 0.960784, 1) +layout_mode = 0 +offset_right = 1148.0 +offset_bottom = 656.0 +texture = SubResource("CanvasTexture_wuym8") + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 -theme_override_constants/margin_left = 120 -theme_override_constants/margin_top = 80 -theme_override_constants/margin_right = 120 -theme_override_constants/margin_bottom = 80 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 20 +theme_override_constants/margin_bottom = 20 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Button2" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Item1" -[node name="HBoxContainer" type="HBoxContainer" parent="."] +[node name="Button3" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] layout_mode = 2 +text = "Item1" + +[node name="Button" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Item1" + +[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Button2" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2"] +layout_mode = 2 +text = "Item1" -[node name="Button" type="Button" parent="HBoxContainer"] +[node name="Button3" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2"] layout_mode = 2 text = "Item1" -[node name="Button2" type="Button" parent="HBoxContainer"] +[node name="Button" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2"] layout_mode = 2 text = "Item1" From 50021231bcabf30e99a214e8843df2071592d6c5 Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Thu, 10 Oct 2024 19:27:02 -0400 Subject: [PATCH 025/110] Completed Workable Item StatusEffect system --- AdditionalShot.tres | 9 ---- DamageWhenOnFire.tres | 10 +++++ DmgBuffItem.tres | 3 +- project.godot | 14 +++--- source/scenes/ItemTestingScene.tscn | 10 +++-- source/scripts/Item_Advanced_Functions.gd | 13 +++++- source/scripts/Item_Test.gd | 2 + source/scripts/Player_Test.gd | 28 +++++++++--- source/scripts/StatusEffect.gd | 11 ----- source/scripts/StatusEffectManager.gd | 52 +++++++++++++++++++++-- 10 files changed, 107 insertions(+), 45 deletions(-) delete mode 100644 AdditionalShot.tres create mode 100644 DamageWhenOnFire.tres diff --git a/AdditionalShot.tres b/AdditionalShot.tres deleted file mode 100644 index c60ba5cc..00000000 --- a/AdditionalShot.tres +++ /dev/null @@ -1,9 +0,0 @@ -[gd_resource type="Resource" load_steps=2 format=3 uid="uid://dkvnmfbifsaig"] - -[ext_resource type="Script" path="res://source/scripts/Item_Test.gd" id="1_a0pdk"] - -[resource] -script = ExtResource("1_a0pdk") -damage = 0 -health = 0 -onFireFunctions = "shoot_additional_projectile" diff --git a/DamageWhenOnFire.tres b/DamageWhenOnFire.tres new file mode 100644 index 00000000..15cb4b3d --- /dev/null +++ b/DamageWhenOnFire.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="Item_Test" load_steps=2 format=3 uid="uid://dkvnmfbifsaig"] + +[ext_resource type="Script" path="res://source/scripts/Item_Test.gd" id="1_y0y86"] + +[resource] +script = ExtResource("1_y0y86") +damage = 0 +health = 0 +onStartFunctions = "damage_when_on_fire" +onFireFunctions = "" diff --git a/DmgBuffItem.tres b/DmgBuffItem.tres index f97c83ef..09f4126b 100644 --- a/DmgBuffItem.tres +++ b/DmgBuffItem.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" load_steps=2 format=3 uid="uid://6ukslotnk4y3"] +[gd_resource type="Resource" script_class="Item_Test" load_steps=2 format=3 uid="uid://6ukslotnk4y3"] [ext_resource type="Script" path="res://source/scripts/Item_Test.gd" id="1_h2nlj"] @@ -6,4 +6,5 @@ script = ExtResource("1_h2nlj") damage = 5 health = 0 +onStartFunctions = "damage_increase_start" onFireFunctions = "damage_increase" diff --git a/project.godot b/project.godot index ff7f1a88..214088da 100644 --- a/project.godot +++ b/project.godot @@ -17,33 +17,29 @@ config/icon="res://icon.svg" [autoload] -ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" window/size/mode=2 window/stretch/mode="canvas_items" +ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" [input] mouse_0={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(374, 6),"global_position":Vector2(383, 52),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) ] } mouse_1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":2,"position":Vector2(268, 22),"global_position":Vector2(277, 68),"factor":1.0,"button_index":2,"canceled":false,"pressed":true,"double_click":false,"script":null) ] } 1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":49,"key_label":0,"unicode":49,"location":0,"echo":false,"script":null) ] } 2={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":50,"key_label":0,"unicode":50,"location":0,"echo":false,"script":null) ] } diff --git a/source/scenes/ItemTestingScene.tscn b/source/scenes/ItemTestingScene.tscn index 8d0e2816..cc2f00c3 100644 --- a/source/scenes/ItemTestingScene.tscn +++ b/source/scenes/ItemTestingScene.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=5 format=3 uid="uid://csmmvcufjnsl2"] +[gd_scene load_steps=6 format=3 uid="uid://csmmvcufjnsl2"] [ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] [ext_resource type="Resource" uid="uid://6ukslotnk4y3" path="res://DmgBuffItem.tres" id="2_blmat"] -[ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://AdditionalShot.tres" id="3_slule"] +[ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://DamageWhenOnFire.tres" id="3_h0kxt"] +[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] [sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] @@ -10,9 +11,12 @@ [node name="Player" type="Node2D" parent="."] script = ExtResource("1_rryau") -items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_slule")]) +items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt")]) [node name="Area2D" type="Area2D" parent="Player"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] shape = SubResource("CircleShape2D_f54gc") + +[node name="StatusEffectManager" type="Node2D" parent="Player"] +script = ExtResource("4_t3y7h") diff --git a/source/scripts/Item_Advanced_Functions.gd b/source/scripts/Item_Advanced_Functions.gd index 0179bd95..4d1416b1 100644 --- a/source/scripts/Item_Advanced_Functions.gd +++ b/source/scripts/Item_Advanced_Functions.gd @@ -1,4 +1,4 @@ -class_name Item_Advanced_Functions +#class_name Item_Advanced_Functions extends Node#extend node to allow global script #THIS NEEDS TO BE SET AS A GLOBAL SCRIPT #Project > Project Settings > Globals @@ -6,8 +6,17 @@ extends Node#extend node to allow global script #Class stores and type of special item functionality +static func damage_increase_start(ps :Player_Test): + ps.statusEffects.addStatusStartFunction("Damage Buff", (func(x : Player_Test): x.damage += 1).bind(ps)) + ps.statusEffects.addStatusEndFunction("Damage Buff", (func(x : Player_Test): x.damage -= 1).bind(ps)) + static func damage_increase(ps :Player_Test): if(!ps.statusEffects.hasStatus("Damage Buff")): - ps.statusEffects.giveStatus(StatusEffect.new("Damage Buff",(func(): ps.damage += 1),(func(): ps.damage -= 1)), 3) + ps.statusEffects.giveStatus("Damage Buff",3) + static func shoot_additional_projectile(ps:Player_Test): print("let's pretend the player shot an additional projectile") + +static func damage_when_on_fire(ps : Player_Test): + ps.statusEffects.addStatusStartFunction("Fire", func(): ps.damage += 10) + ps.statusEffects.addStatusEndFunction("Fire", func(): ps.damage -= 10) diff --git a/source/scripts/Item_Test.gd b/source/scripts/Item_Test.gd index b6ce2ead..e3ed64a3 100644 --- a/source/scripts/Item_Test.gd +++ b/source/scripts/Item_Test.gd @@ -1,8 +1,10 @@ +class_name Item_Test extends Resource #basic stats @export var damage :int @export var health : int +@export var onStartFunctions : String @export var onFireFunctions : String #Array[String] for multiple on fire functions #Could exports strings of other events that have item functions #On hit, On take damage, On every frame diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index e6af03af..1be4fc1b 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -11,17 +11,21 @@ signal onAttack(player) #more signals to tell items when to trigger their effects -var statusEffects : StatusEffectManager +@onready var statusEffects : StatusEffectManager = $StatusEffectManager +#strictly for testing damage +var testToggle :bool = false # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. + statusEffects.setStartingStatusFunctions(self) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(_delta: float) -> void: manage_test_input() + if(testToggle): + print("damage is " + str(damage)) func manage_test_input(): #Press enter to get item (currently only the DmgBuffItem) @@ -37,14 +41,24 @@ func manage_test_input(): onAttack.emit(self) #press right mouse to check damage stat if Input.is_action_just_pressed("mouse_1"): - print("damage is " + str(damage)) + testToggle = !testToggle + if Input.is_action_just_pressed("ui_accept"): + statusEffects.giveStatus("Fire",3) -func get_item(item : Resource): +func get_item(item : Item_Test): damage += item.damage health += item.health - onAttack.connect(Callable(ItemAdvancedFunctions.Item_Advanced_Functions,item.onFireFunctions)) + if(item.onStartFunctions != ""): + Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME + if(item.onFireFunctions != ""): + onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) func hit_object(ps: Player_Test): pass -func add_status_effect(effect : StatusEffect): - pass + +func change_health(deltaHealth : float): + print("Player took " + str(-deltaHealth) + " damage") +#func give_status_effect(effect : StatusEffect, duration : float): + #statusEffects.giveStatus(effect, duration) + +#this function can be moved basically anywhere diff --git a/source/scripts/StatusEffect.gd b/source/scripts/StatusEffect.gd index 932aeb86..e69de29b 100644 --- a/source/scripts/StatusEffect.gd +++ b/source/scripts/StatusEffect.gd @@ -1,11 +0,0 @@ -class_name StatusEffect - -var name : String -var onStart : Callable -var onEnd : Callable - - -func _init(_name : String ,start: Callable = Callable(),end : Callable = Callable()) -> void: - name = _name - onStart = start - onEnd = end diff --git a/source/scripts/StatusEffectManager.gd b/source/scripts/StatusEffectManager.gd index 262308c8..7ca6a3d0 100644 --- a/source/scripts/StatusEffectManager.gd +++ b/source/scripts/StatusEffectManager.gd @@ -2,17 +2,63 @@ class_name StatusEffectManager extends Node var statuses : Array[String] +var statusFunctionsStart : Dictionary#[String,Array[Callable]] +var statusFunctionsEnd : Dictionary#[String,Array[Callable]] +var timers : Dictionary#[String,Timer] -func giveStatus(status: StatusEffect,duration : float) -> void: +enum OverLapBehavior{ + IGNORE, + REFRESH +} + +func setStartingStatusFunctions(ps : Player_Test): + #Temperary. StatusEffect behavior should be stored elsewhere + addStatusStartFunction("Fire", Callable(self,"fire_start").bind(ps)) + addStatusEndFunction("FireTick", Callable(self,"fire_tick_end").bind(ps)) + +func giveStatus(status: String,duration : float) -> void: statuses.append(status) + if(statusFunctionsStart.has(status)): + #print(statusFunctionsStart[status]) + for c in statusFunctionsStart[status]: + #print(c) + c.call() create_timer(status,duration) + func hasStatus(status: String) -> bool: return statuses.has(status) -func create_timer(status : StatusEffect, duration :float): + +func create_timer(status : String, duration :float): var timer := Timer.new() add_child(timer) timer.wait_time = duration timer.one_shot = true timer.start() - timer.connect("timeout",status.onEnd) + timer.connect("timeout", Callable(self,"removeStatus").bind(status)) + +func removeStatus(status: String): + #print("removing", status) + if(statusFunctionsEnd.has(status)): + #print(statusFunctionsEnd[status]) + for c in statusFunctionsEnd[status]: + c.call() + statuses.erase(status) +func addStatusStartFunction(statusName : String, function : Callable): + if(!statusFunctionsStart.has(statusName)): + var newFunctions : Array[Callable] + statusFunctionsStart[statusName] = newFunctions + statusFunctionsStart[statusName].append(function) +func addStatusEndFunction(statusName : String, function : Callable): + if(!statusFunctionsEnd.has(statusName)): + var newFunctions : Array[Callable] + statusFunctionsEnd[statusName] = newFunctions + statusFunctionsEnd[statusName].append(function) + + +func fire_start(ps : Player_Test): + giveStatus("FireTick",0.5) +func fire_tick_end(ps : Player_Test): + ps.change_health(-2) + if(hasStatus("Fire")): + giveStatus("FireTick", 0.5) From 9a52b68c14f497cf8f266b1103c27fa8bee3aa6e Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 10 Oct 2024 19:49:39 -0400 Subject: [PATCH 026/110] Add test item --- source/item/test.png | Bin 0 -> 266 bytes source/item/test.png.import | 34 ++++++++++++++++++++++++++++++++++ source/item/test_item.tres | 19 +++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 source/item/test.png create mode 100644 source/item/test.png.import create mode 100644 source/item/test_item.tres diff --git a/source/item/test.png b/source/item/test.png new file mode 100644 index 0000000000000000000000000000000000000000..df3604e30b64834d02999a33a0e0c436a20304af GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!;CxRP$B+p3w^MWZ8WcDjHeN3If4M}unRj-c zW`vXdqug_8TKe`JO%Jk#uCG7Io>JGc<@NKsJL0@_l@pa5GE~p7aP+z;H|+iF^Dxm_ zh4ZqgMvqDiOUJyH*$jp17dak0^(}q)jQizZ;X7dslPx%1jLxO4EZ78t)?lB~3Po(OM9{r<>DJS`3%${GCrO)`wQd2Kt$KMbC(elF{r G5}E*}EMR>A literal 0 HcmV?d00001 diff --git a/source/item/test.png.import b/source/item/test.png.import new file mode 100644 index 00000000..9b511978 --- /dev/null +++ b/source/item/test.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnvrku1kj1soe" +path="res://.godot/imported/test.png-660965e53821b1e40b6f2a332b5ad15d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/item/test.png" +dest_files=["res://.godot/imported/test.png-660965e53821b1e40b6f2a332b5ad15d.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/source/item/test_item.tres b/source/item/test_item.tres new file mode 100644 index 00000000..4a3bf3f6 --- /dev/null +++ b/source/item/test_item.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Item_Res" load_steps=3 format=3 uid="uid://rrec8arslhxj"] + +[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_80a0i"] +[ext_resource type="Texture2D" uid="uid://bnvrku1kj1soe" path="res://source/item/test.png" id="2_w0275"] + +[resource] +script = ExtResource("1_80a0i") +sprite = ExtResource("2_w0275") +name = "test_item" +description = "" +rarity = 0 +func_names = Array[String]([]) +health = 0.0 +topSpeed = 0.0 +attackSpeed = 0.0 +attackDamage = 0.0 +dashCooldown = 0.0 +abilityCooldown = 0.0 +cost = 0 From e079ae266e25916ab77be4a1eacb08cae5344dee Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 10 Oct 2024 19:57:12 -0400 Subject: [PATCH 027/110] Create item button scene --- source/scenes/item_button.gd | 14 ++++++++++++++ source/scenes/item_button.tscn | 8 ++++++++ source/scenes/item_selector.tscn | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 source/scenes/item_button.gd create mode 100644 source/scenes/item_button.tscn diff --git a/source/scenes/item_button.gd b/source/scenes/item_button.gd new file mode 100644 index 00000000..7cdf2108 --- /dev/null +++ b/source/scenes/item_button.gd @@ -0,0 +1,14 @@ +extends Button + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + +func change_name(name: String): + set_text("name") diff --git a/source/scenes/item_button.tscn b/source/scenes/item_button.tscn new file mode 100644 index 00000000..d75edf29 --- /dev/null +++ b/source/scenes/item_button.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=3 uid="uid://bal5pfw8ipn81"] + +[ext_resource type="Script" path="res://source/scenes/item_button.gd" id="1_pasov"] + +[node name="ItemButton" type="Button"] +text = "test +" +script = ExtResource("1_pasov") diff --git a/source/scenes/item_selector.tscn b/source/scenes/item_selector.tscn index 4ab68003..6d8f4877 100644 --- a/source/scenes/item_selector.tscn +++ b/source/scenes/item_selector.tscn @@ -32,7 +32,7 @@ layout_mode = 2 [node name="Button2" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] layout_mode = 2 -text = "Item1" +text = "test_item" [node name="Button3" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] layout_mode = 2 From 9e399e312b8635fccbe2f4b4ef70fe317e3049e5 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Thu, 10 Oct 2024 20:22:31 -0400 Subject: [PATCH 028/110] moved scripts to script folder --- source/scenes/input_button.tscn | 2 +- source/scenes/input_controls.tscn | 2 +- source/scenes/settings.tscn | 2 +- source/{scenes => scripts}/input_button.gd | 2 -- source/{scenes => scripts}/input_controls.gd | 0 source/{scenes => scripts}/settings.gd | 0 6 files changed, 3 insertions(+), 5 deletions(-) rename source/{scenes => scripts}/input_button.gd (99%) rename source/{scenes => scripts}/input_controls.gd (100%) rename source/{scenes => scripts}/settings.gd (100%) diff --git a/source/scenes/input_button.tscn b/source/scenes/input_button.tscn index 570f0588..124bb727 100644 --- a/source/scenes/input_button.tscn +++ b/source/scenes/input_button.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://caum2ucqak0ro"] -[ext_resource type="Script" path="res://source/scenes/input_button.gd" id="1_8e18b"] +[ext_resource type="Script" path="res://source/scripts/input_button.gd" id="1_8e18b"] [node name="Input Button" type="Control"] custom_minimum_size = Vector2(0, 32) diff --git a/source/scenes/input_controls.tscn b/source/scenes/input_controls.tscn index 3ff26bec..0433d1b2 100644 --- a/source/scenes/input_controls.tscn +++ b/source/scenes/input_controls.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=3 uid="uid://cl8jv2cft44qw"] -[ext_resource type="Script" path="res://source/scenes/input_controls.gd" id="1_8pc6d"] +[ext_resource type="Script" path="res://source/scripts/input_controls.gd" id="1_8pc6d"] [ext_resource type="PackedScene" uid="uid://caum2ucqak0ro" path="res://source/scenes/input_button.tscn" id="1_ygp52"] [node name="Input Controls" type="Control"] diff --git a/source/scenes/settings.tscn b/source/scenes/settings.tscn index dc49ac9e..68ee088b 100644 --- a/source/scenes/settings.tscn +++ b/source/scenes/settings.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=4 format=3 uid="uid://b55salwd6xeoq"] -[ext_resource type="Script" path="res://source/scenes/settings.gd" id="1_lmc7t"] +[ext_resource type="Script" path="res://source/scripts/settings.gd" id="1_lmc7t"] [ext_resource type="PackedScene" uid="uid://cl8jv2cft44qw" path="res://source/scenes/input_controls.tscn" id="1_ovefd"] [sub_resource type="CanvasTexture" id="CanvasTexture_awq37"] diff --git a/source/scenes/input_button.gd b/source/scripts/input_button.gd similarity index 99% rename from source/scenes/input_button.gd rename to source/scripts/input_button.gd index fc132d5c..18c4e340 100644 --- a/source/scenes/input_button.gd +++ b/source/scripts/input_button.gd @@ -35,7 +35,6 @@ func _process(delta) -> void: if waiting == true: button.text = "Press Any Key" if waiting == false: - for input in InputMap.action_get_events(action): if input is InputEventKey: inputK = input else: inputJ = input @@ -45,7 +44,6 @@ func _process(delta) -> void: else: button.text = "---" else: button.text = "wip" - func _on_button_pressed() -> void: if input_type == "Keyboard": waiting = true diff --git a/source/scenes/input_controls.gd b/source/scripts/input_controls.gd similarity index 100% rename from source/scenes/input_controls.gd rename to source/scripts/input_controls.gd diff --git a/source/scenes/settings.gd b/source/scripts/settings.gd similarity index 100% rename from source/scenes/settings.gd rename to source/scripts/settings.gd From 0f5ade60dc6e540e14bbaf865f9c51ded838fa70 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Thu, 10 Oct 2024 21:15:23 -0400 Subject: [PATCH 029/110] controller input remapping --- source/scripts/input_button.gd | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/source/scripts/input_button.gd b/source/scripts/input_button.gd index 18c4e340..6e323b87 100644 --- a/source/scripts/input_button.gd +++ b/source/scripts/input_button.gd @@ -13,7 +13,6 @@ var inputK var inputJ func _ready() -> void: - set_process_unhandled_key_input(false) label.text = get_meta("input_name") action = label.text + "%s" % player_num @@ -45,13 +44,17 @@ func _process(delta) -> void: else: button.text = "wip" func _on_button_pressed() -> void: - if input_type == "Keyboard": - waiting = true - set_process_unhandled_key_input(true) + waiting = true func _input(event): - if waiting == true && input_type == "Keyboard" && event is InputEventKey: - InputMap.action_erase_events(action) - InputMap.action_add_event(action, event) - inputK = event - waiting = false + if waiting == true: + if input_type == "Keyboard" && event is InputEventKey || input_type == "Controller" && (event is InputEventJoypadButton || event is InputEventJoypadMotion && abs(event.axis_value) >= 0.5 ): + if(event is InputEventJoypadMotion): + if event.axis_value > 0: event.axis_value = 1.00 + else: event.axis_value = -1.00 + + InputMap.action_erase_events(action) + InputMap.action_add_event(action, event) + if input_type == "Keyboard": inputK = event + else: inputJ = event + waiting = false From 646a97126411c3cb3916521c41745c7ce240938e Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Thu, 17 Oct 2024 02:38:07 -0400 Subject: [PATCH 030/110] automatic controller swapping --- source/scenes/input_controls.tscn | 1 + source/scenes/settings.tscn | 9 +++++--- source/scripts/input_button.gd | 5 +++-- source/scripts/input_controls.gd | 16 ++++++++++++--- source/scripts/player.gd | 4 ++-- source/scripts/settings.gd | 34 +++++++++++++++++++++++++++++-- 6 files changed, 57 insertions(+), 12 deletions(-) diff --git a/source/scenes/input_controls.tscn b/source/scenes/input_controls.tscn index 0433d1b2..c490aa60 100644 --- a/source/scenes/input_controls.tscn +++ b/source/scenes/input_controls.tscn @@ -14,6 +14,7 @@ grow_vertical = 2 script = ExtResource("1_8pc6d") metadata/player_num = 0 metadata/input_type = "" +metadata/device_id = 0 [node name="VBoxContainer" type="VBoxContainer" parent="."] layout_mode = 0 diff --git a/source/scenes/settings.tscn b/source/scenes/settings.tscn index 68ee088b..0d459722 100644 --- a/source/scenes/settings.tscn +++ b/source/scenes/settings.tscn @@ -65,7 +65,8 @@ text = "Player 2" [node name="Input Controls2" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] layout_mode = 2 metadata/player_num = 2 -metadata/input_type = "Controller" +metadata/input_type = "Keyboard" +metadata/device_id = 1 [node name="Label3" type="Label" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] layout_mode = 2 @@ -74,7 +75,8 @@ text = "Player 3" [node name="Input Controls3" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] layout_mode = 2 metadata/player_num = 3 -metadata/input_type = "Controller" +metadata/input_type = "Keyboard" +metadata/device_id = 2 [node name="Label4" type="Label" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] layout_mode = 2 @@ -83,4 +85,5 @@ text = "Player 4" [node name="Input Controls4" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] layout_mode = 2 metadata/player_num = 4 -metadata/input_type = "Controller" +metadata/input_type = "Keyboard" +metadata/device_id = 3 diff --git a/source/scripts/input_button.gd b/source/scripts/input_button.gd index 6e323b87..dbce9d78 100644 --- a/source/scripts/input_button.gd +++ b/source/scripts/input_button.gd @@ -14,13 +14,14 @@ var inputJ func _ready() -> void: label.text = get_meta("input_name") - action = label.text + "%s" % player_num + action = label.text + str(player_num) for input in InputMap.action_get_events(action): if input is InputEventKey: inputK = input else: inputJ = input InputMap.action_erase_events(action) + if input_type == "Keyboard": InputMap.action_add_event(action, inputK) else: InputMap.action_add_event(action, inputJ) @@ -39,7 +40,7 @@ func _process(delta) -> void: else: inputJ = input if input_type == "Keyboard": - if inputK: button.text = "%s" % OS.get_keycode_string(inputK.physical_keycode) + if inputK: button.text = str(OS.get_keycode_string(inputK.physical_keycode)) else: button.text = "---" else: button.text = "wip" diff --git a/source/scripts/input_controls.gd b/source/scripts/input_controls.gd index c65372e0..22ff0392 100644 --- a/source/scripts/input_controls.gd +++ b/source/scripts/input_controls.gd @@ -8,14 +8,24 @@ class_name Input_Controls @onready var input_type = get_meta("input_type") func _ready() -> void: - set_process_unhandled_key_input(false) + if input_type == "Keyboard": set_meta("device_id", -1) func _process(delta) -> void: input_type = get_meta("input_type") button.text = get_meta("input_type") + + for node in $VBoxContainer.get_children(): + if node.has_meta("input_name"): + var inputsArray = InputMap.action_get_events(node.get_meta("input_name") + str(player_num)) + if len(inputsArray) > 0: + var input = InputMap.action_get_events(node.get_meta("input_name") + str(player_num))[0] + if input is InputEventJoypadButton || input is InputEventJoypadMotion: + input.set_device(get_meta("device_id")) func _on_button_pressed() -> void: - if input_type == "Keyboard": + if input_type == "Keyboard": set_meta("input_type", "Controller") - else: + set_meta("device_id", 4) + else: set_meta("input_type", "Keyboard") + set_meta("device_id", -1) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index a5a30bfe..eec672d2 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -15,8 +15,8 @@ func _process(delta) -> void: handle_move() func handle_move() -> void: - var player_num = get_meta("player_num") - movement = Vector2(Input.get_axis("Left%s" % player_num, "Right%s" % player_num), Input.get_axis("Up%s" % player_num, "Down%s" % player_num)).normalized() + var player_num = str(get_meta("player_num")) + movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() if movement.length() : Speed = move_toward(Speed, stats.topSpeed * TOP_SPEED_FACTOR, ACCELERATION) diff --git a/source/scripts/settings.gd b/source/scripts/settings.gd index ba3d614b..33df1ea2 100644 --- a/source/scripts/settings.gd +++ b/source/scripts/settings.gd @@ -1,6 +1,36 @@ extends Control +@onready var vbox = $TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer + +var deviceIDs = [] +var old_connected_joypads + +func _ready(): + for node in vbox.get_children(): + if node.has_meta("player_num"): deviceIDs.append(node.get_meta("device_id")) + old_connected_joypads = Input.get_connected_joypads() + func _process(delta): - if Input.is_action_just_pressed("esc") : - if(visible): visible = false + if Input.is_action_just_pressed("esc"): + if visible: visible = false else: visible = true + + for node in vbox.get_children(): + if node.has_meta("player_num"): + deviceIDs[node.get_meta("player_num") - 1] = node.get_meta("device_id") + + if deviceIDs.has(4): + for i in range(4): + if Input.get_connected_joypads().has(i) && !deviceIDs.has(i): + deviceIDs[deviceIDs.find(4)] = i + break + + if Input.get_connected_joypads() != old_connected_joypads: + for i in range(4): + if !(i in deviceIDs) && (i+1) in deviceIDs: + deviceIDs[deviceIDs.find(i+1)] = i + old_connected_joypads = Input.get_connected_joypads() + + for node in vbox.get_children(): + if node.has_meta("player_num"): + node.set_meta("device_id", deviceIDs[node.get_meta("player_num") - 1]) From 99cc9ec7bec3ae7d4995695c19629fbf366db05a Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Thu, 17 Oct 2024 03:04:29 -0400 Subject: [PATCH 031/110] Update settings.gd --- source/scripts/settings.gd | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/scripts/settings.gd b/source/scripts/settings.gd index 33df1ea2..6c2cb3c0 100644 --- a/source/scripts/settings.gd +++ b/source/scripts/settings.gd @@ -25,11 +25,11 @@ func _process(delta): deviceIDs[deviceIDs.find(4)] = i break - if Input.get_connected_joypads() != old_connected_joypads: - for i in range(4): - if !(i in deviceIDs) && (i+1) in deviceIDs: - deviceIDs[deviceIDs.find(i+1)] = i - old_connected_joypads = Input.get_connected_joypads() + #if Input.get_connected_joypads() != old_connected_joypads: + #for i in range(4): + #if !(i in deviceIDs) && (i+1) in deviceIDs: + #deviceIDs[deviceIDs.find(i+1)] = i + #old_connected_joypads = Input.get_connected_joypads() for node in vbox.get_children(): if node.has_meta("player_num"): From e640bb48a4025601fa402f4e4d7b3bc95f9492d4 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Thu, 17 Oct 2024 03:10:55 -0400 Subject: [PATCH 032/110] Update settings.gd --- source/scripts/settings.gd | 8 -------- 1 file changed, 8 deletions(-) diff --git a/source/scripts/settings.gd b/source/scripts/settings.gd index 6c2cb3c0..b51def28 100644 --- a/source/scripts/settings.gd +++ b/source/scripts/settings.gd @@ -3,12 +3,10 @@ extends Control @onready var vbox = $TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer var deviceIDs = [] -var old_connected_joypads func _ready(): for node in vbox.get_children(): if node.has_meta("player_num"): deviceIDs.append(node.get_meta("device_id")) - old_connected_joypads = Input.get_connected_joypads() func _process(delta): if Input.is_action_just_pressed("esc"): @@ -25,12 +23,6 @@ func _process(delta): deviceIDs[deviceIDs.find(4)] = i break - #if Input.get_connected_joypads() != old_connected_joypads: - #for i in range(4): - #if !(i in deviceIDs) && (i+1) in deviceIDs: - #deviceIDs[deviceIDs.find(i+1)] = i - #old_connected_joypads = Input.get_connected_joypads() - for node in vbox.get_children(): if node.has_meta("player_num"): node.set_meta("device_id", deviceIDs[node.get_meta("player_num") - 1]) From 277f7cc37c95e3e64bdb17628d73cf6053842dff Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 17 Oct 2024 19:44:33 -0400 Subject: [PATCH 033/110] Move item resources to their own directory --- source/item/{ => item_resources}/test_item.tres | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/item/{ => item_resources}/test_item.tres (100%) diff --git a/source/item/test_item.tres b/source/item/item_resources/test_item.tres similarity index 100% rename from source/item/test_item.tres rename to source/item/item_resources/test_item.tres From 0efb4366065931402b040412430e05708da73798 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 17 Oct 2024 20:02:58 -0400 Subject: [PATCH 034/110] Automatically load items into menu --- source/scenes/button_generator.gd | 32 +++++++++++++++++++++++++++++ source/scenes/item_button.gd | 10 +++++++-- source/scenes/item_selector.tscn | 34 +++++-------------------------- 3 files changed, 45 insertions(+), 31 deletions(-) create mode 100644 source/scenes/button_generator.gd diff --git a/source/scenes/button_generator.gd b/source/scenes/button_generator.gd new file mode 100644 index 00000000..75968adb --- /dev/null +++ b/source/scenes/button_generator.gd @@ -0,0 +1,32 @@ +extends HBoxContainer + +const resourcePath = "res://source/item/item_resources" +var buttonScene: PackedScene = preload("res://source/scenes/item_button.tscn") + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + var dir = DirAccess.open(resourcePath) + if dir: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if not dir.current_is_dir(): + if file_name.ends_with(".tres"): + addButton(file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + + + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + +func addButton(file_name: String): + # We'll just assume it's a resource of the correct type for now + var resource: Item_Res = load(resourcePath + "/" + file_name) + var button: Item_Button = buttonScene.instantiate() + add_child(button) + button.setItem(resource) diff --git a/source/scenes/item_button.gd b/source/scenes/item_button.gd index 7cdf2108..d41d5db4 100644 --- a/source/scenes/item_button.gd +++ b/source/scenes/item_button.gd @@ -1,4 +1,5 @@ extends Button +class_name Item_Button # Called when the node enters the scene tree for the first time. @@ -10,5 +11,10 @@ func _ready() -> void: func _process(delta: float) -> void: pass -func change_name(name: String): - set_text("name") +func setItem(resource: Item_Res): + set_text(resource.name) + set_button_icon(resource.sprite) + +func _button_pressed(): + print("Hello world!") + diff --git a/source/scenes/item_selector.tscn b/source/scenes/item_selector.tscn index 6d8f4877..b54c6308 100644 --- a/source/scenes/item_selector.tscn +++ b/source/scenes/item_selector.tscn @@ -1,8 +1,10 @@ -[gd_scene load_steps=2 format=3 uid="uid://dneing502fg0w"] +[gd_scene load_steps=3 format=3 uid="uid://dneing502fg0w"] + +[ext_resource type="Script" path="res://source/scenes/button_generator.gd" id="1_env2u"] [sub_resource type="CanvasTexture" id="CanvasTexture_wuym8"] -[node name="ItemDirectory" type="Control"] +[node name="ItemSelector" type="Control"] layout_mode = 3 anchors_preset = 0 offset_right = 350.0 @@ -29,30 +31,4 @@ layout_mode = 2 [node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] layout_mode = 2 - -[node name="Button2" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] -layout_mode = 2 -text = "test_item" - -[node name="Button3" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] -layout_mode = 2 -text = "Item1" - -[node name="Button" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] -layout_mode = 2 -text = "Item1" - -[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] -layout_mode = 2 - -[node name="Button2" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2"] -layout_mode = 2 -text = "Item1" - -[node name="Button3" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2"] -layout_mode = 2 -text = "Item1" - -[node name="Button" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2"] -layout_mode = 2 -text = "Item1" +script = ExtResource("1_env2u") From 6b1705dc28753fbab8f8c470f28656284479c81d Mon Sep 17 00:00:00 2001 From: Kuthan Kukrer Date: Thu, 17 Oct 2024 21:57:24 -0400 Subject: [PATCH 035/110] Implemented Attack System (Might have Bugs) Tried to add player attack system for both melee and long-range attacks. Might need some debugging but looks pretty good so far --- project.godot | 4 ++ source/item/Stats.gd | 2 +- source/item/item.gd | 2 +- source/item/item_resource.gd | 8 +-- source/item/item_sprites/Frankenstein.gd | 11 ++++ source/item/stats_and_item_handler.gd | 1 - source/scripts/Frankenstein.gd | 51 +++++++++++++++ source/scripts/Mage.gd | 81 ++++++++++++++++++++++++ source/scripts/player.gd | 48 ++++++++------ source/scripts/quit.gd | 2 +- 10 files changed, 184 insertions(+), 26 deletions(-) create mode 100644 source/item/item_sprites/Frankenstein.gd create mode 100644 source/scripts/Frankenstein.gd create mode 100644 source/scripts/Mage.gd diff --git a/project.godot b/project.godot index bba8654f..00e9fcf9 100644 --- a/project.godot +++ b/project.godot @@ -46,6 +46,10 @@ Down={ , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +Attack={ +"deadzone": 0.5, +"events": [] +} [layer_names] diff --git a/source/item/Stats.gd b/source/item/Stats.gd index f18d4d2a..e2411e6a 100644 --- a/source/item/Stats.gd +++ b/source/item/Stats.gd @@ -35,4 +35,4 @@ func copy() -> Stats : s.dashCooldown = dashCooldown s.abilityCooldown = abilityCooldown s.cost = cost - return s \ No newline at end of file + return s diff --git a/source/item/item.gd b/source/item/item.gd index c8c5387b..0b8101d7 100644 --- a/source/item/item.gd +++ b/source/item/item.gd @@ -5,4 +5,4 @@ class_name Item @export var item_res : Item_Res func get_stats() -> Stats : - return item_res.get_stats() \ No newline at end of file + return item_res.get_stats() diff --git a/source/item/item_resource.gd b/source/item/item_resource.gd index 426060e5..832187a8 100644 --- a/source/item/item_resource.gd +++ b/source/item/item_resource.gd @@ -2,10 +2,10 @@ extends Resource class_name Item_Res enum Rarity { - COMMON, - UNCOMMON, - RARE, - LEGENDARY + COMMON, + UNCOMMON, + RARE, + LEGENDARY } #Info diff --git a/source/item/item_sprites/Frankenstein.gd b/source/item/item_sprites/Frankenstein.gd new file mode 100644 index 00000000..fae2c760 --- /dev/null +++ b/source/item/item_sprites/Frankenstein.gd @@ -0,0 +1,11 @@ +extends Node + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass diff --git a/source/item/stats_and_item_handler.gd b/source/item/stats_and_item_handler.gd index e6f7ae02..69cae725 100644 --- a/source/item/stats_and_item_handler.gd +++ b/source/item/stats_and_item_handler.gd @@ -36,4 +36,3 @@ func handle_drop(item : Item, destroy : bool) : #(queue_free() is temporary, will change later when we know whats actually going to happen with the item) if destroy : item.queue_free() pass - diff --git a/source/scripts/Frankenstein.gd b/source/scripts/Frankenstein.gd new file mode 100644 index 00000000..92907034 --- /dev/null +++ b/source/scripts/Frankenstein.gd @@ -0,0 +1,51 @@ +extends Player + +const SPEED = 300.0 +const JUMP_VELOCITY = -400.0 +var can_attack = true +var attack_area : Area2D = Area2D.new() +var attack_area_size = 30 # should be changed depending on the size of the attack area we want +@onready var player := get_parent() + + +func _ready() -> void: + super() + create_attack_area() + +func create_attack_area(): + # Add the Area2D as a child of the player + player.add_child(attack_area) + attack_area.position = Vector2(0, 0) # Center the area on the player should be changed if the weapon is positiuoned + # Create a CollisionShape2D for the attack area + var collision_shape = CollisionShape2D.new() + var shape = CircleShape2D.new() #change shape as desired + shape.radius = attack_area_size + collision_shape.shape = shape + attack_area.add_child(collision_shape) + + # Connect signals for body entered/exited + attack_area.connect("body_entered", Callable(self, "_on_attack_area_body_entered")) + attack_area.connect("body_exited", Callable(self, "_on_attack_area_body_exited")) + +func _on_attack_area_body_entered(body): + if body is Player and body != self: + var damage = stats.attackDamage + body.apply_damage(damage) + print("Hit player: " + body.name + " for " + str(damage) + " damage!") + +func _on_attack_area_body_exited(body): + print(body.name + " left attack area") + +func attack(): + if can_attack: + var attack_cooldown = stats.attackSpeed + print("Frankenstein Smashes the Ground!") + play_attack_animation() + can_attack = false + await get_tree().create_timer(attack_cooldown).timeout + can_attack = true + +func play_attack_animation(): + $AnimationPlayer.play("frankenstein_attack") #implement animations for attacks +func die(): + $AnimationPlayer.play("frankenstein_attack") #implement animations for dying diff --git a/source/scripts/Mage.gd b/source/scripts/Mage.gd new file mode 100644 index 00000000..d79ef070 --- /dev/null +++ b/source/scripts/Mage.gd @@ -0,0 +1,81 @@ +extends Player + +const SPEED = 300.0 +const JUMP_VELOCITY = -400.0 +var projectile_speed = 500.0 # Speed of the projectile +var attack_cooldown = 1.0 # Cooldown between attacks +var can_attack = true +var life_time_projectile = 3.0 #how long projectile lasts until it despawns + +func _ready() -> void: + super() + +func attack(): + if can_attack: + var attack_direction = movement # Direction where the player is facing + spawn_projectile(attack_direction) + play_attack_animation() + can_attack = false + await get_tree().create_timer(attack_cooldown).timeout + can_attack = true + +# Function to spawn a projectile (Area2D) +func spawn_projectile(direction: Vector2): + # Create the projectile as an Area2D + var projectile = Area2D.new() + + # Set the position of the projectile at the player's position + projectile.position = global_position + + # Create a CollisionShape2D for the projectile + var collision_shape = CollisionShape2D.new() + var shape = CircleShape2D.new() # Adjust shape if needed + shape.radius = 10 # Size of the projectile + collision_shape.shape = shape + projectile.add_child(collision_shape) + + # Add the projectile to the scene as a child of the player + add_child(projectile) + + # Set the direction and speed + projectile.set_meta("direction", direction.normalized()) + projectile.set_meta("speed", projectile_speed) + + # Connect the body_entered signal to handle collisions + projectile.connect("body_entered", Callable(self, "_on_projectile_body_entered")) + + # Start a timer to remove the projectile after a few seconds + var timer = Timer.new() + timer.wait_time = life_time_projectile # Time in seconds before the projectile is removed + timer.one_shot = true + timer.connect("timeout", Callable(projectile, "queue_free")) + projectile.add_child(timer) # Add timer as a child to keep it in the scene tree + timer.start() + +# Update the position of the projectile every frame +func _physics_process(delta: float) -> void: + for child in get_children(): + if child is Area2D: # Check if the child is a projectile + var direction = child.get_meta("direction") + var speed = child.get_meta("speed") + child.position += direction * speed * delta + + +# Detect collisions +func _on_projectile_body_entered(body): + if body is Player and body != self: + # Apply damage or any other effect here + body.apply_damage(stats.attackDamage) + print("Hit player: " + body.name + " for " + str(stats.attackDamage) + " damage!") + + # Free the projectile after collision + body.queue_free() + +# Check if projectile goes out of bounds (optional) i removed this but might be useful +func is_out_of_bounds(proj: Area2D) -> bool: + var screen_size = get_viewport().get_visible_rect().size + return proj.position.x < 0 or proj.position.x > screen_size.x or proj.position.y < 0 or proj.position.y > screen_size.y + +# Play an attack animation +func play_attack_animation(): + $AnimationPlayer.play("mage_attack") diff --git a/source/scripts/player.gd b/source/scripts/player.gd index a079c472..f132b5f5 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -5,45 +5,57 @@ class_name Player var Speed := 0.0 var movement := Vector2.ZERO + const TOP_SPEED_FACTOR := 15.0 const ACCELERATION := 15.0 - +# Stats handling +@onready var stats_and_item_handler : Node2D = $StatsAndItemHandler +@export var base_stats : Item_Res +var stats : Stats = Stats.new() # Initialize the stats +var attack_area_player : Area2D = Area2D.new() func _ready() -> void: pass - func _process(delta) -> void: handle_move() - func handle_move() -> void: movement = Vector2(Input.get_axis("Left", "Right"), Input.get_axis("Up", "Down")).normalized() - if movement.length() : + if movement.length(): Speed = move_toward(Speed, stats.topSpeed * TOP_SPEED_FACTOR, ACCELERATION) - if movement.x : + if movement.x: velocity.x = movement.x * Speed - else : + else: velocity.x = move_toward(velocity.x, 0, ACCELERATION) - if movement.y : + if movement.y: velocity.y = movement.y * Speed - else : + else: velocity.y = move_toward(velocity.y, 0, ACCELERATION) move_and_slide() - -#### item and stats handling (everything else is implemented in the stats_and_item_handler) -@onready var stats_and_item_handler : Node2D = $StatsAndItemHandler -@export var base_stats : Item_Res -var stats : Stats = Stats.new() - -func pickup_item(item : Item) : +# Item and stats handling +func pickup_item(item : Item): stats_and_item_handler.handle_pickup(item) pass -func drop_item(item : Item, destroy : bool) : - #if destroy is false, you should be reparenting the item +func drop_item(item : Item, destroy : bool): stats_and_item_handler.handle_drop(item, destroy) - pass \ No newline at end of file + pass +# this code is an example, its not used +func apply_damage(damage): + #need to implement applying damage to other player + stats.health -= damage # Subtract the damage from the player's health + print("Player received " + str(damage) + " damage. Health: " + str(stats.health)) + + # Check if the player is dead + if stats.health <= 0: + die() # Call the die() function if health reaches zero or below + +# Handle the player's death +func die() -> void: + print("Player " + self.name + " has died. Needs to Be Overridden by child classes") + $AnimationPlayer.play("death") + queue_free() diff --git a/source/scripts/quit.gd b/source/scripts/quit.gd index af9cc95b..317dcd2d 100644 --- a/source/scripts/quit.gd +++ b/source/scripts/quit.gd @@ -2,4 +2,4 @@ extends Node func _process(delta): if Input.is_key_pressed(KEY_Q) : - get_tree().quit() \ No newline at end of file + get_tree().quit() From 45bb08d08b0959d52c82d56c05592e372af72b89 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Sat, 19 Oct 2024 14:11:52 -0400 Subject: [PATCH 036/110] Use a FlowContainer --- source/scenes/button_generator.gd | 2 +- source/scenes/item_selector.tscn | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/source/scenes/button_generator.gd b/source/scenes/button_generator.gd index 75968adb..f455f1d4 100644 --- a/source/scenes/button_generator.gd +++ b/source/scenes/button_generator.gd @@ -1,4 +1,4 @@ -extends HBoxContainer +extends FlowContainer const resourcePath = "res://source/item/item_resources" var buttonScene: PackedScene = preload("res://source/scenes/item_button.tscn") diff --git a/source/scenes/item_selector.tscn b/source/scenes/item_selector.tscn index b54c6308..26880c5d 100644 --- a/source/scenes/item_selector.tscn +++ b/source/scenes/item_selector.tscn @@ -1,9 +1,12 @@ -[gd_scene load_steps=3 format=3 uid="uid://dneing502fg0w"] +[gd_scene load_steps=4 format=3 uid="uid://dneing502fg0w"] [ext_resource type="Script" path="res://source/scenes/button_generator.gd" id="1_env2u"] [sub_resource type="CanvasTexture" id="CanvasTexture_wuym8"] +[sub_resource type="LabelSettings" id="LabelSettings_j1tjw"] +font_size = 32 + [node name="ItemSelector" type="Control"] layout_mode = 3 anchors_preset = 0 @@ -13,14 +16,14 @@ offset_bottom = 191.0 [node name="TextureRect" type="TextureRect" parent="."] modulate = Color(0.258824, 0.529412, 0.960784, 1) layout_mode = 0 -offset_right = 1148.0 -offset_bottom = 656.0 +offset_right = 983.0 +offset_bottom = 562.0 texture = SubResource("CanvasTexture_wuym8") [node name="MarginContainer" type="MarginContainer" parent="."] layout_mode = 0 -offset_right = 40.0 -offset_bottom = 40.0 +offset_right = 979.0 +offset_bottom = 559.0 theme_override_constants/margin_left = 20 theme_override_constants/margin_top = 20 theme_override_constants/margin_right = 20 @@ -29,6 +32,12 @@ theme_override_constants/margin_bottom = 20 [node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] layout_mode = 2 -[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +[node name="Label" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Item Selector" +label_settings = SubResource("LabelSettings_j1tjw") +horizontal_alignment = 1 + +[node name="FlowContainer" type="FlowContainer" parent="MarginContainer/VBoxContainer"] layout_mode = 2 script = ExtResource("1_env2u") From 472c935de7fa6b2b4a3b486a1c5a91fe836407bb Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Sat, 19 Oct 2024 14:21:38 -0400 Subject: [PATCH 037/110] Make menu scrollable --- source/scenes/item_selector.tscn | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/source/scenes/item_selector.tscn b/source/scenes/item_selector.tscn index 26880c5d..0f834af2 100644 --- a/source/scenes/item_selector.tscn +++ b/source/scenes/item_selector.tscn @@ -14,7 +14,7 @@ offset_right = 350.0 offset_bottom = 191.0 [node name="TextureRect" type="TextureRect" parent="."] -modulate = Color(0.258824, 0.529412, 0.960784, 1) +modulate = Color(0.258824, 0.529412, 0.960784, 0.470588) layout_mode = 0 offset_right = 983.0 offset_bottom = 562.0 @@ -38,6 +38,14 @@ text = "Item Selector" label_settings = SubResource("LabelSettings_j1tjw") horizontal_alignment = 1 -[node name="FlowContainer" type="FlowContainer" parent="MarginContainer/VBoxContainer"] +[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBoxContainer"] layout_mode = 2 +size_flags_vertical = 3 +follow_focus = true +horizontal_scroll_mode = 0 + +[node name="FlowContainer" type="FlowContainer" parent="MarginContainer/VBoxContainer/ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 script = ExtResource("1_env2u") From c87155f96a8ad8e4f32f3f4b3325e478ff254d6f Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Sat, 19 Oct 2024 14:55:15 -0400 Subject: [PATCH 038/110] Toggle Item Selector visibility --- project.godot | 5 +++++ source/scenes/item_button.gd | 22 +++++++++++++++++++--- source/scenes/item_selector.gd | 13 +++++++++++++ source/scenes/item_selector.tscn | 6 ++++-- 4 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 source/scenes/item_selector.gd diff --git a/project.godot b/project.godot index bba8654f..af73f531 100644 --- a/project.godot +++ b/project.godot @@ -46,6 +46,11 @@ Down={ , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +"Item Selector"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":73,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} [layer_names] diff --git a/source/scenes/item_button.gd b/source/scenes/item_button.gd index d41d5db4..109d1160 100644 --- a/source/scenes/item_button.gd +++ b/source/scenes/item_button.gd @@ -1,10 +1,11 @@ extends Button class_name Item_Button +var resource: Item_Res # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. + self.pressed.connect(self._button_pressed) # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -12,9 +13,24 @@ func _process(delta: float) -> void: pass func setItem(resource: Item_Res): + self.resource = resource set_text(resource.name) set_button_icon(resource.sprite) func _button_pressed(): - print("Hello world!") - + if (resource == null): + print("This button has no resource associated with it!") + return + var item: Item = Item.new() + item.item_res = resource + # This assumes the base scene scene has the player object - not sure of a better way to do this! + var baseScene = get_tree().current_scene + if (baseScene.name == "DemoRoom"): + var player: Player = baseScene.get_node("Player") + if (player == null): + print("I couldn't get the Player node!") + return + player.pickup_item(item) + print("Gave the player a " + item.item_res.name) + else: + print("The current scene is not DemoRoom, so I can't give you items.") diff --git a/source/scenes/item_selector.gd b/source/scenes/item_selector.gd new file mode 100644 index 00000000..4d81c3d4 --- /dev/null +++ b/source/scenes/item_selector.gd @@ -0,0 +1,13 @@ +extends Control + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + visible = false + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + if Input.is_action_just_pressed("Item Selector"): # should be Ctrl + I + if visible: visible = false + else: visible = true diff --git a/source/scenes/item_selector.tscn b/source/scenes/item_selector.tscn index 0f834af2..401ff58b 100644 --- a/source/scenes/item_selector.tscn +++ b/source/scenes/item_selector.tscn @@ -1,5 +1,6 @@ -[gd_scene load_steps=4 format=3 uid="uid://dneing502fg0w"] +[gd_scene load_steps=5 format=3 uid="uid://dneing502fg0w"] +[ext_resource type="Script" path="res://source/scenes/item_selector.gd" id="1_6rw5j"] [ext_resource type="Script" path="res://source/scenes/button_generator.gd" id="1_env2u"] [sub_resource type="CanvasTexture" id="CanvasTexture_wuym8"] @@ -12,6 +13,7 @@ layout_mode = 3 anchors_preset = 0 offset_right = 350.0 offset_bottom = 191.0 +script = ExtResource("1_6rw5j") [node name="TextureRect" type="TextureRect" parent="."] modulate = Color(0.258824, 0.529412, 0.960784, 0.470588) @@ -34,7 +36,7 @@ layout_mode = 2 [node name="Label" type="Label" parent="MarginContainer/VBoxContainer"] layout_mode = 2 -text = "Item Selector" +text = "Item Selector (Ctrl + I to exit)" label_settings = SubResource("LabelSettings_j1tjw") horizontal_alignment = 1 From fd09d1264dd88388aabd7f6201a5e2adc9127a23 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Sat, 19 Oct 2024 14:55:45 -0400 Subject: [PATCH 039/110] Add ItemSelector to demoRoom --- source/scenes/demo_room.tscn | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 81ed9a43..96dd8c4c 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=3 uid="uid://diprigu67ubnb"] +[gd_scene load_steps=4 format=3 uid="uid://diprigu67ubnb"] [ext_resource type="PackedScene" uid="uid://rgfnpcsvv534" path="res://source/scenes/player.tscn" id="1_uxgo6"] [ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] +[ext_resource type="PackedScene" uid="uid://dneing502fg0w" path="res://source/scenes/item_selector.tscn" id="3_n330r"] [node name="DemoRoom" type="Node2D"] @@ -16,3 +17,9 @@ color = Color(1, 0, 1, 1) [node name="quit" type="Node2D" parent="."] script = ExtResource("2_c3313") + +[node name="ItemSelector" parent="." instance=ExtResource("3_n330r")] +offset_left = -488.0 +offset_top = -281.0 +offset_right = -138.0 +offset_bottom = -90.0 From 0a1fa139c7107145b8b6267993fdf76198b23916 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Sat, 19 Oct 2024 14:58:00 -0400 Subject: [PATCH 040/110] Organization --- source/item/item_resource.gd | 8 ++++---- source/item/{ => item_resources}/test.png | Bin source/item/{ => item_resources}/test.png.import | 6 +++--- source/item/item_resources/test_item.tres | 2 +- source/scenes/demo_room.tscn | 2 +- .../scenes/{ => itemSelector}/button_generator.gd | 0 source/scenes/{ => itemSelector}/item_button.gd | 0 source/scenes/{ => itemSelector}/item_button.tscn | 2 +- source/scenes/{ => itemSelector}/item_selector.gd | 0 source/scenes/{ => itemSelector}/item_selector.tscn | 4 ++-- 10 files changed, 12 insertions(+), 12 deletions(-) rename source/item/{ => item_resources}/test.png (100%) rename source/item/{ => item_resources}/test.png.import (72%) rename source/scenes/{ => itemSelector}/button_generator.gd (100%) rename source/scenes/{ => itemSelector}/item_button.gd (100%) rename source/scenes/{ => itemSelector}/item_button.tscn (60%) rename source/scenes/{ => itemSelector}/item_selector.gd (100%) rename source/scenes/{ => itemSelector}/item_selector.tscn (88%) diff --git a/source/item/item_resource.gd b/source/item/item_resource.gd index 426060e5..832187a8 100644 --- a/source/item/item_resource.gd +++ b/source/item/item_resource.gd @@ -2,10 +2,10 @@ extends Resource class_name Item_Res enum Rarity { - COMMON, - UNCOMMON, - RARE, - LEGENDARY + COMMON, + UNCOMMON, + RARE, + LEGENDARY } #Info diff --git a/source/item/test.png b/source/item/item_resources/test.png similarity index 100% rename from source/item/test.png rename to source/item/item_resources/test.png diff --git a/source/item/test.png.import b/source/item/item_resources/test.png.import similarity index 72% rename from source/item/test.png.import rename to source/item/item_resources/test.png.import index 9b511978..08cf15ee 100644 --- a/source/item/test.png.import +++ b/source/item/item_resources/test.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bnvrku1kj1soe" -path="res://.godot/imported/test.png-660965e53821b1e40b6f2a332b5ad15d.ctex" +path="res://.godot/imported/test.png-e3f880dca7c409c89ee48538dfd20de0.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://source/item/test.png" -dest_files=["res://.godot/imported/test.png-660965e53821b1e40b6f2a332b5ad15d.ctex"] +source_file="res://source/item/item_resources/test.png" +dest_files=["res://.godot/imported/test.png-e3f880dca7c409c89ee48538dfd20de0.ctex"] [params] diff --git a/source/item/item_resources/test_item.tres b/source/item/item_resources/test_item.tres index 4a3bf3f6..1eb57d1b 100644 --- a/source/item/item_resources/test_item.tres +++ b/source/item/item_resources/test_item.tres @@ -1,7 +1,7 @@ [gd_resource type="Resource" script_class="Item_Res" load_steps=3 format=3 uid="uid://rrec8arslhxj"] [ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_80a0i"] -[ext_resource type="Texture2D" uid="uid://bnvrku1kj1soe" path="res://source/item/test.png" id="2_w0275"] +[ext_resource type="Texture2D" uid="uid://bnvrku1kj1soe" path="res://source/item/item_resources/test.png" id="2_w0275"] [resource] script = ExtResource("1_80a0i") diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 96dd8c4c..dea5d332 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -2,7 +2,7 @@ [ext_resource type="PackedScene" uid="uid://rgfnpcsvv534" path="res://source/scenes/player.tscn" id="1_uxgo6"] [ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] -[ext_resource type="PackedScene" uid="uid://dneing502fg0w" path="res://source/scenes/item_selector.tscn" id="3_n330r"] +[ext_resource type="PackedScene" uid="uid://dneing502fg0w" path="res://source/scenes/itemSelector/item_selector.tscn" id="3_n330r"] [node name="DemoRoom" type="Node2D"] diff --git a/source/scenes/button_generator.gd b/source/scenes/itemSelector/button_generator.gd similarity index 100% rename from source/scenes/button_generator.gd rename to source/scenes/itemSelector/button_generator.gd diff --git a/source/scenes/item_button.gd b/source/scenes/itemSelector/item_button.gd similarity index 100% rename from source/scenes/item_button.gd rename to source/scenes/itemSelector/item_button.gd diff --git a/source/scenes/item_button.tscn b/source/scenes/itemSelector/item_button.tscn similarity index 60% rename from source/scenes/item_button.tscn rename to source/scenes/itemSelector/item_button.tscn index d75edf29..e2961556 100644 --- a/source/scenes/item_button.tscn +++ b/source/scenes/itemSelector/item_button.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://bal5pfw8ipn81"] -[ext_resource type="Script" path="res://source/scenes/item_button.gd" id="1_pasov"] +[ext_resource type="Script" path="res://source/scenes/itemSelector/item_button.gd" id="1_pasov"] [node name="ItemButton" type="Button"] text = "test diff --git a/source/scenes/item_selector.gd b/source/scenes/itemSelector/item_selector.gd similarity index 100% rename from source/scenes/item_selector.gd rename to source/scenes/itemSelector/item_selector.gd diff --git a/source/scenes/item_selector.tscn b/source/scenes/itemSelector/item_selector.tscn similarity index 88% rename from source/scenes/item_selector.tscn rename to source/scenes/itemSelector/item_selector.tscn index 401ff58b..02e6241c 100644 --- a/source/scenes/item_selector.tscn +++ b/source/scenes/itemSelector/item_selector.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=5 format=3 uid="uid://dneing502fg0w"] -[ext_resource type="Script" path="res://source/scenes/item_selector.gd" id="1_6rw5j"] -[ext_resource type="Script" path="res://source/scenes/button_generator.gd" id="1_env2u"] +[ext_resource type="Script" path="res://source/scenes/itemSelector/item_selector.gd" id="1_6rw5j"] +[ext_resource type="Script" path="res://source/scenes/itemSelector/button_generator.gd" id="1_env2u"] [sub_resource type="CanvasTexture" id="CanvasTexture_wuym8"] From da987a83f485f7793802534e1d2841d720db8b3a Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Sat, 19 Oct 2024 15:03:24 -0400 Subject: [PATCH 041/110] Fix a filepath error --- source/scenes/itemSelector/button_generator.gd | 2 +- source/scenes/itemSelector/item_selector.tscn | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source/scenes/itemSelector/button_generator.gd b/source/scenes/itemSelector/button_generator.gd index f455f1d4..6ccc37bc 100644 --- a/source/scenes/itemSelector/button_generator.gd +++ b/source/scenes/itemSelector/button_generator.gd @@ -1,7 +1,7 @@ extends FlowContainer const resourcePath = "res://source/item/item_resources" -var buttonScene: PackedScene = preload("res://source/scenes/item_button.tscn") +var buttonScene: PackedScene = preload("res://source/scenes/itemSelector/item_button.tscn") # Called when the node enters the scene tree for the first time. func _ready() -> void: diff --git a/source/scenes/itemSelector/item_selector.tscn b/source/scenes/itemSelector/item_selector.tscn index 02e6241c..1f112a92 100644 --- a/source/scenes/itemSelector/item_selector.tscn +++ b/source/scenes/itemSelector/item_selector.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=5 format=3 uid="uid://dneing502fg0w"] -[ext_resource type="Script" path="res://source/scenes/itemSelector/item_selector.gd" id="1_6rw5j"] -[ext_resource type="Script" path="res://source/scenes/itemSelector/button_generator.gd" id="1_env2u"] +[ext_resource type="Script" path="res://source/scenes/itemSelector/item_selector.gd" id="1_v3sft"] +[ext_resource type="Script" path="res://source/scenes/itemSelector/button_generator.gd" id="2_6gj0v"] [sub_resource type="CanvasTexture" id="CanvasTexture_wuym8"] @@ -13,7 +13,7 @@ layout_mode = 3 anchors_preset = 0 offset_right = 350.0 offset_bottom = 191.0 -script = ExtResource("1_6rw5j") +script = ExtResource("1_v3sft") [node name="TextureRect" type="TextureRect" parent="."] modulate = Color(0.258824, 0.529412, 0.960784, 0.470588) @@ -50,4 +50,4 @@ horizontal_scroll_mode = 0 layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -script = ExtResource("1_env2u") +script = ExtResource("2_6gj0v") From b7fc521f9794339aca2e3717ce93b2abe0c7cb71 Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Sun, 20 Oct 2024 23:30:30 -0400 Subject: [PATCH 042/110] Added additional functions to the status effect system status effect stacking --- DamageBuffWhenLowHp.tres | 11 +++ HealthIncrease.tres | 11 +++ project.godot | 5 ++ source/item/item.gd | 2 +- source/item/item_resource.gd | 8 +-- source/scenes/ItemTestingScene.tscn | 5 +- source/scripts/Item_Advanced_Functions.gd | 19 ++++- source/scripts/Item_Test.gd | 1 + source/scripts/Player_Test.gd | 24 +++++-- source/scripts/StatusEffectManager.gd | 87 +++++++++++++++++------ source/scripts/player.gd | 2 +- 11 files changed, 135 insertions(+), 40 deletions(-) create mode 100644 DamageBuffWhenLowHp.tres create mode 100644 HealthIncrease.tres diff --git a/DamageBuffWhenLowHp.tres b/DamageBuffWhenLowHp.tres new file mode 100644 index 00000000..ed50b1aa --- /dev/null +++ b/DamageBuffWhenLowHp.tres @@ -0,0 +1,11 @@ +[gd_resource type="Resource" script_class="Item_Test" load_steps=2 format=3 uid="uid://bfaht58ucl5e2"] + +[ext_resource type="Script" path="res://source/scripts/Item_Test.gd" id="1_0o4wk"] + +[resource] +script = ExtResource("1_0o4wk") +damage = 0 +health = 0 +onStartFunctions = "" +onFireFunctions = "" +onGetHitFunctions = "damage_when_low_health" diff --git a/HealthIncrease.tres b/HealthIncrease.tres new file mode 100644 index 00000000..33bb258a --- /dev/null +++ b/HealthIncrease.tres @@ -0,0 +1,11 @@ +[gd_resource type="Resource" script_class="Item_Test" load_steps=2 format=3 uid="uid://dne8hlijjcu3q"] + +[ext_resource type="Script" path="res://source/scripts/Item_Test.gd" id="1_68lc7"] + +[resource] +script = ExtResource("1_68lc7") +damage = 0 +health = 5 +onStartFunctions = "" +onFireFunctions = "" +onGetHitFunctions = "" diff --git a/project.godot b/project.godot index 214088da..08e63e27 100644 --- a/project.godot +++ b/project.godot @@ -43,3 +43,8 @@ mouse_1={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":50,"key_label":0,"unicode":50,"location":0,"echo":false,"script":null) ] } +3={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":51,"key_label":0,"unicode":51,"location":0,"echo":false,"script":null) +] +} diff --git a/source/item/item.gd b/source/item/item.gd index c8c5387b..0b8101d7 100644 --- a/source/item/item.gd +++ b/source/item/item.gd @@ -5,4 +5,4 @@ class_name Item @export var item_res : Item_Res func get_stats() -> Stats : - return item_res.get_stats() \ No newline at end of file + return item_res.get_stats() diff --git a/source/item/item_resource.gd b/source/item/item_resource.gd index 426060e5..832187a8 100644 --- a/source/item/item_resource.gd +++ b/source/item/item_resource.gd @@ -2,10 +2,10 @@ extends Resource class_name Item_Res enum Rarity { - COMMON, - UNCOMMON, - RARE, - LEGENDARY + COMMON, + UNCOMMON, + RARE, + LEGENDARY } #Info diff --git a/source/scenes/ItemTestingScene.tscn b/source/scenes/ItemTestingScene.tscn index cc2f00c3..54ce9bd5 100644 --- a/source/scenes/ItemTestingScene.tscn +++ b/source/scenes/ItemTestingScene.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=6 format=3 uid="uid://csmmvcufjnsl2"] +[gd_scene load_steps=7 format=3 uid="uid://csmmvcufjnsl2"] [ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] [ext_resource type="Resource" uid="uid://6ukslotnk4y3" path="res://DmgBuffItem.tres" id="2_blmat"] [ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://DamageWhenOnFire.tres" id="3_h0kxt"] +[ext_resource type="Resource" uid="uid://bfaht58ucl5e2" path="res://DamageBuffWhenLowHp.tres" id="4_s3syo"] [ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] [sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] @@ -11,7 +12,7 @@ [node name="Player" type="Node2D" parent="."] script = ExtResource("1_rryau") -items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt")]) +items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt"), ExtResource("4_s3syo")]) [node name="Area2D" type="Area2D" parent="Player"] diff --git a/source/scripts/Item_Advanced_Functions.gd b/source/scripts/Item_Advanced_Functions.gd index 4d1416b1..d40e0a71 100644 --- a/source/scripts/Item_Advanced_Functions.gd +++ b/source/scripts/Item_Advanced_Functions.gd @@ -11,8 +11,7 @@ static func damage_increase_start(ps :Player_Test): ps.statusEffects.addStatusEndFunction("Damage Buff", (func(x : Player_Test): x.damage -= 1).bind(ps)) static func damage_increase(ps :Player_Test): - if(!ps.statusEffects.hasStatus("Damage Buff")): - ps.statusEffects.giveStatus("Damage Buff",3) + ps.statusEffects.giveStatusTimed("Damage Buff",3, StatusEffectManager.OverLapBehavior.REFRESH) static func shoot_additional_projectile(ps:Player_Test): print("let's pretend the player shot an additional projectile") @@ -20,3 +19,19 @@ static func shoot_additional_projectile(ps:Player_Test): static func damage_when_on_fire(ps : Player_Test): ps.statusEffects.addStatusStartFunction("Fire", func(): ps.damage += 10) ps.statusEffects.addStatusEndFunction("Fire", func(): ps.damage -= 10) + +static func damage_when_low_health(ps : Player_Test): + print("Im checking health") + if(ps.health / ps.maxHealth < .5): + if(!ps.statusEffects.hasStatus("Damage Buff 2")): + ps.statusEffects.giveStatus("Damage Buff 2") + else: + if(ps.statusEffects.hasStatus("Damage Buff 2")): + ps.statusEffects.removeStatus("Damage Buff 2") + +func fire_start(ps : Player_Test): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) +func fire_tick_end(ps : Player_Test): + ps.change_health(-2) + if(ps.statusEffects.hasStatus("Fire")): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) diff --git a/source/scripts/Item_Test.gd b/source/scripts/Item_Test.gd index e3ed64a3..c2c95086 100644 --- a/source/scripts/Item_Test.gd +++ b/source/scripts/Item_Test.gd @@ -6,6 +6,7 @@ extends Resource @export var health : int @export var onStartFunctions : String @export var onFireFunctions : String #Array[String] for multiple on fire functions +@export var onGetHitFunctions : String #Could exports strings of other events that have item functions #On hit, On take damage, On every frame diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index 1be4fc1b..fac72d7c 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -4,10 +4,11 @@ extends Node #this is just a test repleca of the player @export var items: Array[Resource] - +var maxHealth : int = 12 var damage :int = 0 -var health :int = 0 -signal onAttack(player) +var health :int = 12 +signal onAttack(player)#This signals will emit every attack +signal onGetHit(player)#This signal will emit every time the player gets hit #more signals to tell items when to trigger their effects @@ -18,7 +19,7 @@ var testToggle :bool = false # Called when the node enters the scene tree for the first time. func _ready() -> void: - statusEffects.setStartingStatusFunctions(self) + statusEffects.setStartingStatusFunctions(self)#i wana move this somewhere else # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -35,15 +36,19 @@ func manage_test_input(): if Input.is_action_just_pressed("2"): print("Gave Item " + str(items[1].resource_path)) get_item(items[1]) + if Input.is_action_just_pressed("3"): + print("Gave Item " + str(items[2].resource_path)) + get_item(items[2]) #press left mouse to "fire" if Input.is_action_just_pressed("mouse_0"): print("Just Fired") onAttack.emit(self) + #change_health(1) #press right mouse to check damage stat if Input.is_action_just_pressed("mouse_1"): testToggle = !testToggle if Input.is_action_just_pressed("ui_accept"): - statusEffects.giveStatus("Fire",3) + statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) func get_item(item : Item_Test): damage += item.damage @@ -52,13 +57,18 @@ func get_item(item : Item_Test): Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME if(item.onFireFunctions != ""): onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) + if(item.onGetHitFunctions != ""): + print("new on get hit function: " + item.onGetHitFunctions) + onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) func hit_object(ps: Player_Test): pass func change_health(deltaHealth : float): print("Player took " + str(-deltaHealth) + " damage") + health += deltaHealth + onGetHit.emit(self); + if(health < 0): + print("You died fool") #func give_status_effect(effect : StatusEffect, duration : float): #statusEffects.giveStatus(effect, duration) - -#this function can be moved basically anywhere diff --git a/source/scripts/StatusEffectManager.gd b/source/scripts/StatusEffectManager.gd index 7ca6a3d0..f2cb6db4 100644 --- a/source/scripts/StatusEffectManager.gd +++ b/source/scripts/StatusEffectManager.gd @@ -2,29 +2,59 @@ class_name StatusEffectManager extends Node var statuses : Array[String] -var statusFunctionsStart : Dictionary#[String,Array[Callable]] +var statusFunctionsStart : Dictionary#[String:Array[Callable]] var statusFunctionsEnd : Dictionary#[String,Array[Callable]] -var timers : Dictionary#[String,Timer] +var timers : Dictionary#[Timer, String] +#might need to be list of statuses for status effect stacking enum OverLapBehavior{ IGNORE, - REFRESH + REFRESH, + STACK } func setStartingStatusFunctions(ps : Player_Test): #Temperary. StatusEffect behavior should be stored elsewhere - addStatusStartFunction("Fire", Callable(self,"fire_start").bind(ps)) - addStatusEndFunction("FireTick", Callable(self,"fire_tick_end").bind(ps)) + addStatusStartFunction("Fire", Callable(ItemAdvancedFunctions,"fire_start").bind(ps)) + addStatusEndFunction("FireTick", Callable(ItemAdvancedFunctions,"fire_tick_end").bind(ps)) + addStatusStartFunction("Damage Buff 2", (func(x : Player_Test): x.damage += 3).bind(ps)) + addStatusEndFunction("Damage Buff 2", (func(x : Player_Test): x.damage -= 3).bind(ps)) -func giveStatus(status: String,duration : float) -> void: - statuses.append(status) +func giveStatus(status : String, overlapBehavior : OverLapBehavior = OverLapBehavior.IGNORE) -> void: if(statusFunctionsStart.has(status)): - #print(statusFunctionsStart[status]) - for c in statusFunctionsStart[status]: - #print(c) - c.call() - create_timer(status,duration) + call_start_functions(status) + if(hasStatus(status)): + match overlapBehavior: + OverLapBehavior.IGNORE: + pass + OverLapBehavior.REFRESH: + removeStatus(status) + statuses.append(status) + OverLapBehavior.STACK: + statuses.append(status) + else: + statuses.append(status) + + + + +func giveStatusTimed(status: String,duration : float, overlapBehavior : OverLapBehavior = OverLapBehavior.IGNORE) -> void: + if(hasStatus(status)): + match overlapBehavior: + OverLapBehavior.IGNORE: + pass + OverLapBehavior.REFRESH: + for t : Timer in timers: #for loop not looking good. maybe we can reorganize the timers + if(timers[t] == status): + remove_timer(t) + create_timer(status,duration) + OverLapBehavior.STACK: + giveStatus(status, overlapBehavior) + create_timer(status,duration) + else: + giveStatus(status, overlapBehavior) + create_timer(status,duration) func hasStatus(status: String) -> bool: return statuses.has(status) @@ -34,16 +64,26 @@ func create_timer(status : String, duration :float): add_child(timer) timer.wait_time = duration timer.one_shot = true + timers[timer] = status timer.start() timer.connect("timeout", Callable(self,"removeStatus").bind(status)) + timer.connect("timeout", Callable(self, "remove_timer").bind(timer)) + timer.connect("timeout", timer.queue_free) + +func remove_timer(timer : Timer): + if(timers.has(timer)): + timers.erase(timer) + timer.queue_free() + else: + print("tried to remove timer without a that doesnt exist in timers list") func removeStatus(status: String): - #print("removing", status) - if(statusFunctionsEnd.has(status)): - #print(statusFunctionsEnd[status]) - for c in statusFunctionsEnd[status]: - c.call() statuses.erase(status) + if(statusFunctionsEnd.has(status)): + call_end_functions(status) + + + func addStatusStartFunction(statusName : String, function : Callable): if(!statusFunctionsStart.has(statusName)): var newFunctions : Array[Callable] @@ -55,10 +95,11 @@ func addStatusEndFunction(statusName : String, function : Callable): statusFunctionsEnd[statusName] = newFunctions statusFunctionsEnd[statusName].append(function) +func call_start_functions(status : String) -> void: + for c in statusFunctionsStart[status]: + c.call() + +func call_end_functions(status : String) -> void: + for c in statusFunctionsEnd[status]: + c.call() -func fire_start(ps : Player_Test): - giveStatus("FireTick",0.5) -func fire_tick_end(ps : Player_Test): - ps.change_health(-2) - if(hasStatus("Fire")): - giveStatus("FireTick", 0.5) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index a079c472..658840ee 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -46,4 +46,4 @@ func pickup_item(item : Item) : func drop_item(item : Item, destroy : bool) : #if destroy is false, you should be reparenting the item stats_and_item_handler.handle_drop(item, destroy) - pass \ No newline at end of file + pass From 050d63b2970d4a3b8500144b6a1ad1d618e8996e Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Sun, 20 Oct 2024 23:47:48 -0400 Subject: [PATCH 043/110] Moved status effect initialization code from player to statusEffectManager --- source/scripts/Player_Test.gd | 3 --- source/scripts/StatusEffectManager.gd | 5 ++++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index fac72d7c..842c59f5 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -17,9 +17,6 @@ signal onGetHit(player)#This signal will emit every time the player gets hit #strictly for testing damage var testToggle :bool = false -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - statusEffects.setStartingStatusFunctions(self)#i wana move this somewhere else # Called every frame. 'delta' is the elapsed time since the previous frame. diff --git a/source/scripts/StatusEffectManager.gd b/source/scripts/StatusEffectManager.gd index f2cb6db4..8c2a370e 100644 --- a/source/scripts/StatusEffectManager.gd +++ b/source/scripts/StatusEffectManager.gd @@ -7,13 +7,16 @@ var statusFunctionsEnd : Dictionary#[String,Array[Callable]] var timers : Dictionary#[Timer, String] #might need to be list of statuses for status effect stacking - +@onready var player : Player_Test = get_parent() enum OverLapBehavior{ IGNORE, REFRESH, STACK } +func _ready() -> void: + setStartingStatusFunctions(player) + func setStartingStatusFunctions(ps : Player_Test): #Temperary. StatusEffect behavior should be stored elsewhere addStatusStartFunction("Fire", Callable(ItemAdvancedFunctions,"fire_start").bind(ps)) From acc90436f515accd82a4adb6cb4f47cc9a5461c9 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Sat, 26 Oct 2024 13:24:21 -0400 Subject: [PATCH 044/110] Add item selector portal --- source/scenes/itemSelector/item_selector.gd | 8 ++++++++ .../itemSelector/item_selector_portal.gd | 17 ++++++++++++++++ .../itemSelector/item_selector_portal.tscn | 20 +++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 source/scenes/itemSelector/item_selector_portal.gd create mode 100644 source/scenes/itemSelector/item_selector_portal.tscn diff --git a/source/scenes/itemSelector/item_selector.gd b/source/scenes/itemSelector/item_selector.gd index 4d81c3d4..718f4f45 100644 --- a/source/scenes/itemSelector/item_selector.gd +++ b/source/scenes/itemSelector/item_selector.gd @@ -1,5 +1,7 @@ extends Control +class Item_Selector +var player: Player # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -11,3 +13,9 @@ func _process(delta: float) -> void: if Input.is_action_just_pressed("Item Selector"): # should be Ctrl + I if visible: visible = false else: visible = true + +func setPlayer(entered: Player): + player = entered + +func getPlayer(): + return player diff --git a/source/scenes/itemSelector/item_selector_portal.gd b/source/scenes/itemSelector/item_selector_portal.gd new file mode 100644 index 00000000..03f2cc6c --- /dev/null +++ b/source/scenes/itemSelector/item_selector_portal.gd @@ -0,0 +1,17 @@ +extends Area2D + +var selectorScene: PackedScene = preload("res://source/scenes/itemSelector/item_selector.tscn") + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + +func _on_body_entered(body: Node2D) -> void: + if typeof(body) == typeof(Player): + var selector = selectorScene.instantiate() + get_tree().current_scene.add_child(selector) diff --git a/source/scenes/itemSelector/item_selector_portal.tscn b/source/scenes/itemSelector/item_selector_portal.tscn new file mode 100644 index 00000000..0a5569c9 --- /dev/null +++ b/source/scenes/itemSelector/item_selector_portal.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=3 uid="uid://bakpk65fsky20"] + +[ext_resource type="Script" path="res://source/scenes/itemSelector/item_selector_portal.gd" id="1_lskow"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_4fy8q"] +size = Vector2(40, 40) + +[node name="ItemSelectorPortal" type="Area2D"] +script = ExtResource("1_lskow") + +[node name="ColorRect" type="ColorRect" parent="."] +offset_right = 40.0 +offset_bottom = 40.0 +color = Color(1, 1, 0.352941, 1) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(20, 20) +shape = SubResource("RectangleShape2D_4fy8q") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] From 379769bf495139123a67a08332723d9de8939571 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Sat, 26 Oct 2024 13:27:55 -0400 Subject: [PATCH 045/110] Set demo room as main scene --- project.godot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.godot b/project.godot index 1be78e84..e51945c5 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Hallow's Thief" -run/main_scene="res://source/scenes/ItemTestingScene.tscn" +run/main_scene="res://source/scenes/demo_room.tscn" config/features=PackedStringArray("4.3", "Forward Plus") config/icon="res://icon.svg" From e567dd6f5fc3869f8faeef114d6b1c289afbcb80 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Sat, 26 Oct 2024 13:31:04 -0400 Subject: [PATCH 046/110] should be class_name --- source/scenes/itemSelector/item_selector.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/scenes/itemSelector/item_selector.gd b/source/scenes/itemSelector/item_selector.gd index 718f4f45..ba32d13f 100644 --- a/source/scenes/itemSelector/item_selector.gd +++ b/source/scenes/itemSelector/item_selector.gd @@ -1,5 +1,5 @@ extends Control -class Item_Selector +class_name Item_Selector var player: Player From 0508b30b551f46c8fa241e63185b8f3a2b34b495 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Sat, 26 Oct 2024 14:05:34 -0400 Subject: [PATCH 047/110] Change itemselector to only open when players stand in its portal --- source/scenes/demo_room.tscn | 16 +++------- .../scenes/itemSelector/button_generator.gd | 32 ------------------- source/scenes/itemSelector/item_button.gd | 9 ++++-- source/scenes/itemSelector/item_selector.gd | 30 ++++++++++++++--- source/scenes/itemSelector/item_selector.tscn | 10 +++--- .../itemSelector/item_selector_portal.gd | 16 ++++++++-- .../itemSelector/item_selector_portal.tscn | 1 + 7 files changed, 56 insertions(+), 58 deletions(-) delete mode 100644 source/scenes/itemSelector/button_generator.gd diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 1e584608..293ba43e 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -1,10 +1,9 @@ -[gd_scene load_steps=4 format=3 uid="uid://diprigu67ubnb"] +[gd_scene load_steps=5 format=3 uid="uid://diprigu67ubnb"] [ext_resource type="PackedScene" uid="uid://rgfnpcsvv534" path="res://source/scenes/player.tscn" id="1_uxgo6"] [ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] - [ext_resource type="PackedScene" uid="uid://b55salwd6xeoq" path="res://source/scenes/settings.tscn" id="3_c83ju"] -[ext_resource type="PackedScene" uid="uid://dneing502fg0w" path="res://source/scenes/itemSelector/item_selector.tscn" id="3_n330r"] +[ext_resource type="PackedScene" uid="uid://bakpk65fsky20" path="res://source/scenes/itemSelector/item_selector_portal.tscn" id="4_nji7u"] [node name="DemoRoom" type="Node2D"] @@ -29,6 +28,9 @@ metadata/player_num = 4 [node name="Camera2D" type="Camera2D" parent="."] +[node name="ItemSelectorPortal" parent="." instance=ExtResource("4_nji7u")] +position = Vector2(86, -110) + [node name="ColorRect" type="ColorRect" parent="."] offset_right = 40.0 offset_bottom = 40.0 @@ -37,17 +39,9 @@ color = Color(1, 0, 1, 1) [node name="quit" type="Node2D" parent="."] script = ExtResource("2_c3313") - [node name="Settings" parent="." instance=ExtResource("3_c83ju")] visible = false offset_left = -508.0 offset_top = -258.0 offset_right = 516.0 offset_bottom = 254.0 - -[node name="ItemSelector" parent="." instance=ExtResource("3_n330r")] -offset_left = -488.0 -offset_top = -281.0 -offset_right = -138.0 -offset_bottom = -90.0 - diff --git a/source/scenes/itemSelector/button_generator.gd b/source/scenes/itemSelector/button_generator.gd deleted file mode 100644 index 6ccc37bc..00000000 --- a/source/scenes/itemSelector/button_generator.gd +++ /dev/null @@ -1,32 +0,0 @@ -extends FlowContainer - -const resourcePath = "res://source/item/item_resources" -var buttonScene: PackedScene = preload("res://source/scenes/itemSelector/item_button.tscn") - -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - var dir = DirAccess.open(resourcePath) - if dir: - dir.list_dir_begin() - var file_name = dir.get_next() - while file_name != "": - if not dir.current_is_dir(): - if file_name.ends_with(".tres"): - addButton(file_name) - file_name = dir.get_next() - else: - print("An error occurred when trying to access the path.") - - - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - pass - -func addButton(file_name: String): - # We'll just assume it's a resource of the correct type for now - var resource: Item_Res = load(resourcePath + "/" + file_name) - var button: Item_Button = buttonScene.instantiate() - add_child(button) - button.setItem(resource) diff --git a/source/scenes/itemSelector/item_button.gd b/source/scenes/itemSelector/item_button.gd index 109d1160..f38ec729 100644 --- a/source/scenes/itemSelector/item_button.gd +++ b/source/scenes/itemSelector/item_button.gd @@ -2,6 +2,7 @@ extends Button class_name Item_Button var resource: Item_Res +var player: Player # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -17,20 +18,22 @@ func setItem(resource: Item_Res): set_text(resource.name) set_button_icon(resource.sprite) +func setPlayer(p: Player): + player = p + func _button_pressed(): if (resource == null): print("This button has no resource associated with it!") return var item: Item = Item.new() item.item_res = resource - # This assumes the base scene scene has the player object - not sure of a better way to do this! + var baseScene = get_tree().current_scene if (baseScene.name == "DemoRoom"): - var player: Player = baseScene.get_node("Player") if (player == null): print("I couldn't get the Player node!") return player.pickup_item(item) - print("Gave the player a " + item.item_res.name) + print("Gave " + player.name + " a " + item.item_res.name) else: print("The current scene is not DemoRoom, so I can't give you items.") diff --git a/source/scenes/itemSelector/item_selector.gd b/source/scenes/itemSelector/item_selector.gd index ba32d13f..b36dbb8f 100644 --- a/source/scenes/itemSelector/item_selector.gd +++ b/source/scenes/itemSelector/item_selector.gd @@ -1,21 +1,43 @@ extends Control class_name Item_Selector +const resourcePath = "res://source/item/item_resources" +var buttonScene: PackedScene = preload("res://source/scenes/itemSelector/item_button.tscn") var player: Player +@onready var container: FlowContainer = $MarginContainer/VBoxContainer/ScrollContainer/FlowContainer +@onready var label: Label = $MarginContainer/VBoxContainer/Label # Called when the node enters the scene tree for the first time. func _ready() -> void: - visible = false + visible = true + var dir = DirAccess.open(resourcePath) + if dir: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if not dir.current_is_dir(): + if file_name.ends_with(".tres"): + addButton(file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + label.text = "Item Selector (" + player.name + ")" # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: - if Input.is_action_just_pressed("Item Selector"): # should be Ctrl + I - if visible: visible = false - else: visible = true + pass func setPlayer(entered: Player): player = entered func getPlayer(): return player + +func addButton(file_name: String): + # We'll just assume it's a resource of the correct type for now + var resource: Item_Res = load(resourcePath + "/" + file_name) + var button: Item_Button = buttonScene.instantiate() + container.add_child(button) + button.setItem(resource) + button.setPlayer(player) diff --git a/source/scenes/itemSelector/item_selector.tscn b/source/scenes/itemSelector/item_selector.tscn index 1f112a92..d2c37154 100644 --- a/source/scenes/itemSelector/item_selector.tscn +++ b/source/scenes/itemSelector/item_selector.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=5 format=3 uid="uid://dneing502fg0w"] +[gd_scene load_steps=4 format=3 uid="uid://dneing502fg0w"] [ext_resource type="Script" path="res://source/scenes/itemSelector/item_selector.gd" id="1_v3sft"] -[ext_resource type="Script" path="res://source/scenes/itemSelector/button_generator.gd" id="2_6gj0v"] [sub_resource type="CanvasTexture" id="CanvasTexture_wuym8"] @@ -11,8 +10,10 @@ font_size = 32 [node name="ItemSelector" type="Control"] layout_mode = 3 anchors_preset = 0 -offset_right = 350.0 -offset_bottom = 191.0 +offset_left = -495.0 +offset_top = -267.0 +offset_right = -145.0 +offset_bottom = -76.0 script = ExtResource("1_v3sft") [node name="TextureRect" type="TextureRect" parent="."] @@ -50,4 +51,3 @@ horizontal_scroll_mode = 0 layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -script = ExtResource("2_6gj0v") diff --git a/source/scenes/itemSelector/item_selector_portal.gd b/source/scenes/itemSelector/item_selector_portal.gd index 03f2cc6c..e354b7ff 100644 --- a/source/scenes/itemSelector/item_selector_portal.gd +++ b/source/scenes/itemSelector/item_selector_portal.gd @@ -1,6 +1,7 @@ extends Area2D var selectorScene: PackedScene = preload("res://source/scenes/itemSelector/item_selector.tscn") +static var singleSelector: Item_Selector = null # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -12,6 +13,15 @@ func _process(delta: float) -> void: pass func _on_body_entered(body: Node2D) -> void: - if typeof(body) == typeof(Player): - var selector = selectorScene.instantiate() - get_tree().current_scene.add_child(selector) + if singleSelector != null: return + if body is Player: + singleSelector = selectorScene.instantiate() + singleSelector.setPlayer(body) + get_tree().current_scene.add_child(singleSelector) + + +func _on_body_exited(body: Node2D) -> void: + if singleSelector == null: return + if body is Player and body == singleSelector.getPlayer(): + singleSelector.free() + singleSelector = null diff --git a/source/scenes/itemSelector/item_selector_portal.tscn b/source/scenes/itemSelector/item_selector_portal.tscn index 0a5569c9..41545aed 100644 --- a/source/scenes/itemSelector/item_selector_portal.tscn +++ b/source/scenes/itemSelector/item_selector_portal.tscn @@ -18,3 +18,4 @@ position = Vector2(20, 20) shape = SubResource("RectangleShape2D_4fy8q") [connection signal="body_entered" from="." to="." method="_on_body_entered"] +[connection signal="body_exited" from="." to="." method="_on_body_exited"] From 5ca5c8c156289cfcf39e04c9bed814f2a56e0e0c Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 26 Oct 2024 15:40:20 -0400 Subject: [PATCH 048/110] small change --- source/scripts/input_button.gd | 7 ++++--- source/scripts/input_controls.gd | 11 +++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/source/scripts/input_button.gd b/source/scripts/input_button.gd index dbce9d78..a048c0da 100644 --- a/source/scripts/input_button.gd +++ b/source/scripts/input_button.gd @@ -22,14 +22,16 @@ func _ready() -> void: InputMap.action_erase_events(action) - if input_type == "Keyboard": InputMap.action_add_event(action, inputK) + if input_type == "Keyboard": + if inputK: InputMap.action_add_event(action, inputK) else: InputMap.action_add_event(action, inputJ) func _process(delta) -> void: var cur_input_type = get_parent().get_parent().get_meta("input_type") if cur_input_type != input_type: InputMap.action_erase_events(action) - if cur_input_type == "Keyboard": InputMap.action_add_event(action, inputK) + if cur_input_type == "Keyboard": + if inputK: InputMap.action_add_event(action, inputK) else: InputMap.action_add_event(action, inputJ) input_type = cur_input_type @@ -58,4 +60,3 @@ func _input(event): InputMap.action_add_event(action, event) if input_type == "Keyboard": inputK = event else: inputJ = event - waiting = false diff --git a/source/scripts/input_controls.gd b/source/scripts/input_controls.gd index 22ff0392..33f12e8a 100644 --- a/source/scripts/input_controls.gd +++ b/source/scripts/input_controls.gd @@ -16,16 +16,15 @@ func _process(delta) -> void: for node in $VBoxContainer.get_children(): if node.has_meta("input_name"): - var inputsArray = InputMap.action_get_events(node.get_meta("input_name") + str(player_num)) - if len(inputsArray) > 0: - var input = InputMap.action_get_events(node.get_meta("input_name") + str(player_num))[0] - if input is InputEventJoypadButton || input is InputEventJoypadMotion: - input.set_device(get_meta("device_id")) + var inputs = InputMap.action_get_events(node.get_meta("input_name") + str(player_num)) + if len(inputs) > 0: + if inputs[0] is InputEventJoypadButton || inputs[0] is InputEventJoypadMotion: + inputs[0].set_device(get_meta("device_id")) func _on_button_pressed() -> void: if input_type == "Keyboard": set_meta("input_type", "Controller") set_meta("device_id", 4) - else: + else: set_meta("input_type", "Keyboard") set_meta("device_id", -1) From e36d67afdf3596c65ab63ec2dba1f8d7cb5ae11a Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 26 Oct 2024 15:46:26 -0400 Subject: [PATCH 049/110] Update input_button.gd --- source/scripts/input_button.gd | 1 + 1 file changed, 1 insertion(+) diff --git a/source/scripts/input_button.gd b/source/scripts/input_button.gd index a048c0da..7c4afe73 100644 --- a/source/scripts/input_button.gd +++ b/source/scripts/input_button.gd @@ -60,3 +60,4 @@ func _input(event): InputMap.action_add_event(action, event) if input_type == "Keyboard": inputK = event else: inputJ = event + waiting = false From 4e76c3d9f09b770ec3072810c359b30e5a173cd4 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 26 Oct 2024 19:37:51 -0400 Subject: [PATCH 050/110] deviceID swapping upon controller disconnection --- source/scripts/settings.gd | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/source/scripts/settings.gd b/source/scripts/settings.gd index b51def28..fff31599 100644 --- a/source/scripts/settings.gd +++ b/source/scripts/settings.gd @@ -3,10 +3,14 @@ extends Control @onready var vbox = $TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer var deviceIDs = [] +var old_joypads = [] func _ready(): for node in vbox.get_children(): if node.has_meta("player_num"): deviceIDs.append(node.get_meta("device_id")) + + for joy in Input.get_connected_joypads(): + old_joypads.append(Input.get_joy_guid(joy)) func _process(delta): if Input.is_action_just_pressed("esc"): @@ -23,6 +27,21 @@ func _process(delta): deviceIDs[deviceIDs.find(4)] = i break + var cur_joypads = [] + for joy in Input.get_connected_joypads(): + cur_joypads.append(Input.get_joy_guid(joy)) + + if cur_joypads != old_joypads: + for guid in old_joypads: + if !(guid in cur_joypads): + for i in range(4): + if !(deviceIDs[i] in [-1,4]) && i > old_joypads.find(guid): deviceIDs[i] -= 1 + deviceIDs[old_joypads.find(guid)] = 4 + + old_joypads = [] + for joy in Input.get_connected_joypads(): + old_joypads.append(Input.get_joy_guid(joy)) + for node in vbox.get_children(): if node.has_meta("player_num"): node.set_meta("device_id", deviceIDs[node.get_meta("player_num") - 1]) From cbaa59683cd4ad17cd57464686c3cb5ea5e7765f Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Thu, 31 Oct 2024 19:49:07 -0400 Subject: [PATCH 051/110] Finalized the Item system Added the item system stored under Item_Finals folder. Added all the common items --- project.godot | 2 +- .../Item_Resources/BakingSoda.tres | 21 ++++++++ .../Item_Resources/BaseballBat.tres | 21 ++++++++ .../Item_Resources/BaseballCap.tres | 19 +++++++ .../Item_Resources/BoxingGloves.tres | 21 ++++++++ .../Items_Final/Item_Resources/OvenMitts.tres | 21 ++++++++ .../Items_Final/Item_Resources/Plunger.tres | 21 ++++++++ .../Items_Final/Item_Resources/RainBoots.tres | 21 ++++++++ .../Item_Resources/SafetyScissors.tres | 21 ++++++++ .../Item_Resources/ToiletPaper.tres | 21 ++++++++ .../Item_Resources/TrenchCoat.tres | 21 ++++++++ source/Items_Final/Item_Resources/Yo-Yo.tres | 21 ++++++++ .../Items_Final/Item_Resources/newItem.tres | 3 ++ source/Items_Final/Item_Scripts/Item.gd | 42 +++++++++++++++ .../Item_Scripts/Item_Functions.gd | 9 ++++ .../Item_Scripts/Status_Effect_Manager.gd} | 4 +- .../Item_Sprites/Plunger pixel art.png | Bin 0 -> 243 bytes .../Item_Sprites/Plunger pixel art.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/Stick Sprite.png | Bin 0 -> 344 bytes .../Item_Sprites/Stick Sprite.png.import | 34 ++++++++++++ .../Item_Sprites/Top hat pixel art.png | Bin 0 -> 301 bytes .../Item_Sprites/Top hat pixel art.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/bakingsoda.png | Bin 0 -> 849 bytes .../Item_Sprites/bakingsoda.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/baseballbat.png | Bin 0 -> 625 bytes .../Item_Sprites/baseballbat.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/baseballcap.png | Bin 0 -> 642 bytes .../Item_Sprites/baseballcap.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/boxinggloves.png | Bin 0 -> 624 bytes .../Item_Sprites/boxinggloves.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/bubblegum.png | Bin 0 -> 812 bytes .../Item_Sprites/bubblegum.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/candycane.png | Bin 0 -> 472 bytes .../Item_Sprites/candycane.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/fryingpan.png | Bin 0 -> 508 bytes .../Item_Sprites/fryingpan.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/hose.png | Bin 0 -> 648 bytes .../Items_Final/Item_Sprites/hose.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/juicebox.png | Bin 0 -> 619 bytes .../Item_Sprites/juicebox.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/magic8ball.png | Bin 0 -> 451 bytes .../Item_Sprites/magic8ball.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/marbles.png | Bin 0 -> 988 bytes .../Item_Sprites/marbles.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/mop.png | Bin 0 -> 562 bytes .../Items_Final/Item_Sprites/mop.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/ovenmitts.png | Bin 0 -> 748 bytes .../Item_Sprites/ovenmitts.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/piratehat.png | Bin 0 -> 449 bytes .../Item_Sprites/piratehat.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/pocketwatch.png | Bin 0 -> 681 bytes .../Item_Sprites/pocketwatch.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/propellerhat.png | Bin 0 -> 751 bytes .../Item_Sprites/propellerhat.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/puzzlecube.png | Bin 0 -> 737 bytes .../Item_Sprites/puzzlecube.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/rainboots.png | Bin 0 -> 500 bytes .../Item_Sprites/rainboots.png.import | 34 ++++++++++++ .../Item_Sprites/rainbowlollipop.png | Bin 0 -> 819 bytes .../Item_Sprites/rainbowlollipop.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/rake.png | Bin 0 -> 527 bytes .../Items_Final/Item_Sprites/rake.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/rubberduck.png | Bin 0 -> 613 bytes .../Item_Sprites/rubberduck.png.import | 34 ++++++++++++ .../Item_Sprites/safetyscissors.png | Bin 0 -> 757 bytes .../Item_Sprites/safetyscissors.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/soap.png | Bin 0 -> 880 bytes .../Items_Final/Item_Sprites/soap.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/soda.png | Bin 0 -> 631 bytes .../Items_Final/Item_Sprites/soda.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/spatula.png | Bin 0 -> 555 bytes .../Item_Sprites/spatula.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/spraypaint.png | Bin 0 -> 527 bytes .../Item_Sprites/spraypaint.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/toiletpaper.png | Bin 0 -> 830 bytes .../Item_Sprites/toiletpaper.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/toothbrush.png | Bin 0 -> 447 bytes .../Item_Sprites/toothbrush.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/toyraygun.png | Bin 0 -> 788 bytes .../Item_Sprites/toyraygun.png.import | 34 ++++++++++++ .../Items_Final/Item_Sprites/trenchcoat.png | Bin 0 -> 794 bytes .../Item_Sprites/trenchcoat.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/trowel.png | Bin 0 -> 596 bytes .../Item_Sprites/trowel.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/winterhat.png | Bin 0 -> 627 bytes .../Item_Sprites/winterhat.png.import | 34 ++++++++++++ source/Items_Final/Item_Sprites/yoyo.png | Bin 0 -> 638 bytes .../Items_Final/Item_Sprites/yoyo.png.import | 34 ++++++++++++ source/item/stats_and_item_handler.gd | 1 - source/scenes/IteE421.tmp | 19 +++++++ source/scenes/IteEC4C.tmp | 19 +++++++ source/scenes/ItemTestingScene.tscn | 10 ++-- source/scripts/Item_Advanced_Functions.gd | 3 ++ source/scripts/Item_Test.gd | 4 +- source/scripts/Player_Test.gd | 49 +++++++++++++----- source/scripts/StatusEffect.gd | 0 96 files changed, 1593 insertions(+), 25 deletions(-) create mode 100644 source/Items_Final/Item_Resources/BakingSoda.tres create mode 100644 source/Items_Final/Item_Resources/BaseballBat.tres create mode 100644 source/Items_Final/Item_Resources/BaseballCap.tres create mode 100644 source/Items_Final/Item_Resources/BoxingGloves.tres create mode 100644 source/Items_Final/Item_Resources/OvenMitts.tres create mode 100644 source/Items_Final/Item_Resources/Plunger.tres create mode 100644 source/Items_Final/Item_Resources/RainBoots.tres create mode 100644 source/Items_Final/Item_Resources/SafetyScissors.tres create mode 100644 source/Items_Final/Item_Resources/ToiletPaper.tres create mode 100644 source/Items_Final/Item_Resources/TrenchCoat.tres create mode 100644 source/Items_Final/Item_Resources/Yo-Yo.tres create mode 100644 source/Items_Final/Item_Resources/newItem.tres create mode 100644 source/Items_Final/Item_Scripts/Item.gd create mode 100644 source/Items_Final/Item_Scripts/Item_Functions.gd rename source/{scripts/StatusEffectManager.gd => Items_Final/Item_Scripts/Status_Effect_Manager.gd} (94%) create mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png create mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png.import create mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png create mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png.import create mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png create mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png.import create mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png create mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png.import create mode 100644 source/Items_Final/Item_Sprites/baseballbat.png create mode 100644 source/Items_Final/Item_Sprites/baseballbat.png.import create mode 100644 source/Items_Final/Item_Sprites/baseballcap.png create mode 100644 source/Items_Final/Item_Sprites/baseballcap.png.import create mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png create mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png.import create mode 100644 source/Items_Final/Item_Sprites/bubblegum.png create mode 100644 source/Items_Final/Item_Sprites/bubblegum.png.import create mode 100644 source/Items_Final/Item_Sprites/candycane.png create mode 100644 source/Items_Final/Item_Sprites/candycane.png.import create mode 100644 source/Items_Final/Item_Sprites/fryingpan.png create mode 100644 source/Items_Final/Item_Sprites/fryingpan.png.import create mode 100644 source/Items_Final/Item_Sprites/hose.png create mode 100644 source/Items_Final/Item_Sprites/hose.png.import create mode 100644 source/Items_Final/Item_Sprites/juicebox.png create mode 100644 source/Items_Final/Item_Sprites/juicebox.png.import create mode 100644 source/Items_Final/Item_Sprites/magic8ball.png create mode 100644 source/Items_Final/Item_Sprites/magic8ball.png.import create mode 100644 source/Items_Final/Item_Sprites/marbles.png create mode 100644 source/Items_Final/Item_Sprites/marbles.png.import create mode 100644 source/Items_Final/Item_Sprites/mop.png create mode 100644 source/Items_Final/Item_Sprites/mop.png.import create mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png create mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png.import create mode 100644 source/Items_Final/Item_Sprites/piratehat.png create mode 100644 source/Items_Final/Item_Sprites/piratehat.png.import create mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png create mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png.import create mode 100644 source/Items_Final/Item_Sprites/propellerhat.png create mode 100644 source/Items_Final/Item_Sprites/propellerhat.png.import create mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png create mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png.import create mode 100644 source/Items_Final/Item_Sprites/rainboots.png create mode 100644 source/Items_Final/Item_Sprites/rainboots.png.import create mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png create mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png.import create mode 100644 source/Items_Final/Item_Sprites/rake.png create mode 100644 source/Items_Final/Item_Sprites/rake.png.import create mode 100644 source/Items_Final/Item_Sprites/rubberduck.png create mode 100644 source/Items_Final/Item_Sprites/rubberduck.png.import create mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png create mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png.import create mode 100644 source/Items_Final/Item_Sprites/soap.png create mode 100644 source/Items_Final/Item_Sprites/soap.png.import create mode 100644 source/Items_Final/Item_Sprites/soda.png create mode 100644 source/Items_Final/Item_Sprites/soda.png.import create mode 100644 source/Items_Final/Item_Sprites/spatula.png create mode 100644 source/Items_Final/Item_Sprites/spatula.png.import create mode 100644 source/Items_Final/Item_Sprites/spraypaint.png create mode 100644 source/Items_Final/Item_Sprites/spraypaint.png.import create mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png create mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png.import create mode 100644 source/Items_Final/Item_Sprites/toothbrush.png create mode 100644 source/Items_Final/Item_Sprites/toothbrush.png.import create mode 100644 source/Items_Final/Item_Sprites/toyraygun.png create mode 100644 source/Items_Final/Item_Sprites/toyraygun.png.import create mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png create mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png.import create mode 100644 source/Items_Final/Item_Sprites/trowel.png create mode 100644 source/Items_Final/Item_Sprites/trowel.png.import create mode 100644 source/Items_Final/Item_Sprites/winterhat.png create mode 100644 source/Items_Final/Item_Sprites/winterhat.png.import create mode 100644 source/Items_Final/Item_Sprites/yoyo.png create mode 100644 source/Items_Final/Item_Sprites/yoyo.png.import create mode 100644 source/scenes/IteE421.tmp create mode 100644 source/scenes/IteEC4C.tmp delete mode 100644 source/scripts/StatusEffect.gd diff --git a/project.godot b/project.godot index 1be78e84..e2d88725 100644 --- a/project.godot +++ b/project.godot @@ -19,7 +19,7 @@ config/icon="res://icon.svg" window/size/mode=2 window/stretch/mode="canvas_items" -ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" +ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" [input] diff --git a/source/Items_Final/Item_Resources/BakingSoda.tres b/source/Items_Final/Item_Resources/BakingSoda.tres new file mode 100644 index 00000000..0d987ea0 --- /dev/null +++ b/source/Items_Final/Item_Resources/BakingSoda.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://bbebjdnx0jnqm"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_powpt"] +[ext_resource type="Texture2D" uid="uid://b7rs3tdjkmife" path="res://source/Items_Final/Item_Sprites/bakingsoda.png" id="2_pi18r"] + +[resource] +script = ExtResource("1_powpt") +sprite = ExtResource("2_pi18r") +name = "Baking Soda" +description = "Increases Speed" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 2.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballBat.tres b/source/Items_Final/Item_Resources/BaseballBat.tres new file mode 100644 index 00000000..9a25dccf --- /dev/null +++ b/source/Items_Final/Item_Resources/BaseballBat.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://chya8oc2ch8i5"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_gvtxx"] +[ext_resource type="Texture2D" uid="uid://n8kc5ecpojp0" path="res://source/Items_Final/Item_Sprites/baseballbat.png" id="2_1p0jc"] + +[resource] +script = ExtResource("1_gvtxx") +sprite = ExtResource("2_1p0jc") +name = "Baseball Bat" +description = "Increases Damage" +rarity = 0 +cost = 0 +attackDamage = 2.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballCap.tres b/source/Items_Final/Item_Resources/BaseballCap.tres new file mode 100644 index 00000000..27bb6478 --- /dev/null +++ b/source/Items_Final/Item_Resources/BaseballCap.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Item" load_steps=2 format=3 uid="uid://dxuc2aj1us8i2"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_2ncem"] + +[resource] +script = ExtResource("1_2ncem") +name = "Baseball cap" +description = "Slightly increases health and decreases cooldown" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 0.0 +cooldownReduction = 1.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BoxingGloves.tres b/source/Items_Final/Item_Resources/BoxingGloves.tres new file mode 100644 index 00000000..d355c9d7 --- /dev/null +++ b/source/Items_Final/Item_Resources/BoxingGloves.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://1lo3qihmupbe"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_dphqa"] +[ext_resource type="Texture2D" uid="uid://bxu2g1kcx6k20" path="res://source/Items_Final/Item_Sprites/boxinggloves.png" id="2_ky0rr"] + +[resource] +script = ExtResource("1_dphqa") +sprite = ExtResource("2_ky0rr") +name = "Boxing Gloves" +description = "Slightly increases attack and health" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/OvenMitts.tres b/source/Items_Final/Item_Resources/OvenMitts.tres new file mode 100644 index 00000000..a74d5a92 --- /dev/null +++ b/source/Items_Final/Item_Resources/OvenMitts.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://21ntxjjt6dfa"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_ombo1"] +[ext_resource type="Texture2D" uid="uid://b781y2yilgedy" path="res://source/Items_Final/Item_Sprites/ovenmitts.png" id="2_f8fv4"] + +[resource] +script = ExtResource("1_ombo1") +sprite = ExtResource("2_f8fv4") +name = "Oven Mitts" +description = "Slightly increases tenacity" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 1.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Plunger.tres b/source/Items_Final/Item_Resources/Plunger.tres new file mode 100644 index 00000000..1d5a361b --- /dev/null +++ b/source/Items_Final/Item_Resources/Plunger.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b2odg7j76fhrt"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_qfutt"] +[ext_resource type="Texture2D" uid="uid://6sjrjy3ts348" path="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" id="2_qfg8s"] + +[resource] +script = ExtResource("1_qfutt") +sprite = ExtResource("2_qfg8s") +name = "Plunger" +description = "Slightly increases damage and decreases cooldown" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 1.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/RainBoots.tres b/source/Items_Final/Item_Resources/RainBoots.tres new file mode 100644 index 00000000..ea00e265 --- /dev/null +++ b/source/Items_Final/Item_Resources/RainBoots.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://jdhh5df8llh8"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_aeuxc"] +[ext_resource type="Texture2D" uid="uid://bldr5242uuk63" path="res://source/Items_Final/Item_Sprites/rainboots.png" id="2_x8rcl"] + +[resource] +script = ExtResource("1_aeuxc") +sprite = ExtResource("2_x8rcl") +name = "Rain Boots" +description = "Slightly increases health and speed" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/SafetyScissors.tres b/source/Items_Final/Item_Resources/SafetyScissors.tres new file mode 100644 index 00000000..8cc63a9a --- /dev/null +++ b/source/Items_Final/Item_Resources/SafetyScissors.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://dal6qgym6pnyf"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_innlo"] +[ext_resource type="Texture2D" uid="uid://b4xjbdxvn3i2l" path="res://source/Items_Final/Item_Sprites/safetyscissors.png" id="2_h66q4"] + +[resource] +script = ExtResource("1_innlo") +sprite = ExtResource("2_h66q4") +name = "SafetyScissors" +description = "Slightly increases damage and speed" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/ToiletPaper.tres b/source/Items_Final/Item_Resources/ToiletPaper.tres new file mode 100644 index 00000000..4b3663ea --- /dev/null +++ b/source/Items_Final/Item_Resources/ToiletPaper.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://8uxqwbgx5io3"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_lp8ya"] +[ext_resource type="Texture2D" uid="uid://drouo1e7b67oo" path="res://source/Items_Final/Item_Sprites/toiletpaper.png" id="2_5pmre"] + +[resource] +script = ExtResource("1_lp8ya") +sprite = ExtResource("2_5pmre") +name = "Toilet Paper" +description = "Decreases Cooldown" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 2.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/TrenchCoat.tres b/source/Items_Final/Item_Resources/TrenchCoat.tres new file mode 100644 index 00000000..0cfffca9 --- /dev/null +++ b/source/Items_Final/Item_Resources/TrenchCoat.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://cc563lr5i06gw"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_7l3le"] +[ext_resource type="Texture2D" uid="uid://dna8nprqj1ifn" path="res://source/Items_Final/Item_Sprites/trenchcoat.png" id="2_rr3wv"] + +[resource] +script = ExtResource("1_7l3le") +sprite = ExtResource("2_rr3wv") +name = "Trench Coat" +description = "Increases Health" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 2.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Yo-Yo.tres b/source/Items_Final/Item_Resources/Yo-Yo.tres new file mode 100644 index 00000000..fd5ca491 --- /dev/null +++ b/source/Items_Final/Item_Resources/Yo-Yo.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b1h7kigidl5t2"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_12rx8"] +[ext_resource type="Texture2D" uid="uid://dqmbec8uh8jaq" path="res://source/Items_Final/Item_Sprites/yoyo.png" id="2_ibfa5"] + +[resource] +script = ExtResource("1_12rx8") +sprite = ExtResource("2_ibfa5") +name = "Yo-Yo" +description = "Slightly increases speed and reduces cooldown" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 1.0 +cooldownReduction = 1.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/newItem.tres b/source/Items_Final/Item_Resources/newItem.tres new file mode 100644 index 00000000..efa9c2fc --- /dev/null +++ b/source/Items_Final/Item_Resources/newItem.tres @@ -0,0 +1,3 @@ +[gd_resource type="Resource" format=3 uid="uid://dgttm3uig5c5p"] + +[resource] diff --git a/source/Items_Final/Item_Scripts/Item.gd b/source/Items_Final/Item_Scripts/Item.gd new file mode 100644 index 00000000..eac8354e --- /dev/null +++ b/source/Items_Final/Item_Scripts/Item.gd @@ -0,0 +1,42 @@ +extends Resource +class_name Item + +enum Rarity { + COMMON, + UNCOMMON, + RARE, + LEGENDARY +} + +enum FunctionTypes +{ + OnStart, + OnFire, + OnHit, + OnGetHit +} + +#Info +@export_group("General Information") +@export var sprite : Texture +@export var name : String +@export_multiline var description : String +@export var rarity : Rarity +@export var cost : int + + +#Stats +@export_group("Stats") +@export var attackDamage: float +@export var attackSpeed: float +@export var maxHealth : float +@export var speed : float +@export var cooldownReduction : float +@export var tenacity : float +@export var luck : float + + +#Functions +@export_group("Functions") +@export var functionTypes : Array[FunctionTypes] +@export var functionNames : Array[String] diff --git a/source/Items_Final/Item_Scripts/Item_Functions.gd b/source/Items_Final/Item_Scripts/Item_Functions.gd new file mode 100644 index 00000000..648d8fff --- /dev/null +++ b/source/Items_Final/Item_Scripts/Item_Functions.gd @@ -0,0 +1,9 @@ +class_name Item_Functions +#Needs to be a global script +extends Node +func fire_start(ps : Player_Test): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) +func fire_tick_end(ps : Player_Test): + ps.change_health(-2) + if(ps.statusEffects.hasStatus("Fire")): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) diff --git a/source/scripts/StatusEffectManager.gd b/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd similarity index 94% rename from source/scripts/StatusEffectManager.gd rename to source/Items_Final/Item_Scripts/Status_Effect_Manager.gd index 8c2a370e..8bdaa11e 100644 --- a/source/scripts/StatusEffectManager.gd +++ b/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd @@ -19,8 +19,8 @@ func _ready() -> void: func setStartingStatusFunctions(ps : Player_Test): #Temperary. StatusEffect behavior should be stored elsewhere - addStatusStartFunction("Fire", Callable(ItemAdvancedFunctions,"fire_start").bind(ps)) - addStatusEndFunction("FireTick", Callable(ItemAdvancedFunctions,"fire_tick_end").bind(ps)) + addStatusStartFunction("Fire", Callable(Item,"fire_start").bind(ps)) + addStatusEndFunction("FireTick", Callable(Item_Functions,"fire_tick_end").bind(ps)) addStatusStartFunction("Damage Buff 2", (func(x : Player_Test): x.damage += 3).bind(ps)) addStatusEndFunction("Damage Buff 2", (func(x : Player_Test): x.damage -= 3).bind(ps)) diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png b/source/Items_Final/Item_Sprites/Plunger pixel art.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b25d39f518b696ca3a611062a0a631b074f32c GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ydu{YLn7Rh zQzQ}&cy#{lJ{g$J;NNqL$h3(|IPWGs@#8%qsNk^5xucBX z&Zk=W!m?#23RwdA96nl}sM4}(s$g%>DSf1VXR3;!ufTf-rCPpX#f_Pb8tek!%zkPy Y%&U|%@X+%r1v;F;)78&qol`;+01H7|TmS$7 literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png.import b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import new file mode 100644 index 00000000..68e45fc7 --- /dev/null +++ b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6sjrjy3ts348" +path="res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" +dest_files=["res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.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/source/Items_Final/Item_Sprites/Stick Sprite.png b/source/Items_Final/Item_Sprites/Stick Sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0a9b90c68691230e30d550d9cd343c66ea9dbb GIT binary patch literal 344 zcmV-e0jK_nP)Px$5=lfsR9HvtmN5##KoCWfS_JQ4VP|D6*o!yuG~Pt)1#27aL~J~PAl54*3=FdC z{F&^s7D%Bq5 zsU8AAx*Px#=Sf6CR9Hvtmf;PAAPj|N4i>w(l5q{=V$5-uUV^E$Ek!{z!GDJ8`}ztkZfN{C zi@x{%Yl)L$LI|SHVd1J62k{Po8kt8oOb#>$h_p38Ob&Dae0)lmA*%!cQW`)z4Qz+% z0L>k!wGYP6xEmGIJUMYn)o|f<01#Z(WuU^?hN2EoAu0~<_<{K60MMFiwrRH`oMrq6 z&HPXTZo{1c;Oec3LyP{G;3_~Av1AN-cs9HjfU7lRm$IDhAJKu-H5~5|=xC{UX?^=J zxASQ;J_qJG0NRbHRJNQmr)!sEvliO{nmh0VD6)}-Px&3rR#lR9J=WmrqC(Q5?rVnwW^YO}j$6{y|7xgu*n)1o6<#ONYcm*g?cYhoJBj z9zr~52Z_DfLA*qV@Dfos4<(2aN+ij;88W%6hU<=wi0)yhgU)kiXLg-wtqA(UrPgO{lA^f4#KX%c?HRQifCnAxBKG>-q3!ov17uRL?gT12x618~ z^N!wg3^11J9k67J;J-c>Mt+$tTKKs!u$h&HR@DB*`act7k%9 zS;XrPh@xvRo@c6a0vPg-3uAqz0K4&+fYFOlXSxLAfe?zaZ30o0Z2==mKCw59v(A>2FjD}ZC$0Z+{4Xx=9lX+#ihpN#9qKOpIL@Lb;5sxNP$Z^#+1Lus!RTr-fmR6QBJ-dY0cYM?B zC7GRG5PiLEj79x7Sxz=k`27RwfyPe0ME-t)=^a1vVKMSyF>hB_ZI6N_*mHMS0|>SR zMJzlUCfE|BrL9Ro=rMi#$INrf$1|B`1+atBWi$kscsY>sACprx_3>NAYb@K?ZPx%D@jB_R9J=Om%ne*P!xqf7sL>Wsl=p^?BoX#a+C#>t*{`FK!V9T6(b8>5CcQ_ z6U<&Qq!I`r7CLocLQMm0lpzyJic+hvAY~xKV=&jajU8g=nT0b&wv+qi+;iW1hW}kg z)QzTHRduTX!0MxSkoB4u&JuQf-765$M9)>;~fY7GM7JO_EsQ>;P zbmGp93!u@3DF>XLJ)^aC=tF>H!BfSmVU?D3)COj(1LaIkl`fsaDlH>Z5p?3&^S9`5 zAv6O3-SNl(`1!*Kb>hkTEiI!N2>`I!J}~wNN0AT@>?;dH%mfgK*4E)M2$7jDES!hG z0)W?!pc6qCZr;ASkPERwRLW)WKBPtL{6$?Nh zHeR`aw_-{=k_IyI9G5dWW#2Uc{C2pm%j@@FW3?i-10r!EI31>G#{Qke00JSIkPR$u zD;5F}h+rlFDur`%e_z|aE+Z=19~{k<1+Ax>awex5#VjlNKgK?N^J!*{nMbm?>W)VS zJrq4S2@<7Lj@#u-&JSUun8n%Ii>$M72*V^>IlxMOiM870$f-yLKp+~$EC3H5Ut`km zsHR<=0!a-3;G6mmcxQ;-uH&zm{|q1~*)dNl^>@DDs;K*=MvHy{@K^KexE)jW00000 LNkvXXu0mjfxyBU8 literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/baseballbat.png.import b/source/Items_Final/Item_Sprites/baseballbat.png.import new file mode 100644 index 00000000..8480338a --- /dev/null +++ b/source/Items_Final/Item_Sprites/baseballbat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n8kc5ecpojp0" +path="res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/baseballbat.png" +dest_files=["res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.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/source/Items_Final/Item_Sprites/baseballcap.png b/source/Items_Final/Item_Sprites/baseballcap.png new file mode 100644 index 0000000000000000000000000000000000000000..e904fe88b64b0d5c613ba695e52ffd34292363f4 GIT binary patch literal 642 zcmV-|0)737P)Px%JV``BR9J=WmN7^hQ5eVn7D)yVGE|dH2XcXf5(nWjr9(>xMJI{46tPQ*Md{$u z$wilT3KR+z2Z^YNn~Ugl8FVtxA)*|_!A!C05IBe4avj?5arf>ecP|l2A^+*#yLa#Z zd*8kHeGllXuYaro*$?9Bq)X3A!oY)dBt1u00MGR)W^A{r41mGJbllWR(lCQjjLDFU zlo1`aV<9(DWc@E*0_9c9m5oTp!L({6rUL+M$3iNTXYX(8XGmr8P_-qa zhG;u5o=&>yk+-aEI~J6fjv;l}H;y0xK-IF+5YM8RcTy^o$8G(LwJ%SBrLUX5%_+H56yB_3c43@F zB8sFVAkvjt!R7T245`ETw7iIwwfUz7@a6%L3ahVBE^R>7vN$>1!TP%ruFMLeL^3oH zMbUBj0*bBU{A2?Kv%>nDce|nAcJ&KH8?ov)r<1O?(%G#l_%@l6fykIdwZc3I zrs$5fz}qG>-khSs*9g+&!rwxrjROFdrVSrNXu%L=Gv1u!g`iyUd1g8=XT4ElzM-3t z51ALpb}S*t%Gx|LCbNt>=JMu17gsVb1SJ~2R6Di(fKfa3be|)TUan?60eB&R;P2|I cum3{70j$8}NTOV_@c;k-07*qoM6N<$f|V*Nl>h($ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/baseballcap.png.import b/source/Items_Final/Item_Sprites/baseballcap.png.import new file mode 100644 index 00000000..bdce6f60 --- /dev/null +++ b/source/Items_Final/Item_Sprites/baseballcap.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm5a1jhe6ojrw" +path="res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/baseballcap.png" +dest_files=["res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.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/source/Items_Final/Item_Sprites/boxinggloves.png b/source/Items_Final/Item_Sprites/boxinggloves.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0b93388a74208416b6207347299c0af8ff4e9f GIT binary patch literal 624 zcmV-$0+0QPP)Px%DoI2^R9J=Wl{;_RP#A_E2r8z=MJNqwAXOxfWU_>mKajb5FH^Qm{DDqYe?Tf# zVrrL4*(y=b3|)y(I}xc%l}LdSmdfE$C<1ptrucG>UFcA$yqo!szxUz09K%K%{qKtX zjU?riVT)p~etedCtPN038TR96*MYIu@9wi5Q=|}U0XXKZj|1VEPu+*qlNz;dBhX6- z5LVW5%CMW-7AKhtp)tVKI8NuD3J?g95E(C*HNEX-X}&GlP2kbsD`dpx)rkdhp#Pm0 zg*aJ3|I%mJTyn0x@WZX;%@ zdL)QeTcKhV=fk(6q(dlzXtfnuZ3R=+g{5^=Pij(t&^3(O4#&u8h4XySo6^*_RtFHt zyDbO3`2|+jG}m*O0s(5>MvPo(@d@Uj}IoJF(r|p6xYv zN-vv}NG&+YT!hYow`yU=e*_Supbdy(=#}(^BhNot*KDJIQojIt%I7|uO0hKn0000< KMNUMnLSTXp_#a&W literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/boxinggloves.png.import b/source/Items_Final/Item_Sprites/boxinggloves.png.import new file mode 100644 index 00000000..773b8950 --- /dev/null +++ b/source/Items_Final/Item_Sprites/boxinggloves.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxu2g1kcx6k20" +path="res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/boxinggloves.png" +dest_files=["res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.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/source/Items_Final/Item_Sprites/bubblegum.png b/source/Items_Final/Item_Sprites/bubblegum.png new file mode 100644 index 0000000000000000000000000000000000000000..30438077f0c370ca04e06afdba12fd6aabeb310e GIT binary patch literal 812 zcmV+{1JnG8P)Px%=1D|BR9J=Wm0w6xQ5?rVi?m=dp}9R6DkwEH6%mY2=i%^#hrgZX+BI>Dvn}d>*0D&_wLTA)5m>Z?(dv? z&i#DP@0{PckXK%L<)G^3-c)sSZ|W$%bu8D3WtBA?g^A33WF|Urygkewkr`sHBCS z*~{=)w;>&_*5a36l=gJ9y|9k4HEJ;1no)A?5 zyJksrme+QsjAg|DB$n5B?|4V;#X{YLbhrYx)i&tH#$!f&uY2%byGb+{$#_;o6>KFX zSeE0ZP`|+ug5kL$-Kx^z6;JL0@CPXH1&POun5_u_@iduBFgZ)uN=m8pOlTTrTa#`; zCQY|lQl^bA&8p)uBc?}{6!?OoZMG&v7Dn%PvKe1Nni-Mb?{G9X;eO$n?gz6q!HM~w znzmY-@f85h|xM3E;eJT9xv2#bZVhM}rYLr~_$cL@YL|0i}%W z?W;RbS&7-Gi1&hTNNWIuyL>y9wMt+hfJ2hU=?s`{O)2GuJ5zTKlevV7Tazq$of;Db z>s30SMHMSx|CEQ;!8uXZfdM~`m#bo{_q;@^oL2yO52L{di(WY!Zy%loz;&sEB3m(* ztEZWN9uf2XQyu^T4-EJLH1Mnj)ETigwg7TDeVdpBV9~p(xunvSZPf=dpqQ|`+?qZm zBjGMz#yO#{NfGY`Kac?>w!7S-q~QPQR<=d~XM-NtK)ME2XOU_B^ZOJRI!{{HpuTk(>0J>fP00006P)Px$l1W5CR9J=Wmpx0vP!xtAgCL<>ODBse43TjzKrP)$!Ra_f{75Rav4Zw&`QSYFyzf1ibK$?oMA!)p-IVvw zJG*Or8IxgyYa6RftzQE0vNF$e$C2Zcz0eE&0`GO(((AUxs<*_dx5QRsZ|@5El6;?K zNVo?rt7)lJEh(#MsYRk<)mwcRF_Z;{ZpvnIfs1&G1Yj$Ilhts}_93U?ps@s8#Z%-I zfqW@EI}F{FS|s{G_Rm!o@+B#&X|dIq?{^qb0Yf)sd2gH9_ARH)4sJ0+BfE%SbxGx( z*{53`njPO<16%NLbPn+pt|EbOfa${~0CzXn;V!@}W^fe(;f8L?+`$%!MuRKhkr~Ko zgW|qMAzupI+1~!}TCq~Kezq0;;NBT9a=6#`-kC7+%560!wi=UKB>E3!AA3Ibe5CNP z=VRGN2LJQ22Tnw8F~bgk0!~&79Jz)K<+~sH&3j>lZ{qiI|M<1)x8oJ<0jssxVQlvR O0000Px$wn;=mR9J=WmOX32Kpcl3ONB0i5O5Mo5tJ-yhah4Klq)Xt23vfA~mcHbz)5F*!s3ahR?*faI^Jx-U13Eor0mor< z4BT(FPQxJK4goRxW8nACk90m>{Rsd&KeI#dW}|)-d`kdO8oeFf9xjPT!~O-l#ts*C zLbV2f;#mNY$QtDCZXNLHVy#sD>~YLMrCI}i3X2RZHe0h%XEIy)hJ&jV+iSl&Vwa2Q y27JS}1cZe9&s7Ene8Z&zLSo-TrvU%w*W?>?FCriV3SsU50000L literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/fryingpan.png.import b/source/Items_Final/Item_Sprites/fryingpan.png.import new file mode 100644 index 00000000..1afdff0f --- /dev/null +++ b/source/Items_Final/Item_Sprites/fryingpan.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdh5om0n3ttan" +path="res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/fryingpan.png" +dest_files=["res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.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/source/Items_Final/Item_Sprites/hose.png b/source/Items_Final/Item_Sprites/hose.png new file mode 100644 index 0000000000000000000000000000000000000000..821c0cec857e8b7614f06836e7cc48b50af7b5a6 GIT binary patch literal 648 zcmV;30(bq1P)Px%LPh{tdxP z>DVz8+RZpa;!a*taE4?G2#QISEvXR_KN%evDk9@@b_5S*+#{l0te-jiXe zrT($*<(X{QPN+NgdT^-q?gx2{w|2Ja9rppay(-MiDON_&_|=OBdl2e?WKtTo6K?Hn z1JFC};}3?Jz@}|QV}CGILTE*x(>JX5Z z{S#JJH>9BH5x9W>mrfU2%?3T>yAHf5kcgOg2f)he2Bl~6l*!M)x)V~?%l8b>=_L0F z)8N!iJp;-gH~_~}SuZh)kD9%E;1Ed)5cxX@ms^)b>l-)(P>Z{B|k zbs-i85WC)OZ?b=Oo_oC%pja6Zc-iLlmyZD0KRajed0Yv3Qjq#N7A0lc*4*DP!*)V( zJ#ByF==<;SPP|{a%|TWLlMX1#Fka)yzTgjrJim1BWG)3rgGic2%F*?50mLCvwV<&U iKm?JZMU9vGZ}b-!!~&?gamwES0000Px%B}qgEshyBce}~V-KG%oSHqjP z@Bik_>@cvS|4ARdtOZHe+@+hiyjl&OJ$=RUYBf=aE?x87!Xm|jm83VI(E({*{p9c@ zea(!N3qbDzjgN%13_(kWMPlSox(h8Rqi! zEdjLt0)W9If3*Q9>8EPn15tW0^RtuB0fP>N)qPJcv0shdiz7I~r8nDcR7<-9j&POv ziHQsV=k~4uP%C>ZUH)!tZUi8U*UBDm=Ibh6D|?ZkZ+~oz$4Pq&!tHG~Z3V5z&Ns{W z5SA(jV`GkRRR?rsbO;^c(l?!^biEa#Z#um(cP#__P8J}}tP^!~4@ga%Ke_z?lS6-E z=jI>22H--vVho_Y1->nq9LnO`g58I+Dt`a{9yNaOt7rQFBt+O;LV3eubS=G9@wvQy zP2)4*+X8QR3_!t1bKe&DwlJ!v-2uy52Vit`AF0PV{18Ccw2`-88^E{&5=0uenwzPu z->})pvew%&hc+*wD2Qf#Td8dM8UlkSnI@N#j`@xN{sF2l@6mIi3dsNf002ovPDHLk FV1m&P7%2b% literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/juicebox.png.import b/source/Items_Final/Item_Sprites/juicebox.png.import new file mode 100644 index 00000000..dd35366f --- /dev/null +++ b/source/Items_Final/Item_Sprites/juicebox.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://eehdxpdnjdbn" +path="res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/juicebox.png" +dest_files=["res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.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/source/Items_Final/Item_Sprites/magic8ball.png b/source/Items_Final/Item_Sprites/magic8ball.png new file mode 100644 index 0000000000000000000000000000000000000000..4b578a1d7086c4ca1d5705cf98a51f7a90220163 GIT binary patch literal 451 zcmV;!0X+VRP)Px$eMv+?R9J=Wmc44jFcgJPe};mW4qZaPLn`PH{0gCcgDxFPr;QGwygiS?vR|xzLIr5UCGh~j`}0*7H$6D3?<2+PUo17XS+*WqQ|NAIdS)agztn--UK305Tp7=Kz4!GAXpr;tA62#t7mC zz`}?RhI6cz31;!c*gxHFtRSoa$o&1SXVcvXv0Jn`?E@o#$$T1*O0lQMt`UNy1z=&s zyRUs^%Jb%AN-p`aRsI&y4f<_Ar;9?e} z0Is^fz01x9dcI*-R^NI9e6D|t?Q|&VB;ACvC6En9vj%|P%R?bX@1n#d&;r=ZAP*tJ z>;+(S_LK;q{SE7o_8_X-%=sXyL&m$HDkJB+ph^hcZI~^As*1I(Y<$cC$BL+Gb3m~P tW!Z4egm+D-DxdT6t%|Kh5Jw$^egRW*$Px&mPtfGR9J=WmTzoRRT##9ZRZjicg|DQ5w0T zH1b04);vMED47H6cesT2z*Ah1Yw57P%qyoo1kXqSDDenie|S!pt0V%}?{Eq8${On1 zWjytrnz_T@p5&ijYkAOoS$8|ij0*eQlE%KZ-^qr8gJ&c>^)M9l^M1z=&+O?2YEj}5 zey2h=N4KC#+_rZ$04aMXqn@J$h17QM63@OEV9J}oys{<}SK<+NztP1|(9e`Np}P%v z4*1-XXxqD*l)V$hv(zZ>H#{ih0v{L=}E#@b!x-K+4JV$-Itf?2CjWhC5B@3fpEPe=m zZb_)5U+qgE+0q8Jejetx-PHhueC1TNSV%@p1w{bd_t*@8Avxr1!T2>n_1$jgq7v{I z0AJc`kZkGht6D7lF?ySj)sk0i=J-Jq-Ma+94gYljL-ITU+346T=R}fsyN9Y43!zK; zc{9fk{-;kn??sM^l8X7GA$} zLzC<3>DSyD=RV!OBq#E=Aok0nJnal4M^hOm%4lx3nk#^ z{Evf%LUbqlR@eoA#~IGVy=34oo0)AY7ILc>D}ftZ<(hts*K zf&GRebPu6Qz?fa=#tV=G1Y+7_Wp3!C8AKrwhW~e_DCj~_0+fKC zo?`<5nQpVOq3;y(LX@VB>i{sfI#B|C-C9Kn0O)`3Gt8~dy!idWS>%Q2lIs*Lz})IY z85u)bWz)n}a<%)P=B^pmDf&g!?C27Xw-0df#5bC_N}Nq@^eGnYfJ%@}m^-%=EbC3! z?C26@FTG~CX0eNC*^km@N0$J|6_Og*4^Z4yyc{7a79+j~6?Xsu(}omv%#vyV0000< KMNUMnLSTXgIN0g{ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/marbles.png.import b/source/Items_Final/Item_Sprites/marbles.png.import new file mode 100644 index 00000000..d1a1e42c --- /dev/null +++ b/source/Items_Final/Item_Sprites/marbles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cam6hafwuwn0g" +path="res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/marbles.png" +dest_files=["res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.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/source/Items_Final/Item_Sprites/mop.png b/source/Items_Final/Item_Sprites/mop.png new file mode 100644 index 0000000000000000000000000000000000000000..c9d46a94bef731e51cab934786f0e826bbff5b72 GIT binary patch literal 562 zcmV-20?qx2P)Px$>`6pHR9J=Wl`%*gQ5=WAScgs_i=ZHBmJS^pu2N6oC^$qg2qK7}L!nCvJxbvS zr9^P((nU%^P8`J{9aM^oLj(mIhzX(6wSx(P(qiFAZYXr=>rn2I!)oK*yL9nCy?gKA z``+*W9uID+$CVu&5t&pFT8x<+x-n3AQmH z31mk{#L#dbl~3(U;SkX+@OJ($I7E;@H?c=1&~5CI2n2yE69@`dA`k{1S|BVulz<9& zU;$O|YYSMWEq;`W**fNz7|-fEoL51Qz@Owxp*>x+iU^gHd{P<^%TG-5#~%t zfljz?XcvCe4Na~sZ|0@YAK9D;Dj{3oIBoJzUdV-bGJ$Sr92Aa-ClkJT55Bgt&feBL z#-=6$x27Lp{QkUXw;fJC?!<-$Q=(cdGd4AWZfK;JCOIe^kzSgVLIBlbxik8}=i<`X zI(PK-TZ7q0i|B^N+R8c*uJ3_rE|ZJo8vghC4KQ>a`wz&v(*OVf07*qoM6N<$f=6uq AqyPW_ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/mop.png.import b/source/Items_Final/Item_Sprites/mop.png.import new file mode 100644 index 00000000..04dddad6 --- /dev/null +++ b/source/Items_Final/Item_Sprites/mop.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3o5u4wsuwtfj" +path="res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/mop.png" +dest_files=["res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.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/source/Items_Final/Item_Sprites/ovenmitts.png b/source/Items_Final/Item_Sprites/ovenmitts.png new file mode 100644 index 0000000000000000000000000000000000000000..266d0f95a2769c2701e2a29d97b1c322851d7f9f GIT binary patch literal 748 zcmVPx%rb$FWR9J=WRzGjrKotKOVq%F90$9S57Y`K!Bg(>#Iz(M5AAliyzfFgHfQYr~ z#LiMNFm%Y|1<4=-F$82F;11Edp3i?%DzyV|Io+N8et+)Wvw?G*;~$6gH(`FeDN%!klEtmIul4td#mFm0HBcB zVl+FM{M$O-eqLF(W+PwT zqnUFeYal5iYk)|6x_${%|4&n9$-6Zh6(t*41Ak25b$LWH=LD*sLIeZ+%8BH}QetmH zfIx3JmcITd`zn~P{+4E=Z>g*yiOOlcZtQ(Gh-xae1AI3VYoKE+7zth}y+b5uUu;~7 z1bV}<^zfuIReWO62~jx^EZT~aMN6}BXBdHFi2YW#8@ku6*}hIFj*n&uEzM@{h+R^g z_bnCQO_Sj!c0#h4Pb79k5ln2^VMUzE0dk?4b68P@InlRNbc{u;a&n7T52W}b>J7&d z8oCG50kvb%3DK1>f&c>GsT`oVGYpSZMgg=m+ea`CIJEPx$dr3q=R9J=Wl&??2KorLxKg2Q;5R3#&#nQQ+!y`zj0!_07v%l*MNpt8;L4uga z4L5>7kpN;71hW*wYu>%PTYKxo67FNJz1#Zz+`HET1Ooq^ttNktBT>-%m$!-c^LCpA zizMYsg|CR001tlsnriDrsHiL9T>+7#Mlgc&e>wY#Uue*mm zm^|NC9>=y%I44)K4DDwFO~zHFl?0GhyJMB0BSj>sAsk1A80vp3GtvS$$rmC2j00000NkvXXu0mjf8?(Un literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/piratehat.png.import b/source/Items_Final/Item_Sprites/piratehat.png.import new file mode 100644 index 00000000..f82fe5e8 --- /dev/null +++ b/source/Items_Final/Item_Sprites/piratehat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bng36643tueog" +path="res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/piratehat.png" +dest_files=["res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.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/source/Items_Final/Item_Sprites/pocketwatch.png b/source/Items_Final/Item_Sprites/pocketwatch.png new file mode 100644 index 0000000000000000000000000000000000000000..2a62e81650b35629762e1c896fb951d62b94d458 GIT binary patch literal 681 zcmV;a0#^NrP)Px%V@X6oR9J=WR=;c8Kp1_l+d-hxsU8c4Qc{YtXc1jPjkZE4G?2yMsX|LB=pQit z2M$V?l1_mvH7%6RBE?I|;zgn^m_VT5!SNJglEH}UAU^dZpX58&rAyvq-+lMJ_x;ix zaD)Ghnu<}>_c;JOc|6CDpC;%x0MxA`B_C@G2t9*GQN48k&4(8o5h6v@_c?P+US-1^ zlQYNUN!(ttOX9Y4T?wIQtRycA5y_Ic%_#tF5vw8(J%fjyv9vFeMSVZBsSxT400YZ2$6NCOsGTY+$RURE}FJ zDhX_Gj9{lFCGYO;>$qACS?Z^gQI>l8Kb?&JsuWroxO?wDfP5ypyZh*U{kU$N<#&My zA`|ORB8ucxiamP+0_gQ45{r;UPHS;bO@USkfIrPwHUYZO8pAR%Mf|fdyu6rgJOh;i z+=J`dd3cD1+rjtXK~4xDpM9O^0fi~}G<=9Xq#~%XtnN@w3}ocvMH4{0%Dvic=-U>5 zbmt5JAie{Npm)P~(Zu^Px%sYygZR9J=Wmd#64Q5c7xaiR;M2@Oos!jbUOBs5X!Mr2?FT{MbWi|8+C8?Fl4 zx~N4+>sqvE*-A8sD1rzHMqDVw#0)i8YfSuh>_fBDVmjCRIrqa_ zt4}KRrT9i~SJ(42Hh0?IJ+5{GkZe1HR+?o?Te3lTW}rMX8mVpdwN)rID8#DkKPws8Q@}w;rj`DQ~t>&4F z9|6e7;L9}6UYrIXetm_3zB$IpiOZ?8JbZMgE=WTV^WJ!;$eybZttdn*3ILa0H8cL? zn{Dhs-yA#131VG2+xZCv&>Qa*H{0KvV$q61=2sGcoz-b}R;T%Nx6JtS786K42wwnB z<^Xr!opM~gRReu<`j-+IAdI;+3kyq4uJilKz{cmFeug=!p1E%T2_ZrJrrv0ty`nm9 zL!hrff&lE6)*SnHOKYxuPV)Q@RI2k7PDDw4-E}l`Q}sh0&a0jPzB5ob67@UOQS;@+ z-~h2yPAs%s;NJI)4k1A%Cs+0bB;~pVu~bgTatiR6Zc0=4YYzM#nKjsGl_zf-?Kf}`pWq1Gp002ovPDHLkV1lA)R(1dY literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/propellerhat.png.import b/source/Items_Final/Item_Sprites/propellerhat.png.import new file mode 100644 index 00000000..c08d1f21 --- /dev/null +++ b/source/Items_Final/Item_Sprites/propellerhat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dghjg34gr46gq" +path="res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/propellerhat.png" +dest_files=["res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.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/source/Items_Final/Item_Sprites/puzzlecube.png b/source/Items_Final/Item_Sprites/puzzlecube.png new file mode 100644 index 0000000000000000000000000000000000000000..29e0f53377fd273642911cf77698655b46426381 GIT binary patch literal 737 zcmV<70v`Q|P)Px%n@L1LR9J=WmQ7C+Q51%s0WD}#Cl$JA7u6KEqa+v?#uzaq`~Ve*ZVVWO4N*6& z6r(E=6I@n-gpC10ObBcZs8Kg1rlD%AA5buS2yIM(ifsdRQRdQVr&Bsx`zDjzd+x{k zOzt^%21+XFf0tx-;R&~r%8q?s2o$|vQ46w7ElP`MCj!H!VDe6K*j*{vR+SUCIz8Nf z)C0i7dtI8bXESd_`pcy?ynofmf-YPeCk#LfahyV;>pxpFfPoyJ3Gt+B;^JG;(WI@dv$y_62T`ac-_0z623Ong+_{Bf?zOO4!EYWQBPE z`_@n0xLTgc>N7cGK1snRDQrjAS)8n3@XZVJ0BRDB$QBXPE6q%EKpaaU^MU}Ii68*2 z_K<)WpYRHZ*g}}tLYT52FWHW+<8@2)DRNHo{r!_a8TXw7t@aR*zKGQO!It!6OZtUj zT~kFB+N~0;mu`s&~W29ruQa zr!OK)&V1GQ!%!%5y?KDlO?q*qAYxz`;n$FM&3;t$FOPx$u1Q2eR9J=Wma$6$Q5?s=mxmyd$gM7+)e;dRC=cB14`^s~agnxy{)gt;q6Qa7 zh1TF&N_Z7$gM(1%5V*x5g4A$&P480gz31s!6x?_F{eF-4{qVc@?)Ly+zUI`R6tg~W zx2$FDx3Y-Qu-(I;6k7^}5Fn6(sc2=#!qX@!F5GIOO;b#!1}%>)>>d!7tD1N^jn03YE00;o?n+#IFG?*IVc znq~8G=*5uhN$Ck7n~$Sb?s$T51t9wy&VrZ);%XQ%iRJoLn#jo4pVb#o^s9f+&omPN0000Px%?MXyIR9J=WmtROzVHn1L8zBv^hJOf&hzev75fj5T)<`HyL<%-yL`-Ty5e$}& zDf9=rSu%BH7opBdyx7GCg^3qI!a;0a?IHxxx`@yv=@>z#$k^A#I45yVchn-O2M&Da z{a(K3`JVUvKF)#v_}8IPlk9425o=?i7Y|jfu@-yO5cfX!12B>Z0#IAw0T9~}vY`N( z_|cOe09c;J0jREgOZz)F8Q#!+_%zx(X92`kMC29VYHSgw9ykCvH;_iM1UXSU1Axa> zOoBcfULOGALzlP@Oc-rqJRVggV$%}z45g{Ayob$a07e0D8x8|5DiP}nkayoRltxM}VCygd5N(^wCcL@=K=a8i+#Lqy>m5jzAeo6mX@5bRZ{qT| z0FosL7Y4HArZXfORscxU-%#=nHcgTa`LT|AvO99MQe(8`oR)mZalqBsBD$Mqly{qN zAM^DNtUwqrJC}hfpqDY+09ak6SrN1%B^NLk%D$ceK(W|bQc4+N03=Hgb11`D|6V1> z{IZuwN{e*$8fHLBE|7TE2l~PVUP~ z#^X_q8H6dY1V9X(LT(ByfvcEA!wMCHMF7fCB$U0RIzx-#)fFrtZxhOhq_o7mI%2C9 zb$ET4oy$a0TEc-gCEi}HC+5|m<{0KptTEce*v0FLy#RK7Mj4v|OWbx9D{;9u%+6(1 z0yeyeWOCW&NT7|1!6Kz3t6?4WkPi7(k;4Wh7>`Fac6~A9SymoC6Mt~ xl|l$1N-FE}y0EREib6!lPx$$w@>(R9J=Gl|5_1P!xvWTL?m+iWGzl)w>jNaIk`_>5%ql<(8z}dBvLzn)9 zu37BhA81qPAa2(dxezEK1tB=x4&jCvKbntgD1DbhE+OZ+=RM~H_>1Z_>msXMXW;{r zQcl;~BVQ&QhuL`$!Y+9%^>5!;<}h5%Vtq4}1%OwH z#xmzWKV9ju>_`nDB_a5tg>gGCMtUa_h!Oz1=mG$Yje-7pLMCrs92BbAEGyXuCZ+z( zgYlRxN-EG;=3r7PEXMo>@Sso?R*7vvb~Oi&n-YwT;h(1lkhc# literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/rake.png.import b/source/Items_Final/Item_Sprites/rake.png.import new file mode 100644 index 00000000..3ee25a38 --- /dev/null +++ b/source/Items_Final/Item_Sprites/rake.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv8o5xvrm3cm4" +path="res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/rake.png" +dest_files=["res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.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/source/Items_Final/Item_Sprites/rubberduck.png b/source/Items_Final/Item_Sprites/rubberduck.png new file mode 100644 index 0000000000000000000000000000000000000000..0e3039ae7020cf8d9217fdc7e0a07b85988d6027 GIT binary patch literal 613 zcmV-r0-F7aP)Px%A4x<(R9J=WmcMHgVHn3h@tUYK)R4%?{YLhUfLVjW4HUNV{{!gAQF%A*Z16*?ZpySJ@FV8b5 z+d~Ic~iNoR$p>korK~G*i`bR%rTlkI;pt=R850p5xZS ze5l^;>^RTgdxq zS2iNqA>Eo4n>Q*MU+zishi~weX22bwI1xrAL$_ve^Zpen`R3-gP;IP$J^KdWSglG6 zToJ=@kUaSIkl+JrB||)aEcg4k>lMWEMw+^5jwS#cGjfgSZxKfh3PV^o&D8Qn+KXjg zFe*7H{*po1mQ{!WDfvhOfPx%uSrBfR9J=WmcMHgVI0Pv6JwUd&?_7q5~!s#QcXhb!3`Y~L4=x6>=1BBwu1fx z#{Iff=pg7Kbn6sImmm`DB;_Dh{E^tCwH{hXF2I z8_>wq!!B-eP2A2;08i~<%^H~jvr3A>ywEw^`t@}r3S(rlKZs|YIoGk-Mqq}R4@Jmi z>jbL{!>8kQzTdG{Ww0iY&~6m~>%@Av1LanQk^Mo4y)KfRFm!_V6Fu-cj~ibmhfb&Z z)DhFpj`N#q8$ntN3_+9>g((I!0Kj3>f2!$TE9@9xB!Y6Q!hjQq2o-6K2RMPy_R_sO z)B6Ah>vRqbu(Cf0G@Sw1_R2h96o5`W?S|OvPyb#k3|{8}z%&yc0Vo8}k3;pTp!31& zJWgU2l#Z^!3`s$q6dwy<2BF31NoVfvV*O1Nv?Fc`y8<{3ghF^J?i#=dV(y054vc*X ztwi4ontL&zA(4NCY({eZqvZ*JLc~^bCqNhE+dIjxv2RHzha?1cf zHn;MQqww4TmJMMsmB9S8h|R4$({6Y0cKbD!a?7rw@C1;}NMtdUK%-Xuvu1>dh!MvS zo&Z=jghs83?0z=dQ!9SY58Wj>56B8Hp5L?US{Qf~|R6Op$CxBA<_b zkZ};6Zb73~MP07j?thTC831JcG5YfW$@XTr0?1}0!m=Sp-%E-)ux-^00000NkvXXu0mjfrwv@? literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/safetyscissors.png.import b/source/Items_Final/Item_Sprites/safetyscissors.png.import new file mode 100644 index 00000000..f6088e3e --- /dev/null +++ b/source/Items_Final/Item_Sprites/safetyscissors.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4xjbdxvn3i2l" +path="res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/safetyscissors.png" +dest_files=["res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.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/source/Items_Final/Item_Sprites/soap.png b/source/Items_Final/Item_Sprites/soap.png new file mode 100644 index 0000000000000000000000000000000000000000..aadff60a19515e8dcd07e7f59204e0593a8705ac GIT binary patch literal 880 zcmV-$1CRWPP)Px&DoI2^R9J=WSI=u2K^T48M6j3A1QH6eWWkdw0ZVe&ix9kdu_s#)ym&9lrVu@e zHz_8x1U97o##K!5v@2Y4VI zj+^~kYb!=W2JsW&7_^2r%;4a#f$_~01H;~{$v0E z$W|+;U#O;_Y_)=;V%Z!Aj65i64U`Hw=DrIFn0IbXwsbfSrL7_+2}q?A$W|-1@uJo+ zlaz&J*AW+Tz;K$B5;!WBp|n*rwH5$l&QzMMtzW2!h6MD6I;I2X-hfX8Smgc50JM*i z9~H|8{4`DHQgUE+Os_8kiwmIS`{|U;IbbAIe=X2{B24 zTziG2l)$F2fiK@DCb<~oadqf}7eqj_K)_OnZo&usF!B$RbBq+onk8HJKb4~>>>YTzc zNyxk)&z{F!!)jDLFl)PC!m;3pfUeZI<3km_q3)PW!~M6&nF6dLy4p+x6~ub~`H>Ss zT;CV2myxd2xKn@thI6-LHXXp1-0O+wc^gs@0UqXUMsGd}FLF26RxI?rB66NwUj}gh z(bRFHE$SRFURsOr{Wh%sz*yUR=j`|3t)nvPx%F-b&0R9J=WmO)6{P#ng;$%X;Z9R`6}T!(`VR-_V&Vy}8_MHtp9=wKHi?7Tx! zaiy>xJc;13dQf+e&3Y?4D2zy@=%gw-SXqR0P@JGL=s|cp)MR#B^8SzJAm|4n5Az7UwY@PXYj=t_0WQ@9bq>SwdHL zKb98f9lhi6B<7|kpqI+n$*$B6&?5)fO7aJSvjKQz2_vs3@pXUCy8raKugY(RPx&)= z_tA$>r5qQ+(Ga`;jE(Gnh9}c*K{!b-m7$I1pry{S_T?cGr-xhsZVwzyKEe?IZ8XQT zVq@b3TIwFxCj@Z%VjE3~4rqtxgmPlx08qy>wD}(3EVgNT-@EYbpRu#zg?j)z2z~I$ zpWxVL#W%A>2H-w|s}T81h^9nGCGg5j+t&0dKNW!tU_t<}K->@)Aiww13jQ0!&hILK z9fWPTs$5>RkO25is49S}aA#H>PM6~fWa}GYl~fhvox0l$pV+5rH-C`#}& zm#agZq$)6q63{@(r}cnQto#E!A2b+!K?}$nuSG(yq0tv~E!Y(4ODL-EFXQe4h!g~X z$Eh)Q0qhEjg8fh24MUF{VBuc{p`z)AR?=>W1Rx3_5>5s%At*kP@LOFA{RZOe*`o6% Rsc8TJ002ovPDHLkV1myqAAkS= literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/soda.png.import b/source/Items_Final/Item_Sprites/soda.png.import new file mode 100644 index 00000000..5da22444 --- /dev/null +++ b/source/Items_Final/Item_Sprites/soda.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgtydwnlm8cga" +path="res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/soda.png" +dest_files=["res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.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/source/Items_Final/Item_Sprites/spatula.png b/source/Items_Final/Item_Sprites/spatula.png new file mode 100644 index 0000000000000000000000000000000000000000..f675b6ab805d62e6fe93d54269c1062fd765186b GIT binary patch literal 555 zcmV+`0@VG9P)Px$nO22>J+oRcdE4qFr0IlTcOgXlv3RY1Ko+)IW9G$7K-c|*xsKR>NJpDi( zNJ6xtb9T3D?9^TX5cn=A_Cypp4!^p1mN=W!ho!Alt|);YNc#I9zS~6 zGgmBu+WQWH?^4=w4G2J|(P4RI6@X74-tcbsb_%UME`X08E{p7+O-th0v&VUyXL)HY1NAYOwY_3km;FOs+F<< zsaDFjew0M7p$19fD3iGuK)Cbq21FKf$k_`V+f!3>3udhEyH=K7Fp&qKTUn|Vm1BD< zthd$X%P?2NxzibNY)>scw@KpYuDSwRS$g<__E&^ txj78zhPVAjjU3?T$$rmxRMr0%z#lZ`6lR$8B8~t6002ovPDHLkV1g1K1aANU literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/spatula.png.import b/source/Items_Final/Item_Sprites/spatula.png.import new file mode 100644 index 00000000..c1e52018 --- /dev/null +++ b/source/Items_Final/Item_Sprites/spatula.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n4gexuvjvwru" +path="res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/spatula.png" +dest_files=["res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.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/source/Items_Final/Item_Sprites/spraypaint.png b/source/Items_Final/Item_Sprites/spraypaint.png new file mode 100644 index 0000000000000000000000000000000000000000..2395e8903426c690702709aa1ded3415de8bdcb1 GIT binary patch literal 527 zcmV+q0`UEbP)Px$$w@>(R9J=WmcL5^VHn51NvWWTU}_|4kSGVCgNcYsVMY|{mSg`-dqYEO5Y-gb zQb}`#IVgfl23`%KQipM%IJ^yYrsm!0t73!S?cV3thxeZ6?g1v6Xo!kN;v^c0ld%;h zgb04}f2Wb;qc7WepLBoNvG00cyQ z3Z)uJKVC>ePyu-SG2&wwoSqy>`h`|D06-Fg3P8AGAHzVWu>t_9{A<(RdS*ANk(S6c zP!kG;I@JmzCn|tKsfI+VF6);_)&DeTr>L9I;&$SJ`+erP**3erp@7Bh1poXp8UT)a zhiz$D)UGoufX!zyBa??3pc_ypKrfmP{D zVqvceFshKujR-){=As?|P&IzGo$EB#p2l%#KOP)Px%_(?=TR9J=WmN7^hQ5eU6mXbgr1}|0;lchq;AYu;-2QjpT&_ba$Ag%3C3U&~| zO`YuQQnZ^(2OXS55Tu1dL25w@2bCyd;k48xF(P^r0|m2Ohs&M0++Ct}D24nX5Werd z_y4``eR(fXS6%;D4b_q(!_%6o=3VoG;OE`+aMd-g1TZo@tpSMlZ*#*RptBaMyPqej}FY9}Joc#n)vl4R)YZ^d$Wy2h6tHA5g=Ky4K1rF6yW~S!384aSUdGm8K z8U$c>|A-c$k)iQ^s`bj;!kVUOn)dQ(+?Kmu8JK+Yo>!wU0EmQq42}2eiD!2m7gv5B z@jI^{k=s!i#=HAR)d5sB&)CEu>2-xn_5c#12~w%8?PGR+Yy%)AL}F45DIp@SrjZgN zEkYw6uST@B+11{601@h{vmMS}w(;67)r7 z127;!Z#1J3)9VUSyd5dtPVuY(k5?m;J2k7L$ckBk-X}V+G568{PB67%04Hj(reURQ zzk*Dz;5blTU7qGQ+1*8J}H;cgck<5ipr~2*@Ty_fZGvdvInk< zL_$6@FR!L;`Dzdr073A(n}mZ^Ar)Bx^a>oRr+|C2mdkb#>7A?_L_$6?xdM@pkMOO~ zIZUZfj7O?T@R&K{BC3>I4>|q}Pt+n!g2!>EnOuPrwP-%k#`u^Nb2KoF(<>Whto+e( zy$1{kL)pEY88<-6rN|1AaF9qiNOmu0jyH_mUP=o<`j-r|nD6}g#Zn-XJ+K^u)1@;x z`4)iWorjLQtqHIxFEs#~u%tI*Pbz6Kt28wpBLluPpG|qGnx{pMbX`(PE8hiR{s$Px$c}YY;R9J=WmA^{EP!z_0ijEE@*tsG_>?Tfmg*-x@z)7JExaj8U;wHGb)~SNN zLKllp0g+O0l1Ssw!ST5CCTY^t{>i;M_)V9?<^I0&otqo@mmyU>Uw#eVXthN|q|s`d zH&OL`5fOO|BM}iXnuO|H!LPe-=2FOZuHbu(<1quPx(u8)kLZ4Ua8tDY}G?}?xX&pZ2Z{pRcntnt0t5~!!Z04LrdSTN{3tQawHesLMERp(haK(0`R z>|Ix|fM`@GfR}E-cHHEKM@fC~G8qmfT|xz}I5omfa?7WIm6lGxc3i1AH2}We*8v#z zgTly5HIRi5`vFiq?@3ztD=31eXFrP;N?;m%mbouwpiDT-If6nsi@{-z1j_DwE(5yY zFvAFR#GcmF19Wz-RG5J7&Xpz}WTJDWTmrV^%Eorx2s~%Nc3e?UX$+6_!6ExQ9>KHk px-NL$K*oq}IQ;Mq=!X9ZeFHqN1sM@5UgrP+002ovPDHLkV1jgH%*6lz literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/toothbrush.png.import b/source/Items_Final/Item_Sprites/toothbrush.png.import new file mode 100644 index 00000000..c02978ff --- /dev/null +++ b/source/Items_Final/Item_Sprites/toothbrush.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jn1r45u8tnmk" +path="res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/toothbrush.png" +dest_files=["res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.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/source/Items_Final/Item_Sprites/toyraygun.png b/source/Items_Final/Item_Sprites/toyraygun.png new file mode 100644 index 0000000000000000000000000000000000000000..316bc9b590c56e5743a3fcda5bb963b2b3212b4e GIT binary patch literal 788 zcmV+v1MB>WP)Px%&PhZ;R9J=Wl|e|8VHn4MpL0%hqr-CbEfNXALmILccHCi%A&3%2ciFi*7duJU zQ0XWgqFWKpK*!j@F2R^aVnV|m#A2U17KzI?r+ppf`}uuyn{#59_JPsYxu3KfKuW_+;yq|%+*E4 zrZ)(L0e=TG)~q%HQ#o=^ze3m5EQz>_OiC_WFc41j>2v6xz_I%Uw7~0dt0P$}idn%ooYD&XnpA0jR7~q0yu$d<0Wph>pg%z* z&(vQd9u8Frmt(0P`hd~As&EtZ@M+&Oe#+#Y;hSP~@m1 zLWH$t4=A=fyWhsD&BWl1uYg3*pCJ0GUivDRk+?Jf^y3j7if%7T&+l4Q0H3F|uJ%KP z?||MD`mqQxBKCP&0qQ2NC_s-=bFSJ}hsc})TYtSx(F_uGKtiO)+c zaH2rDzoal>%wjv2HmpPx%)Ja4^R9J=WmOo5dK^(`wk2cjXN^?c}`k0zjki@`bNbCe#2a=aA&t2l;;9v(j zI=DIz-E~nDciBi7AtY94!la zvj1$#v=fS%lGMGniLHC>YC# zk)OaOOc{tkfMO-~24b=o6j z->bsd`c~HWzy<=a14nyZP)hmuyc$BaG8B9n)XCu$bVCC$&V~$xZw3eH19`P~z zO0A|F8ukyG99Raz6`+_&nQSG%c!kzyKU-T}!s*$KG=u}dD$auR%>hmhuegtHXsA|( zyd143e*d7!51QT&Fe0mhzNUZ1+j_)z;WYRu|w#F=Ey=wRvZ}LcIiX}r)M{U7<-PZGibE> zz7Y1U2m#}J`{eK{P~6K3`4}3lJ_sRLTU`>~*&(Wxq0lGzRlHX}SNi5_lTBjd_69Uw zr4zy`Jjo{S1(SG=*aCptOEY3CH8IbGbsQxtmyVxkzg{)c4^9)QN9MoQc+=Qp`|7VsAM@_GEKbf2T Y0c%H?_82T|^Z)<=07*qoM6N<$f?%V7q5uE@ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/trenchcoat.png.import b/source/Items_Final/Item_Sprites/trenchcoat.png.import new file mode 100644 index 00000000..82b59c2d --- /dev/null +++ b/source/Items_Final/Item_Sprites/trenchcoat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dna8nprqj1ifn" +path="res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/trenchcoat.png" +dest_files=["res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.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/source/Items_Final/Item_Sprites/trowel.png b/source/Items_Final/Item_Sprites/trowel.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5d4e03736cfec6bfdbd6b8c0ea817a99196e25 GIT binary patch literal 596 zcmV-a0;~OrP)Px%4oO5oR9J=Wl)q~eVI0Ok=MPkH2_44vs>diqIheDWXH^+=PNRSQ?5MqL9*XrA{h{=-Z)vk4wy(r1v9JpY85AzMuDb zp6?6iQfO`>BjzSDBJMetI=!4VhsFKrtEW#H@%qz_HZXu$b6A+;LjdTyj$HsCHi!$| zKDw?8fL$0Nt~j~^_!Sq#e-RX&eGL#W#O+&Ga9tN&*Q1`R2IvN17e*lBK6C^aB!m)R zP!K&!SakL^r+UP<#&4i?GqR=~x|CfV@I%n%MDgynXeiZ-6s(K&6A`SJqe8_)^^kV0mSMc1Kj|YYkP(nzqPU zdElg!QaigxEUzrU3q&s`LOYNgJGl%D!(e-(?71KzdN~nE1X4jDLIbR?u6Zs5fe6(B z-~Nl4XHUJ0NkRbLW~g*A41iSQpt|(a{kLd7wD|S?2LOpgg3S-_N#4A{U#?SlK22j! zEbi5|mi+%l)`5ys(%R$5S^1Xr?4(c;bb{bC4uHd2(}Pe&5h;Kl0zmd6XXTYHL=NDC iK!N~Jj$_ifBG54m9P_&vMCz;n0000Px%ElET{R9J=Wl`&`&Q5eU6id&!@NywmZ9U=`$6DQ-G8w6?0);(EVg&N4>9Eyct z$AXB>p17nsxTJ#!rB3a&dchP7G+<4n1YKOtLEm|{m)v(z6e0iRKJLBm`~BZ{@7{x% z{#UK8H|^E+rv1<0=Fz}5j|P9=gd5&`@%Fb(T%0D!dN=qbwsx#(`N0iXI~IwnQO88< z$2*!#ogPm+aj$CzHX)v@ z;C>2fLbM0wGbn>5?t@pJ?*U4ch8V2m z`>p0PD|XVzF&g%ni(Gbq`v*e+9&K5ShJDIKgIc}K=Gro)N`vFQ4)6CL`qme9U^MJI z&sx2IZd}33MT1hMLAhvfuiTN8mLEjrq5;6>+VZ(E1$Uc~N@T!mg>F-7ymNR!t=^`P zjfoA2_P~{E3ly?37E+4Xi_AxB)Z?F(3xg(>lPx%I7vi7R9J=WRliFcQ5^qVX$%Nb&}(sMHw?+kK~oeG*>mNxXAa*2G)1AIfj(h^Z$EywC4w7hlScxkFhQ}dwk3iY z)GT=?MBHvQzzZwMj59Oi6Jz-D`3TEP^IT!KM9Cf~bx%UK&q^{wXGRqV`F$MZ_mN7Z zF+MSNMbvdLD^RBP6meV*FoPEt@8HdPzY}w2RAHJXwsLFk9h1Jjishvi z1oZTtqg0VG9BPQLG5J__zHRbSC5Zbob1ZTIz}_K$mbewr!Ug0`M*#p?L>ybzX!w;X zK>)CPKk3;0{>Sd}SNg3R5=v^eS8t9buG=L!&(Z1!H1hC`Pk7bZCok-l@{{Leoc`pyYHCO3t`ZM5}}xQVZmvQ7gFzHdSzqP;^Cb5Gy4OxiYxh%)&C z#k9Eass3jWk<(u^o6C0#Smh=nvRgt#BuSEION5UR54;I?U%8^|*A3qlc>QvNo-I59 z08B^25&)zUX}o&(0>6INkV>SR%Hw-#V_KY4RmI(r!7J;W7qRmKY!R&W|8^X^=%N$& Y13@_gzp~jW0RR9107*qoM6N<$g19Cg#Q*>R literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/yoyo.png.import b/source/Items_Final/Item_Sprites/yoyo.png.import new file mode 100644 index 00000000..7faaddd3 --- /dev/null +++ b/source/Items_Final/Item_Sprites/yoyo.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqmbec8uh8jaq" +path="res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/yoyo.png" +dest_files=["res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.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/source/item/stats_and_item_handler.gd b/source/item/stats_and_item_handler.gd index e6f7ae02..69cae725 100644 --- a/source/item/stats_and_item_handler.gd +++ b/source/item/stats_and_item_handler.gd @@ -36,4 +36,3 @@ func handle_drop(item : Item, destroy : bool) : #(queue_free() is temporary, will change later when we know whats actually going to happen with the item) if destroy : item.queue_free() pass - diff --git a/source/scenes/IteE421.tmp b/source/scenes/IteE421.tmp new file mode 100644 index 00000000..9b5a0f2a --- /dev/null +++ b/source/scenes/IteE421.tmp @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] + +[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] +[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] +script = ExtResource("1_rryau") + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") + +[node name="StatusEffectManager" type="Node2D" parent="Player"] +script = ExtResource("4_t3y7h") diff --git a/source/scenes/IteEC4C.tmp b/source/scenes/IteEC4C.tmp new file mode 100644 index 00000000..9b5a0f2a --- /dev/null +++ b/source/scenes/IteEC4C.tmp @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] + +[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] +[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] +script = ExtResource("1_rryau") + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") + +[node name="StatusEffectManager" type="Node2D" parent="Player"] +script = ExtResource("4_t3y7h") diff --git a/source/scenes/ItemTestingScene.tscn b/source/scenes/ItemTestingScene.tscn index 54ce9bd5..b7ff2b9b 100644 --- a/source/scenes/ItemTestingScene.tscn +++ b/source/scenes/ItemTestingScene.tscn @@ -1,10 +1,7 @@ -[gd_scene load_steps=7 format=3 uid="uid://csmmvcufjnsl2"] +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] [ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Resource" uid="uid://6ukslotnk4y3" path="res://DmgBuffItem.tres" id="2_blmat"] -[ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://DamageWhenOnFire.tres" id="3_h0kxt"] -[ext_resource type="Resource" uid="uid://bfaht58ucl5e2" path="res://DamageBuffWhenLowHp.tres" id="4_s3syo"] -[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Status_Effect_Manager.gd" id="2_evv0p"] [sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] @@ -12,7 +9,6 @@ [node name="Player" type="Node2D" parent="."] script = ExtResource("1_rryau") -items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt"), ExtResource("4_s3syo")]) [node name="Area2D" type="Area2D" parent="Player"] @@ -20,4 +16,4 @@ items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt"), ExtReso shape = SubResource("CircleShape2D_f54gc") [node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("4_t3y7h") +script = ExtResource("2_evv0p") diff --git a/source/scripts/Item_Advanced_Functions.gd b/source/scripts/Item_Advanced_Functions.gd index d40e0a71..66ec5a20 100644 --- a/source/scripts/Item_Advanced_Functions.gd +++ b/source/scripts/Item_Advanced_Functions.gd @@ -1,3 +1,6 @@ +#THIS IS THE TESTING VERIONS +#DELETE LATER + #class_name Item_Advanced_Functions extends Node#extend node to allow global script #THIS NEEDS TO BE SET AS A GLOBAL SCRIPT diff --git a/source/scripts/Item_Test.gd b/source/scripts/Item_Test.gd index c2c95086..3611965f 100644 --- a/source/scripts/Item_Test.gd +++ b/source/scripts/Item_Test.gd @@ -1,4 +1,6 @@ -class_name Item_Test +#LEGACY TESTING CODE +#CAN BE DELETED +#class_name Item_Test extends Resource #basic stats diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index 842c59f5..3ed91e9e 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -6,11 +6,17 @@ extends Node var maxHealth : int = 12 var damage :int = 0 -var health :int = 12 -signal onAttack(player)#This signals will emit every attack -signal onGetHit(player)#This signal will emit every time the player gets hit + + +var health :int = 0 +#signal onAttack(player)#This signals will emit every attack +#signal onGetHit(player)#This signal will emit every time the player gets hit #more signals to tell items when to trigger their effects +var onAttackFunctions : Array[Callable] +var onFireFunctions : Array[Callable] +var onHitFunctions : Array[Callable] +var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter @onready var statusEffects : StatusEffectManager = $StatusEffectManager @@ -39,7 +45,8 @@ func manage_test_input(): #press left mouse to "fire" if Input.is_action_just_pressed("mouse_0"): print("Just Fired") - onAttack.emit(self) + #onAttack.emit(self) + call_functions(onAttackFunctions) #change_health(1) #press right mouse to check damage stat if Input.is_action_just_pressed("mouse_1"): @@ -47,16 +54,27 @@ func manage_test_input(): if Input.is_action_just_pressed("ui_accept"): statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) -func get_item(item : Item_Test): +func get_item(item : Item): damage += item.damage health += item.health - if(item.onStartFunctions != ""): - Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME - if(item.onFireFunctions != ""): - onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) - if(item.onGetHitFunctions != ""): - print("new on get hit function: " + item.onGetHitFunctions) - onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) + + for i in range(item.FunctionTypes.size()): + match item.functionTypes[i]: + Item.FunctionTypes.OnStart: + Callable(Item_Functions, item.functionNames[i]).bind(self).call() + Item.FunctionTypes.OnFire: + onFireFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnHit: + onHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnGetHit: + onGetHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + #if(item.onStartFunctions != ""): + #Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME + #if(item.onFireFunctions != ""): + #onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) + #if(item.onGetHitFunctions != ""): + #print("new on get hit function: " + item.onGetHitFunctions) + #onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) func hit_object(ps: Player_Test): pass @@ -64,8 +82,13 @@ func hit_object(ps: Player_Test): func change_health(deltaHealth : float): print("Player took " + str(-deltaHealth) + " damage") health += deltaHealth - onGetHit.emit(self); + #onGetHit.emit(self); + call_functions(onGetHitFunctions) if(health < 0): print("You died fool") + +func call_functions(arr : Array[Callable]): + for i in arr: + i.call() #func give_status_effect(effect : StatusEffect, duration : float): #statusEffects.giveStatus(effect, duration) diff --git a/source/scripts/StatusEffect.gd b/source/scripts/StatusEffect.gd deleted file mode 100644 index e69de29b..00000000 From e9ee3959d929b7bde534614a911e9de97523320c Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Thu, 31 Oct 2024 19:52:54 -0400 Subject: [PATCH 052/110] Commented out test input was causing errors --- source/scripts/Player_Test.gd | 41 ++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index 3ed91e9e..1ad005b5 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -32,27 +32,28 @@ func _process(_delta: float) -> void: print("damage is " + str(damage)) func manage_test_input(): + pass #Press enter to get item (currently only the DmgBuffItem) - if Input.is_action_just_pressed("1"): - print("Gave Item " + str(items[0].resource_path)) - get_item(items[0]) - if Input.is_action_just_pressed("2"): - print("Gave Item " + str(items[1].resource_path)) - get_item(items[1]) - if Input.is_action_just_pressed("3"): - print("Gave Item " + str(items[2].resource_path)) - get_item(items[2]) - #press left mouse to "fire" - if Input.is_action_just_pressed("mouse_0"): - print("Just Fired") - #onAttack.emit(self) - call_functions(onAttackFunctions) - #change_health(1) - #press right mouse to check damage stat - if Input.is_action_just_pressed("mouse_1"): - testToggle = !testToggle - if Input.is_action_just_pressed("ui_accept"): - statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) + #if Input.is_action_just_pressed("1"): + #print("Gave Item " + str(items[0].resource_path)) + #get_item(items[0]) + #if Input.is_action_just_pressed("2"): + #print("Gave Item " + str(items[1].resource_path)) + #get_item(items[1]) + #if Input.is_action_just_pressed("3"): + #print("Gave Item " + str(items[2].resource_path)) + #get_item(items[2]) + ##press left mouse to "fire" + #if Input.is_action_just_pressed("mouse_0"): + #print("Just Fired") + ##onAttack.emit(self) + #call_functions(onAttackFunctions) + ##change_health(1) + ##press right mouse to check damage stat + #if Input.is_action_just_pressed("mouse_1"): + #testToggle = !testToggle + #if Input.is_action_just_pressed("ui_accept"): + #statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) func get_item(item : Item): damage += item.damage From e695361579946916506749c719c9663da23229ae Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Fri, 1 Nov 2024 22:26:37 -0400 Subject: [PATCH 053/110] controls menu controller input display, scaling window fix --- project.godot | 5 ++++- source/scripts/input_button.gd | 36 ++++++++++++++++++++++------------ 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/project.godot b/project.godot index e51945c5..12c555fd 100644 --- a/project.godot +++ b/project.godot @@ -17,9 +17,12 @@ config/icon="res://icon.svg" [autoload] +ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" + +[display] + window/size/mode=2 window/stretch/mode="canvas_items" -ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" [input] diff --git a/source/scripts/input_button.gd b/source/scripts/input_button.gd index 7c4afe73..3b3e7365 100644 --- a/source/scripts/input_button.gd +++ b/source/scripts/input_button.gd @@ -12,6 +12,12 @@ class_name Input_Button var inputK var inputJ +var joy_axis = [{1: "L-stick ▶", -1: "L-stick ◀"}, {1: "L-stick ▼", -1: "L-stick ▲"}, + {1: "R-stick ▶", -1: "R-stick ◀"}, {1: "R-stick ▼", -1: "R-stick ▲"}, + {1: "L2 / LT"}, {1: "R2 / RT"}] +var joy_button = ["✕ / A", "◯ / B", "▢ / X", "△ / Y", "Share", "Power", "Options", + "L3", "R3", "L1 / LB", "R1 / RB", "D-pad ▲", "D-pad ▼", "D-pad ◀", "D-pad ▶"] + func _ready() -> void: label.text = get_meta("input_name") action = label.text + str(player_num) @@ -21,10 +27,10 @@ func _ready() -> void: else: inputJ = input InputMap.action_erase_events(action) - if input_type == "Keyboard": if inputK: InputMap.action_add_event(action, inputK) else: InputMap.action_add_event(action, inputJ) + set_text() func _process(delta) -> void: var cur_input_type = get_parent().get_parent().get_meta("input_type") @@ -34,20 +40,11 @@ func _process(delta) -> void: if inputK: InputMap.action_add_event(action, inputK) else: InputMap.action_add_event(action, inputJ) input_type = cur_input_type - - if waiting == true: button.text = "Press Any Key" - if waiting == false: - for input in InputMap.action_get_events(action): - if input is InputEventKey: inputK = input - else: inputJ = input - - if input_type == "Keyboard": - if inputK: button.text = str(OS.get_keycode_string(inputK.physical_keycode)) - else: button.text = "---" - else: button.text = "wip" + set_text() func _on_button_pressed() -> void: waiting = true + button.text = "Press Any Key" func _input(event): if waiting == true: @@ -61,3 +58,18 @@ func _input(event): if input_type == "Keyboard": inputK = event else: inputJ = event waiting = false + set_text() + +func set_text(): + for input in InputMap.action_get_events(action): + if input is InputEventKey: inputK = input + else: inputJ = input + + if input_type == "Keyboard": + if inputK: button.text = str(OS.get_keycode_string(inputK.physical_keycode)) + else: button.text = "---" + else: + if inputJ is InputEventJoypadMotion: + button.text = joy_axis[inputJ.axis][int(inputJ.axis_value)] + if inputJ is InputEventJoypadButton: + button.text = joy_button[inputJ.button_index] From 04cc65e34777f81d94956539e28f3685f1bf8b74 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 13:33:20 -0400 Subject: [PATCH 054/110] Update project.godot --- project.godot | 1 + 1 file changed, 1 insertion(+) diff --git a/project.godot b/project.godot index 12c555fd..e4cf6675 100644 --- a/project.godot +++ b/project.godot @@ -113,5 +113,6 @@ Down4={ esc={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] } From 6cf144d67a17364d9fcdd4950c01a51366d74ae0 Mon Sep 17 00:00:00 2001 From: Kuthan Kukrer Date: Sat, 2 Nov 2024 13:42:49 -0400 Subject: [PATCH 055/110] added projectile movement for mage --- project.godot | 2 +- source/item/item_sprites/Frankenstein.gd | 11 -- source/scenes/dem1D13.tmp | 22 ++++ source/scenes/demo_room.tscn | 10 +- source/scenes/mage.tscn | 30 ++++++ source/scenes/mage_projectile.tscn | 18 ++++ source/scripts/Characters/Frankenstein.gd | 89 +++++++++++++++ source/scripts/Characters/Mage/Mage.gd | 101 ++++++++++++++++++ .../Characters/Mage/Mage_Projectile.gd | 45 ++++++++ source/scripts/Frankenstein.gd | 51 --------- source/scripts/Mage.gd | 81 -------------- source/scripts/player.gd | 73 ++++++++++--- 12 files changed, 369 insertions(+), 164 deletions(-) delete mode 100644 source/item/item_sprites/Frankenstein.gd create mode 100644 source/scenes/dem1D13.tmp create mode 100644 source/scenes/mage.tscn create mode 100644 source/scenes/mage_projectile.tscn create mode 100644 source/scripts/Characters/Frankenstein.gd create mode 100644 source/scripts/Characters/Mage/Mage.gd create mode 100644 source/scripts/Characters/Mage/Mage_Projectile.gd delete mode 100644 source/scripts/Frankenstein.gd delete mode 100644 source/scripts/Mage.gd diff --git a/project.godot b/project.godot index 00e9fcf9..18679f4b 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Hallow's Thief" -run/main_scene="res://source/scenes/demo_room.tscn" +run/main_scene="res://source/stages/world.tscn" config/features=PackedStringArray("4.3", "GL Compatibility") config/icon="res://icon.svg" diff --git a/source/item/item_sprites/Frankenstein.gd b/source/item/item_sprites/Frankenstein.gd deleted file mode 100644 index fae2c760..00000000 --- a/source/item/item_sprites/Frankenstein.gd +++ /dev/null @@ -1,11 +0,0 @@ -extends Node - - -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - pass # Replace with function body. - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - pass diff --git a/source/scenes/dem1D13.tmp b/source/scenes/dem1D13.tmp new file mode 100644 index 00000000..25fd6ba5 --- /dev/null +++ b/source/scenes/dem1D13.tmp @@ -0,0 +1,22 @@ +[gd_scene load_steps=3 format=3 uid="uid://diprigu67ubnb"] + +[ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] +[ext_resource type="PackedScene" uid="uid://b5bt1g0wd5co0" path="res://source/scenes/mage.tscn" id="3_h5nu7"] + +[node name="DemoRoom" type="Node2D"] + +[node name="Camera2D" type="Camera2D" parent="."] + +[node name="ColorRect" type="ColorRect" parent="."] +offset_right = 40.0 +offset_bottom = 40.0 +color = Color(1, 0, 1, 1) + +[node name="quit" type="Node2D" parent="."] +script = ExtResource("2_c3313") + +[node name="Mage" parent="." instance=ExtResource("3_h5nu7")] +position = Vector2(-225, 107) + +[node name="Mage2" parent="." instance=ExtResource("3_h5nu7")] +position = Vector2(294, 110) diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 81ed9a43..25fd6ba5 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -1,12 +1,10 @@ [gd_scene load_steps=3 format=3 uid="uid://diprigu67ubnb"] -[ext_resource type="PackedScene" uid="uid://rgfnpcsvv534" path="res://source/scenes/player.tscn" id="1_uxgo6"] [ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] +[ext_resource type="PackedScene" uid="uid://b5bt1g0wd5co0" path="res://source/scenes/mage.tscn" id="3_h5nu7"] [node name="DemoRoom" type="Node2D"] -[node name="Player" parent="." instance=ExtResource("1_uxgo6")] - [node name="Camera2D" type="Camera2D" parent="."] [node name="ColorRect" type="ColorRect" parent="."] @@ -16,3 +14,9 @@ color = Color(1, 0, 1, 1) [node name="quit" type="Node2D" parent="."] script = ExtResource("2_c3313") + +[node name="Mage" parent="." instance=ExtResource("3_h5nu7")] +position = Vector2(-225, 107) + +[node name="Mage2" parent="." instance=ExtResource("3_h5nu7")] +position = Vector2(294, 110) diff --git a/source/scenes/mage.tscn b/source/scenes/mage.tscn new file mode 100644 index 00000000..5f4f9d22 --- /dev/null +++ b/source/scenes/mage.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=6 format=3 uid="uid://b5bt1g0wd5co0"] + +[ext_resource type="Script" path="res://source/scripts/Characters/Mage/Mage.gd" id="1_o0jci"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_rwr60"] +radius = 4.47214 + +[sub_resource type="SphereMesh" id="SphereMesh_tj1lu"] + +[sub_resource type="Gradient" id="Gradient_x8asn"] +offsets = PackedFloat32Array(0, 0.772727, 0.993506, 1) +colors = PackedColorArray(0.662027, 0.149798, 0.647956, 1, 0.0722162, 0.44274, 0.423865, 1, 0.58611, 0.441567, 0.138476, 1, 0.00977853, 0.155621, 0.195236, 1) +metadata/_snap_count = 11 + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_qd7h3"] +gradient = SubResource("Gradient_x8asn") + +[node name="Mage" type="Node2D"] + +[node name="Mage" type="CharacterBody2D" parent="."] +script = ExtResource("1_o0jci") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Mage"] +shape = SubResource("CircleShape2D_rwr60") + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Mage"] +position = Vector2(0, 2.38419e-07) +scale = Vector2(8.50907, 8.75) +mesh = SubResource("SphereMesh_tj1lu") +texture = SubResource("GradientTexture2D_qd7h3") diff --git a/source/scenes/mage_projectile.tscn b/source/scenes/mage_projectile.tscn new file mode 100644 index 00000000..2724c5e7 --- /dev/null +++ b/source/scenes/mage_projectile.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=4 format=3 uid="uid://gnktfjr6hmjd"] + +[ext_resource type="Script" path="res://source/scripts/Characters/Mage/Mage_Projectile.gd" id="1_i0ugv"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_4mqvc"] +radius = 7.07107 + +[sub_resource type="SphereMesh" id="SphereMesh_2rtjk"] + +[node name="MageProjectile" type="Area2D"] +script = ExtResource("1_i0ugv") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_4mqvc") + +[node name="MeshInstance2D" type="MeshInstance2D" parent="."] +scale = Vector2(5.25567, 5.5) +mesh = SubResource("SphereMesh_2rtjk") diff --git a/source/scripts/Characters/Frankenstein.gd b/source/scripts/Characters/Frankenstein.gd new file mode 100644 index 00000000..e2ff94f4 --- /dev/null +++ b/source/scripts/Characters/Frankenstein.gd @@ -0,0 +1,89 @@ +extends Player + +const SPEED = 300.0 +const JUMP_VELOCITY = -400.0 +var can_attack = true +var attack_area: Area2D = Area2D.new() +var attack_area_size = 30 # Adjust as necessary +var attack_offset = Vector2(30, 0) # Base offset for the attack area +var last_facing_direction: Vector2 = Vector2(1, 0) # Default facing direction +#sprites of both character and weapon +var sprite_of_character: Sprite2D = Sprite2D.new() +var sprite_of_weapon: Sprite2D = Sprite2D.new() +@onready var player := get_parent() + +func _ready() -> void: + super() + #adds character sprite to frankenstein node + add_character_sprite() + create_attack_area() + #adds weapon sprite to collision shape + add_weapon_sprite() + +func create_attack_area(): + # Add the Area2D as a child of the player + add_child(attack_area) + #create weapon sprite + attack_area.position = attack_offset # Set initial position with offset + # Create a CollisionShape2D for the attack area + var collision_shape = CollisionShape2D.new() + var shape = CircleShape2D.new() # Change shape as desired + shape.radius = attack_area_size + collision_shape.shape = shape + attack_area.add_child(collision_shape) + + # Connect signals for body entered/exited (this is unnecessary just for detecting collisisons) + attack_area.connect("body_entered", Callable(self, "_on_attack_area_body_entered")) + attack_area.connect("body_exited", Callable(self, "_on_attack_area_body_exited")) + +func _process(delta: float) -> void: + update_attack_area_position() + +#change collisioon shape location relative to player depending on the direction the player is facing +func update_attack_area_position(): + # Update the position of the attack area based on player's facing direction + var facing_direction = player.movement.normalized() # Get the normalized movement vector + if facing_direction.length() > 0: # Check if the player is moving + last_facing_direction = facing_direction # Update last facing direction + attack_area.position = player.position + (last_facing_direction * attack_offset) + else: + # Use last facing direction when not moving + attack_area.position = player.position + (last_facing_direction * attack_offset) + +func _on_attack_area_body_entered(body): + if body is Player and body != self and can_attack: + var damage = stats.attackDamage + attack() # prints out attack and sets timer for attack_speed + body.apply_damage(damage) + print("Hit player: " + body.name + " for " + str(damage) + " damage!") + +func _on_attack_area_body_exited(body): + print(body.name + " left attack area") + +func attack(): + var attack_cooldown = stats.attackSpeed + print("Frankenstein Smashes the Ground!") + play_attack_animation() + can_attack = false + await get_tree().create_timer(attack_cooldown).timeout + can_attack = true + +func add_weapon_sprite(): + #TODO: add edit features for weapon sprite + + + attack_area.add_child(sprite_of_weapon) + pass +func add_character_sprite(): + #TODO: add edit features for weapon sprite + + + add_child(sprite_of_character) + pass + +func play_attack_animation(): + $AnimationPlayer.play("frankenstein_attack") # TODO: Implement animations for attacks +func play_hit_animation(): + $AnimationPlayer.play("frankenstein_hit") # TODO: Implement these animations +func die(): + $AnimationPlayer.play("frankenstein_attack") # TODO: Implement these animations diff --git a/source/scripts/Characters/Mage/Mage.gd b/source/scripts/Characters/Mage/Mage.gd new file mode 100644 index 00000000..1db9ec5f --- /dev/null +++ b/source/scripts/Characters/Mage/Mage.gd @@ -0,0 +1,101 @@ +extends Player + +const SPEED = 300.0 +var projectile_speed = 500.0 # Speed of the projectile +var attack_cooldown = 1.0 # Cooldown between attacks +var can_attack = true +var life_time_projectile = 3.0 # how long projectile lasts until it despawns (seconds) +var size_of_projectile = 10 # how big projectile is +var projectile_damage = 10 # Damage dealt by the projectile +#var character_sprite = preload() add this for character sprite +# Preload the MageProjectile scene +var shot_direction = Vector2.ZERO +var MageProjectileScene = preload("res://source/scenes/mage_projectile.tscn") +var move_vector = Vector2.ZERO # Add this at the class level + +func _ready() -> void: + create_character() +func _process(delta) -> void: + handle_move() +func handle_move() -> void: + movement = Vector2(Input.get_axis("Left", "Right"), Input.get_axis("Up", "Down")).normalized() + + if movement.length(): + Speed = move_toward(Speed, 10 * TOP_SPEED_FACTOR, ACCELERATION) + shot_direction = movement + else: + Speed = move_toward(Speed, 0, DECELERATION) # Gradually decrease speed to zero + + if movement.x: + velocity.x = movement.x * Speed + else: + velocity.x = move_toward(velocity.x, 0, DECELERATION) # Gradually decrease horizontal velocity to zero + + if movement.y: + velocity.y = movement.y * Speed + else: + velocity.y = move_toward(velocity.y, 0, DECELERATION) # Gradually decrease vertical velocity to zero + + move_and_slide() # Ensure velocity is passed to move_and_slide + +func update_position() -> void: + global_position = position # Ensure global_position is updated to the current position + +# Item and stats handling +func attack(): + if can_attack: + var attack_direction = (get_global_mouse_position() - global_position).normalized() + spawn_projectile(attack_direction) + play_attack_animation() + can_attack = false + await get_tree().create_timer(attack_cooldown).timeout + can_attack = true + +func spawn_projectile(direction: Vector2): + var projectile = MageProjectileScene.instantiate() + projectile.initialize(direction.normalized(), projectile_speed, projectile_damage) + add_child(projectile) # Add to scene before setting properties + # Debugging the position + print("Spawning projectile at: ", global_position) + +func create_character(): + #add_child(character_sprite) + + + pass + +# Play an attack animation +func play_attack_animation(): + #$AnimationPlayer.play("mage_attack") # Implement these + pass +func play_hit_animation(): + #$AnimationPlayer.play("mage_hit") # Implement these + pass + +func die(): + #$AnimationPlayer.play("mage_die") # Implement these + pass + +func shoot(): + if can_attack: + var projectile = MageProjectileScene.instantiate() + + # Set the projectile's position to the Mage's position + projectile.global_position = global_position + + # Calculate direction from Mage to mouse cursor + var direction = (get_global_mouse_position() - global_position).normalized() + + # Set projectile properties + projectile.direction = direction + projectile.speed = projectile_speed + projectile.life_time = life_time_projectile + projectile.size = size_of_projectile + projectile.damage = projectile_damage + + # Add the projectile to the scene + + # Start cooldown + can_attack = false + await get_tree().create_timer(attack_cooldown).timeout + can_attack = true diff --git a/source/scripts/Characters/Mage/Mage_Projectile.gd b/source/scripts/Characters/Mage/Mage_Projectile.gd new file mode 100644 index 00000000..a70e5b02 --- /dev/null +++ b/source/scripts/Characters/Mage/Mage_Projectile.gd @@ -0,0 +1,45 @@ +extends Area2D # Change from Node2D to Area2D +var direction: Vector2 +var speed: float +var life_time: float = 3.0 # Default projectile lifetime (in seconds) +var damage: int = 10 # Projectile damage +#var sprite_texture = preload("add path to sprite here") preload sprite texture +# Set up projectile with direction and speed +func initialize(_direction: Vector2, _speed: float, _damage: int): + direction = _direction.normalized() + speed = _speed + damage = _damage + # Set up collision shape + +func handle_move() -> void: + # Set a timer to queue_free the projectile after its lifetime + var timer = Timer.new() + timer.wait_time = life_time + timer.one_shot = true + timer.connect("timeout", Callable(self, "queue_free")) + add_child(timer) + timer.start() + + # Set up a sprite or visual for the projectile + var sprite = Sprite2D.new() + add_child(sprite) + + # Connect signals to handle collisions + connect("area_entered", Callable(self, "_on_area_entered")) + +func _physics_process(delta: float) -> void: + # Move the projectile each frame + position += direction * speed * delta + +# Handle collision detection +func body_shape_entered(body): + print(body.instance_id()) + print(get_parent().instance_id()) + if body is Player and body.instance_id() != get_parent().instance_id(): # Ensure it doesn't hit the mage who shot it + body.apply_damage(damage) + queue_free() # Destroy projectile on hit + +func _on_area_entered(area): + if area is Player and area.get_instance_id() != get_parent().get_instance_id(): # Ensure it doesn't hit the mage who shot it + area.apply_damage(damage) + queue_free() # Destroy projectile on hit diff --git a/source/scripts/Frankenstein.gd b/source/scripts/Frankenstein.gd deleted file mode 100644 index 92907034..00000000 --- a/source/scripts/Frankenstein.gd +++ /dev/null @@ -1,51 +0,0 @@ -extends Player - -const SPEED = 300.0 -const JUMP_VELOCITY = -400.0 -var can_attack = true -var attack_area : Area2D = Area2D.new() -var attack_area_size = 30 # should be changed depending on the size of the attack area we want -@onready var player := get_parent() - - -func _ready() -> void: - super() - create_attack_area() - -func create_attack_area(): - # Add the Area2D as a child of the player - player.add_child(attack_area) - attack_area.position = Vector2(0, 0) # Center the area on the player should be changed if the weapon is positiuoned - # Create a CollisionShape2D for the attack area - var collision_shape = CollisionShape2D.new() - var shape = CircleShape2D.new() #change shape as desired - shape.radius = attack_area_size - collision_shape.shape = shape - attack_area.add_child(collision_shape) - - # Connect signals for body entered/exited - attack_area.connect("body_entered", Callable(self, "_on_attack_area_body_entered")) - attack_area.connect("body_exited", Callable(self, "_on_attack_area_body_exited")) - -func _on_attack_area_body_entered(body): - if body is Player and body != self: - var damage = stats.attackDamage - body.apply_damage(damage) - print("Hit player: " + body.name + " for " + str(damage) + " damage!") - -func _on_attack_area_body_exited(body): - print(body.name + " left attack area") - -func attack(): - if can_attack: - var attack_cooldown = stats.attackSpeed - print("Frankenstein Smashes the Ground!") - play_attack_animation() - can_attack = false - await get_tree().create_timer(attack_cooldown).timeout - can_attack = true - -func play_attack_animation(): - $AnimationPlayer.play("frankenstein_attack") #implement animations for attacks -func die(): - $AnimationPlayer.play("frankenstein_attack") #implement animations for dying diff --git a/source/scripts/Mage.gd b/source/scripts/Mage.gd deleted file mode 100644 index d79ef070..00000000 --- a/source/scripts/Mage.gd +++ /dev/null @@ -1,81 +0,0 @@ -extends Player - -const SPEED = 300.0 -const JUMP_VELOCITY = -400.0 -var projectile_speed = 500.0 # Speed of the projectile -var attack_cooldown = 1.0 # Cooldown between attacks -var can_attack = true -var life_time_projectile = 3.0 #how long projectile lasts until it despawns - -func _ready() -> void: - super() - -func attack(): - if can_attack: - var attack_direction = movement # Direction where the player is facing - spawn_projectile(attack_direction) - play_attack_animation() - can_attack = false - await get_tree().create_timer(attack_cooldown).timeout - can_attack = true - -# Function to spawn a projectile (Area2D) -func spawn_projectile(direction: Vector2): - # Create the projectile as an Area2D - var projectile = Area2D.new() - - # Set the position of the projectile at the player's position - projectile.position = global_position - - # Create a CollisionShape2D for the projectile - var collision_shape = CollisionShape2D.new() - var shape = CircleShape2D.new() # Adjust shape if needed - shape.radius = 10 # Size of the projectile - collision_shape.shape = shape - projectile.add_child(collision_shape) - - # Add the projectile to the scene as a child of the player - add_child(projectile) - - # Set the direction and speed - projectile.set_meta("direction", direction.normalized()) - projectile.set_meta("speed", projectile_speed) - - # Connect the body_entered signal to handle collisions - projectile.connect("body_entered", Callable(self, "_on_projectile_body_entered")) - - # Start a timer to remove the projectile after a few seconds - var timer = Timer.new() - timer.wait_time = life_time_projectile # Time in seconds before the projectile is removed - timer.one_shot = true - timer.connect("timeout", Callable(projectile, "queue_free")) - projectile.add_child(timer) # Add timer as a child to keep it in the scene tree - timer.start() - -# Update the position of the projectile every frame -func _physics_process(delta: float) -> void: - for child in get_children(): - if child is Area2D: # Check if the child is a projectile - var direction = child.get_meta("direction") - var speed = child.get_meta("speed") - child.position += direction * speed * delta - - -# Detect collisions -func _on_projectile_body_entered(body): - if body is Player and body != self: - # Apply damage or any other effect here - body.apply_damage(stats.attackDamage) - print("Hit player: " + body.name + " for " + str(stats.attackDamage) + " damage!") - - # Free the projectile after collision - body.queue_free() - -# Check if projectile goes out of bounds (optional) i removed this but might be useful -func is_out_of_bounds(proj: Area2D) -> bool: - var screen_size = get_viewport().get_visible_rect().size - return proj.position.x < 0 or proj.position.x > screen_size.x or proj.position.y < 0 or proj.position.y > screen_size.y - -# Play an attack animation -func play_attack_animation(): - $AnimationPlayer.play("mage_attack") diff --git a/source/scripts/player.gd b/source/scripts/player.gd index f132b5f5..409621e8 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -5,57 +5,96 @@ class_name Player var Speed := 0.0 var movement := Vector2.ZERO - const TOP_SPEED_FACTOR := 15.0 const ACCELERATION := 15.0 +const DECELERATION := 15.0 -# Stats handling -@onready var stats_and_item_handler : Node2D = $StatsAndItemHandler -@export var base_stats : Item_Res -var stats : Stats = Stats.new() # Initialize the stats -var attack_area_player : Area2D = Area2D.new() func _ready() -> void: pass func _process(delta) -> void: + var movement2 = Vector2.ZERO + if Input.is_action_pressed('Left'): + movement2.x -= 1 + print("Moving left") + if Input.is_action_pressed('Right'): + movement2.x += 1 + print("Moving right") + if Input.is_action_pressed('Up'): + movement2.y -= 1 + print("Moving up") + if Input.is_action_pressed('Down'): + movement2.y += 1 + print("Moving down") + + movement = movement2.normalized() + print("Movement vector:", movement2) + # Apply movement logic here handle_move() func handle_move() -> void: movement = Vector2(Input.get_axis("Left", "Right"), Input.get_axis("Up", "Down")).normalized() - if movement.length(): - Speed = move_toward(Speed, stats.topSpeed * TOP_SPEED_FACTOR, ACCELERATION) + + if movement.length(): #stats.topSpeed = 10 + Speed = move_toward(Speed, 10 * TOP_SPEED_FACTOR, ACCELERATION) + else: + Speed = move_toward(Speed, 0, DECELERATION) # Gradually decrease speed to zero if movement.x: velocity.x = movement.x * Speed else: - velocity.x = move_toward(velocity.x, 0, ACCELERATION) + velocity.x = move_toward(velocity.x, 0, DECELERATION) # Gradually decrease horizontal velocity to zero if movement.y: velocity.y = movement.y * Speed else: - velocity.y = move_toward(velocity.y, 0, ACCELERATION) + velocity.y = move_toward(velocity.y, 0, DECELERATION) # Gradually decrease vertical velocity to zero - move_and_slide() -# Item and stats handling -func pickup_item(item : Item): + move_and_slide() # Ensure velocity is passed to move_and_slide + +#### item and stats handling (everything else is implemented in the stats_and_item_handler) +@onready var stats_and_item_handler: Node2D = $StatsAndItemHandler +@export var base_stats: Item_Res +var stats: Stats = Stats.new() + +func pickup_item(item: Item): stats_and_item_handler.handle_pickup(item) pass -func drop_item(item : Item, destroy : bool): +func drop_item(item: Item, destroy: bool): + #if destroy is false, you should be reparenting the item stats_and_item_handler.handle_drop(item, destroy) pass # this code is an example, its not used func apply_damage(damage): #need to implement applying damage to other player - stats.health -= damage # Subtract the damage from the player's health + stats.health -= damage # Subtract the damage from the player's health print("Player received " + str(damage) + " damage. Health: " + str(stats.health)) - + play_hit_animation() # Check if the player is dead if stats.health <= 0: - die() # Call the die() function if health reaches zero or below + die() # Call the die() function if health reaches zero or below # Handle the player's death func die() -> void: print("Player " + self.name + " has died. Needs to Be Overridden by child classes") $AnimationPlayer.play("death") queue_free() +func play_hit_animation(): + #implement this method in child classes + print("Player was Hit.") + pass + +func _input(event): + if event is InputEventMouseButton: + if event.button_index == MOUSE_BUTTON_LEFT and event.pressed: + attack() # Call the attack function on left mouse click +func attack(): + #if can_attack: + # var attack_cooldown = stats.attackSpeed + # can_attack = false + # await get_tree().create_timer(20).timeout + # can_attack = true + #add this in child Classes + print("Player Attacked!") + pass From 44cf3e069abb3755794d0568a02006c8055a86dc Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:15:02 -0400 Subject: [PATCH 056/110] Update project.godot --- project.godot | 1 - 1 file changed, 1 deletion(-) diff --git a/project.godot b/project.godot index 342d15e2..f7b6a50c 100644 --- a/project.godot +++ b/project.godot @@ -23,7 +23,6 @@ ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" window/size/mode=2 window/stretch/mode="canvas_items" -ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" [input] From 562ae66af467c77f778f05647cacba437d90c968 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:16:24 -0400 Subject: [PATCH 057/110] Revert "Update project.godot" This reverts commit 44cf3e069abb3755794d0568a02006c8055a86dc. --- project.godot | 1 + 1 file changed, 1 insertion(+) diff --git a/project.godot b/project.godot index f7b6a50c..342d15e2 100644 --- a/project.godot +++ b/project.godot @@ -23,6 +23,7 @@ ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" window/size/mode=2 window/stretch/mode="canvas_items" +ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" [input] From 249acdb5daec56014a60a349379df2c86d87a06b Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:17:08 -0400 Subject: [PATCH 058/110] Update project.godot --- project.godot | 2 -- 1 file changed, 2 deletions(-) diff --git a/project.godot b/project.godot index 342d15e2..e4cf6675 100644 --- a/project.godot +++ b/project.godot @@ -23,8 +23,6 @@ ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" window/size/mode=2 window/stretch/mode="canvas_items" -ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" - [input] From f0ce41863a44dfb65423793f7417c5f4424dc149 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:19:43 -0400 Subject: [PATCH 059/110] Revert "Update project.godot" This reverts commit 249acdb5daec56014a60a349379df2c86d87a06b. --- project.godot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/project.godot b/project.godot index e4cf6675..342d15e2 100644 --- a/project.godot +++ b/project.godot @@ -23,6 +23,8 @@ ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" window/size/mode=2 window/stretch/mode="canvas_items" +ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" + [input] From 1231d6e4b2c8b74586f72f51912d1f87c507c849 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:21:26 -0400 Subject: [PATCH 060/110] Revert "Merge pull request #13 from UVASGD/develop" This reverts commit ced76dc57175cef621f2bd3fd44163f1bcaea691, reversing changes made to 04cc65e34777f81d94956539e28f3685f1bf8b74. --- project.godot | 2 - .../Item_Resources/BakingSoda.tres | 21 ----- .../Item_Resources/BaseballBat.tres | 21 ----- .../Item_Resources/BaseballCap.tres | 19 ---- .../Item_Resources/BoxingGloves.tres | 21 ----- .../Items_Final/Item_Resources/OvenMitts.tres | 21 ----- .../Items_Final/Item_Resources/Plunger.tres | 21 ----- .../Items_Final/Item_Resources/RainBoots.tres | 21 ----- .../Item_Resources/SafetyScissors.tres | 21 ----- .../Item_Resources/ToiletPaper.tres | 21 ----- .../Item_Resources/TrenchCoat.tres | 21 ----- source/Items_Final/Item_Resources/Yo-Yo.tres | 21 ----- .../Items_Final/Item_Resources/newItem.tres | 3 - source/Items_Final/Item_Scripts/Item.gd | 42 --------- .../Item_Scripts/Item_Functions.gd | 9 -- .../Item_Sprites/Plunger pixel art.png | Bin 243 -> 0 bytes .../Item_Sprites/Plunger pixel art.png.import | 34 ------- .../Items_Final/Item_Sprites/Stick Sprite.png | Bin 344 -> 0 bytes .../Item_Sprites/Stick Sprite.png.import | 34 ------- .../Item_Sprites/Top hat pixel art.png | Bin 301 -> 0 bytes .../Item_Sprites/Top hat pixel art.png.import | 34 ------- .../Items_Final/Item_Sprites/bakingsoda.png | Bin 849 -> 0 bytes .../Item_Sprites/bakingsoda.png.import | 34 ------- .../Items_Final/Item_Sprites/baseballbat.png | Bin 625 -> 0 bytes .../Item_Sprites/baseballbat.png.import | 34 ------- .../Items_Final/Item_Sprites/baseballcap.png | Bin 642 -> 0 bytes .../Item_Sprites/baseballcap.png.import | 34 ------- .../Items_Final/Item_Sprites/boxinggloves.png | Bin 624 -> 0 bytes .../Item_Sprites/boxinggloves.png.import | 34 ------- source/Items_Final/Item_Sprites/bubblegum.png | Bin 812 -> 0 bytes .../Item_Sprites/bubblegum.png.import | 34 ------- source/Items_Final/Item_Sprites/candycane.png | Bin 472 -> 0 bytes .../Item_Sprites/candycane.png.import | 34 ------- source/Items_Final/Item_Sprites/fryingpan.png | Bin 508 -> 0 bytes .../Item_Sprites/fryingpan.png.import | 34 ------- source/Items_Final/Item_Sprites/hose.png | Bin 648 -> 0 bytes .../Items_Final/Item_Sprites/hose.png.import | 34 ------- source/Items_Final/Item_Sprites/juicebox.png | Bin 619 -> 0 bytes .../Item_Sprites/juicebox.png.import | 34 ------- .../Items_Final/Item_Sprites/magic8ball.png | Bin 451 -> 0 bytes .../Item_Sprites/magic8ball.png.import | 34 ------- source/Items_Final/Item_Sprites/marbles.png | Bin 988 -> 0 bytes .../Item_Sprites/marbles.png.import | 34 ------- source/Items_Final/Item_Sprites/mop.png | Bin 562 -> 0 bytes .../Items_Final/Item_Sprites/mop.png.import | 34 ------- source/Items_Final/Item_Sprites/ovenmitts.png | Bin 748 -> 0 bytes .../Item_Sprites/ovenmitts.png.import | 34 ------- source/Items_Final/Item_Sprites/piratehat.png | Bin 449 -> 0 bytes .../Item_Sprites/piratehat.png.import | 34 ------- .../Items_Final/Item_Sprites/pocketwatch.png | Bin 681 -> 0 bytes .../Item_Sprites/pocketwatch.png.import | 34 ------- .../Items_Final/Item_Sprites/propellerhat.png | Bin 751 -> 0 bytes .../Item_Sprites/propellerhat.png.import | 34 ------- .../Items_Final/Item_Sprites/puzzlecube.png | Bin 737 -> 0 bytes .../Item_Sprites/puzzlecube.png.import | 34 ------- source/Items_Final/Item_Sprites/rainboots.png | Bin 500 -> 0 bytes .../Item_Sprites/rainboots.png.import | 34 ------- .../Item_Sprites/rainbowlollipop.png | Bin 819 -> 0 bytes .../Item_Sprites/rainbowlollipop.png.import | 34 ------- source/Items_Final/Item_Sprites/rake.png | Bin 527 -> 0 bytes .../Items_Final/Item_Sprites/rake.png.import | 34 ------- .../Items_Final/Item_Sprites/rubberduck.png | Bin 613 -> 0 bytes .../Item_Sprites/rubberduck.png.import | 34 ------- .../Item_Sprites/safetyscissors.png | Bin 757 -> 0 bytes .../Item_Sprites/safetyscissors.png.import | 34 ------- source/Items_Final/Item_Sprites/soap.png | Bin 880 -> 0 bytes .../Items_Final/Item_Sprites/soap.png.import | 34 ------- source/Items_Final/Item_Sprites/soda.png | Bin 631 -> 0 bytes .../Items_Final/Item_Sprites/soda.png.import | 34 ------- source/Items_Final/Item_Sprites/spatula.png | Bin 555 -> 0 bytes .../Item_Sprites/spatula.png.import | 34 ------- .../Items_Final/Item_Sprites/spraypaint.png | Bin 527 -> 0 bytes .../Item_Sprites/spraypaint.png.import | 34 ------- .../Items_Final/Item_Sprites/toiletpaper.png | Bin 830 -> 0 bytes .../Item_Sprites/toiletpaper.png.import | 34 ------- .../Items_Final/Item_Sprites/toothbrush.png | Bin 447 -> 0 bytes .../Item_Sprites/toothbrush.png.import | 34 ------- source/Items_Final/Item_Sprites/toyraygun.png | Bin 788 -> 0 bytes .../Item_Sprites/toyraygun.png.import | 34 ------- .../Items_Final/Item_Sprites/trenchcoat.png | Bin 794 -> 0 bytes .../Item_Sprites/trenchcoat.png.import | 34 ------- source/Items_Final/Item_Sprites/trowel.png | Bin 596 -> 0 bytes .../Item_Sprites/trowel.png.import | 34 ------- source/Items_Final/Item_Sprites/winterhat.png | Bin 627 -> 0 bytes .../Item_Sprites/winterhat.png.import | 34 ------- source/Items_Final/Item_Sprites/yoyo.png | Bin 638 -> 0 bytes .../Items_Final/Item_Sprites/yoyo.png.import | 34 ------- source/item/stats_and_item_handler.gd | 1 + source/scenes/IteE421.tmp | 19 ---- source/scenes/IteEC4C.tmp | 19 ---- source/scenes/ItemTestingScene.tscn | 10 +- source/scripts/Item_Advanced_Functions.gd | 3 - source/scripts/Item_Test.gd | 4 +- source/scripts/Player_Test.gd | 86 +++++++----------- source/scripts/StatusEffect.gd | 0 .../StatusEffectManager.gd} | 4 +- 96 files changed, 42 insertions(+), 1613 deletions(-) delete mode 100644 source/Items_Final/Item_Resources/BakingSoda.tres delete mode 100644 source/Items_Final/Item_Resources/BaseballBat.tres delete mode 100644 source/Items_Final/Item_Resources/BaseballCap.tres delete mode 100644 source/Items_Final/Item_Resources/BoxingGloves.tres delete mode 100644 source/Items_Final/Item_Resources/OvenMitts.tres delete mode 100644 source/Items_Final/Item_Resources/Plunger.tres delete mode 100644 source/Items_Final/Item_Resources/RainBoots.tres delete mode 100644 source/Items_Final/Item_Resources/SafetyScissors.tres delete mode 100644 source/Items_Final/Item_Resources/ToiletPaper.tres delete mode 100644 source/Items_Final/Item_Resources/TrenchCoat.tres delete mode 100644 source/Items_Final/Item_Resources/Yo-Yo.tres delete mode 100644 source/Items_Final/Item_Resources/newItem.tres delete mode 100644 source/Items_Final/Item_Scripts/Item.gd delete mode 100644 source/Items_Final/Item_Scripts/Item_Functions.gd delete mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png delete mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png.import delete mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png delete mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png.import delete mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png delete mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png.import delete mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png delete mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png.import delete mode 100644 source/Items_Final/Item_Sprites/baseballbat.png delete mode 100644 source/Items_Final/Item_Sprites/baseballbat.png.import delete mode 100644 source/Items_Final/Item_Sprites/baseballcap.png delete mode 100644 source/Items_Final/Item_Sprites/baseballcap.png.import delete mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png delete mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png.import delete mode 100644 source/Items_Final/Item_Sprites/bubblegum.png delete mode 100644 source/Items_Final/Item_Sprites/bubblegum.png.import delete mode 100644 source/Items_Final/Item_Sprites/candycane.png delete mode 100644 source/Items_Final/Item_Sprites/candycane.png.import delete mode 100644 source/Items_Final/Item_Sprites/fryingpan.png delete mode 100644 source/Items_Final/Item_Sprites/fryingpan.png.import delete mode 100644 source/Items_Final/Item_Sprites/hose.png delete mode 100644 source/Items_Final/Item_Sprites/hose.png.import delete mode 100644 source/Items_Final/Item_Sprites/juicebox.png delete mode 100644 source/Items_Final/Item_Sprites/juicebox.png.import delete mode 100644 source/Items_Final/Item_Sprites/magic8ball.png delete mode 100644 source/Items_Final/Item_Sprites/magic8ball.png.import delete mode 100644 source/Items_Final/Item_Sprites/marbles.png delete mode 100644 source/Items_Final/Item_Sprites/marbles.png.import delete mode 100644 source/Items_Final/Item_Sprites/mop.png delete mode 100644 source/Items_Final/Item_Sprites/mop.png.import delete mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png delete mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png.import delete mode 100644 source/Items_Final/Item_Sprites/piratehat.png delete mode 100644 source/Items_Final/Item_Sprites/piratehat.png.import delete mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png delete mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png.import delete mode 100644 source/Items_Final/Item_Sprites/propellerhat.png delete mode 100644 source/Items_Final/Item_Sprites/propellerhat.png.import delete mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png delete mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png.import delete mode 100644 source/Items_Final/Item_Sprites/rainboots.png delete mode 100644 source/Items_Final/Item_Sprites/rainboots.png.import delete mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png delete mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png.import delete mode 100644 source/Items_Final/Item_Sprites/rake.png delete mode 100644 source/Items_Final/Item_Sprites/rake.png.import delete mode 100644 source/Items_Final/Item_Sprites/rubberduck.png delete mode 100644 source/Items_Final/Item_Sprites/rubberduck.png.import delete mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png delete mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png.import delete mode 100644 source/Items_Final/Item_Sprites/soap.png delete mode 100644 source/Items_Final/Item_Sprites/soap.png.import delete mode 100644 source/Items_Final/Item_Sprites/soda.png delete mode 100644 source/Items_Final/Item_Sprites/soda.png.import delete mode 100644 source/Items_Final/Item_Sprites/spatula.png delete mode 100644 source/Items_Final/Item_Sprites/spatula.png.import delete mode 100644 source/Items_Final/Item_Sprites/spraypaint.png delete mode 100644 source/Items_Final/Item_Sprites/spraypaint.png.import delete mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png delete mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png.import delete mode 100644 source/Items_Final/Item_Sprites/toothbrush.png delete mode 100644 source/Items_Final/Item_Sprites/toothbrush.png.import delete mode 100644 source/Items_Final/Item_Sprites/toyraygun.png delete mode 100644 source/Items_Final/Item_Sprites/toyraygun.png.import delete mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png delete mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png.import delete mode 100644 source/Items_Final/Item_Sprites/trowel.png delete mode 100644 source/Items_Final/Item_Sprites/trowel.png.import delete mode 100644 source/Items_Final/Item_Sprites/winterhat.png delete mode 100644 source/Items_Final/Item_Sprites/winterhat.png.import delete mode 100644 source/Items_Final/Item_Sprites/yoyo.png delete mode 100644 source/Items_Final/Item_Sprites/yoyo.png.import delete mode 100644 source/scenes/IteE421.tmp delete mode 100644 source/scenes/IteEC4C.tmp create mode 100644 source/scripts/StatusEffect.gd rename source/{Items_Final/Item_Scripts/Status_Effect_Manager.gd => scripts/StatusEffectManager.gd} (94%) diff --git a/project.godot b/project.godot index 342d15e2..e4cf6675 100644 --- a/project.godot +++ b/project.godot @@ -23,8 +23,6 @@ ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" window/size/mode=2 window/stretch/mode="canvas_items" -ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" - [input] diff --git a/source/Items_Final/Item_Resources/BakingSoda.tres b/source/Items_Final/Item_Resources/BakingSoda.tres deleted file mode 100644 index 0d987ea0..00000000 --- a/source/Items_Final/Item_Resources/BakingSoda.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://bbebjdnx0jnqm"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_powpt"] -[ext_resource type="Texture2D" uid="uid://b7rs3tdjkmife" path="res://source/Items_Final/Item_Sprites/bakingsoda.png" id="2_pi18r"] - -[resource] -script = ExtResource("1_powpt") -sprite = ExtResource("2_pi18r") -name = "Baking Soda" -description = "Increases Speed" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 2.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballBat.tres b/source/Items_Final/Item_Resources/BaseballBat.tres deleted file mode 100644 index 9a25dccf..00000000 --- a/source/Items_Final/Item_Resources/BaseballBat.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://chya8oc2ch8i5"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_gvtxx"] -[ext_resource type="Texture2D" uid="uid://n8kc5ecpojp0" path="res://source/Items_Final/Item_Sprites/baseballbat.png" id="2_1p0jc"] - -[resource] -script = ExtResource("1_gvtxx") -sprite = ExtResource("2_1p0jc") -name = "Baseball Bat" -description = "Increases Damage" -rarity = 0 -cost = 0 -attackDamage = 2.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballCap.tres b/source/Items_Final/Item_Resources/BaseballCap.tres deleted file mode 100644 index 27bb6478..00000000 --- a/source/Items_Final/Item_Resources/BaseballCap.tres +++ /dev/null @@ -1,19 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=2 format=3 uid="uid://dxuc2aj1us8i2"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_2ncem"] - -[resource] -script = ExtResource("1_2ncem") -name = "Baseball cap" -description = "Slightly increases health and decreases cooldown" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 1.0 -speed = 0.0 -cooldownReduction = 1.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BoxingGloves.tres b/source/Items_Final/Item_Resources/BoxingGloves.tres deleted file mode 100644 index d355c9d7..00000000 --- a/source/Items_Final/Item_Resources/BoxingGloves.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://1lo3qihmupbe"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_dphqa"] -[ext_resource type="Texture2D" uid="uid://bxu2g1kcx6k20" path="res://source/Items_Final/Item_Sprites/boxinggloves.png" id="2_ky0rr"] - -[resource] -script = ExtResource("1_dphqa") -sprite = ExtResource("2_ky0rr") -name = "Boxing Gloves" -description = "Slightly increases attack and health" -rarity = 0 -cost = 0 -attackDamage = 1.0 -attackSpeed = 0.0 -maxHealth = 1.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/OvenMitts.tres b/source/Items_Final/Item_Resources/OvenMitts.tres deleted file mode 100644 index a74d5a92..00000000 --- a/source/Items_Final/Item_Resources/OvenMitts.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://21ntxjjt6dfa"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_ombo1"] -[ext_resource type="Texture2D" uid="uid://b781y2yilgedy" path="res://source/Items_Final/Item_Sprites/ovenmitts.png" id="2_f8fv4"] - -[resource] -script = ExtResource("1_ombo1") -sprite = ExtResource("2_f8fv4") -name = "Oven Mitts" -description = "Slightly increases tenacity" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 1.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Plunger.tres b/source/Items_Final/Item_Resources/Plunger.tres deleted file mode 100644 index 1d5a361b..00000000 --- a/source/Items_Final/Item_Resources/Plunger.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b2odg7j76fhrt"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_qfutt"] -[ext_resource type="Texture2D" uid="uid://6sjrjy3ts348" path="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" id="2_qfg8s"] - -[resource] -script = ExtResource("1_qfutt") -sprite = ExtResource("2_qfg8s") -name = "Plunger" -description = "Slightly increases damage and decreases cooldown" -rarity = 0 -cost = 0 -attackDamage = 1.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 1.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/RainBoots.tres b/source/Items_Final/Item_Resources/RainBoots.tres deleted file mode 100644 index ea00e265..00000000 --- a/source/Items_Final/Item_Resources/RainBoots.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://jdhh5df8llh8"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_aeuxc"] -[ext_resource type="Texture2D" uid="uid://bldr5242uuk63" path="res://source/Items_Final/Item_Sprites/rainboots.png" id="2_x8rcl"] - -[resource] -script = ExtResource("1_aeuxc") -sprite = ExtResource("2_x8rcl") -name = "Rain Boots" -description = "Slightly increases health and speed" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 1.0 -speed = 1.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/SafetyScissors.tres b/source/Items_Final/Item_Resources/SafetyScissors.tres deleted file mode 100644 index 8cc63a9a..00000000 --- a/source/Items_Final/Item_Resources/SafetyScissors.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://dal6qgym6pnyf"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_innlo"] -[ext_resource type="Texture2D" uid="uid://b4xjbdxvn3i2l" path="res://source/Items_Final/Item_Sprites/safetyscissors.png" id="2_h66q4"] - -[resource] -script = ExtResource("1_innlo") -sprite = ExtResource("2_h66q4") -name = "SafetyScissors" -description = "Slightly increases damage and speed" -rarity = 0 -cost = 0 -attackDamage = 1.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 1.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/ToiletPaper.tres b/source/Items_Final/Item_Resources/ToiletPaper.tres deleted file mode 100644 index 4b3663ea..00000000 --- a/source/Items_Final/Item_Resources/ToiletPaper.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://8uxqwbgx5io3"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_lp8ya"] -[ext_resource type="Texture2D" uid="uid://drouo1e7b67oo" path="res://source/Items_Final/Item_Sprites/toiletpaper.png" id="2_5pmre"] - -[resource] -script = ExtResource("1_lp8ya") -sprite = ExtResource("2_5pmre") -name = "Toilet Paper" -description = "Decreases Cooldown" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 2.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/TrenchCoat.tres b/source/Items_Final/Item_Resources/TrenchCoat.tres deleted file mode 100644 index 0cfffca9..00000000 --- a/source/Items_Final/Item_Resources/TrenchCoat.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://cc563lr5i06gw"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_7l3le"] -[ext_resource type="Texture2D" uid="uid://dna8nprqj1ifn" path="res://source/Items_Final/Item_Sprites/trenchcoat.png" id="2_rr3wv"] - -[resource] -script = ExtResource("1_7l3le") -sprite = ExtResource("2_rr3wv") -name = "Trench Coat" -description = "Increases Health" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 2.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Yo-Yo.tres b/source/Items_Final/Item_Resources/Yo-Yo.tres deleted file mode 100644 index fd5ca491..00000000 --- a/source/Items_Final/Item_Resources/Yo-Yo.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b1h7kigidl5t2"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_12rx8"] -[ext_resource type="Texture2D" uid="uid://dqmbec8uh8jaq" path="res://source/Items_Final/Item_Sprites/yoyo.png" id="2_ibfa5"] - -[resource] -script = ExtResource("1_12rx8") -sprite = ExtResource("2_ibfa5") -name = "Yo-Yo" -description = "Slightly increases speed and reduces cooldown" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 1.0 -cooldownReduction = 1.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/newItem.tres b/source/Items_Final/Item_Resources/newItem.tres deleted file mode 100644 index efa9c2fc..00000000 --- a/source/Items_Final/Item_Resources/newItem.tres +++ /dev/null @@ -1,3 +0,0 @@ -[gd_resource type="Resource" format=3 uid="uid://dgttm3uig5c5p"] - -[resource] diff --git a/source/Items_Final/Item_Scripts/Item.gd b/source/Items_Final/Item_Scripts/Item.gd deleted file mode 100644 index eac8354e..00000000 --- a/source/Items_Final/Item_Scripts/Item.gd +++ /dev/null @@ -1,42 +0,0 @@ -extends Resource -class_name Item - -enum Rarity { - COMMON, - UNCOMMON, - RARE, - LEGENDARY -} - -enum FunctionTypes -{ - OnStart, - OnFire, - OnHit, - OnGetHit -} - -#Info -@export_group("General Information") -@export var sprite : Texture -@export var name : String -@export_multiline var description : String -@export var rarity : Rarity -@export var cost : int - - -#Stats -@export_group("Stats") -@export var attackDamage: float -@export var attackSpeed: float -@export var maxHealth : float -@export var speed : float -@export var cooldownReduction : float -@export var tenacity : float -@export var luck : float - - -#Functions -@export_group("Functions") -@export var functionTypes : Array[FunctionTypes] -@export var functionNames : Array[String] diff --git a/source/Items_Final/Item_Scripts/Item_Functions.gd b/source/Items_Final/Item_Scripts/Item_Functions.gd deleted file mode 100644 index 648d8fff..00000000 --- a/source/Items_Final/Item_Scripts/Item_Functions.gd +++ /dev/null @@ -1,9 +0,0 @@ -class_name Item_Functions -#Needs to be a global script -extends Node -func fire_start(ps : Player_Test): - ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) -func fire_tick_end(ps : Player_Test): - ps.change_health(-2) - if(ps.statusEffects.hasStatus("Fire")): - ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png b/source/Items_Final/Item_Sprites/Plunger pixel art.png deleted file mode 100644 index b0b25d39f518b696ca3a611062a0a631b074f32c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ydu{YLn7Rh zQzQ}&cy#{lJ{g$J;NNqL$h3(|IPWGs@#8%qsNk^5xucBX z&Zk=W!m?#23RwdA96nl}sM4}(s$g%>DSf1VXR3;!ufTf-rCPpX#f_Pb8tek!%zkPy Y%&U|%@X+%r1v;F;)78&qol`;+01H7|TmS$7 diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png.import b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import deleted file mode 100644 index 68e45fc7..00000000 --- a/source/Items_Final/Item_Sprites/Plunger pixel art.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://6sjrjy3ts348" -path="res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" -dest_files=["res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.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/source/Items_Final/Item_Sprites/Stick Sprite.png b/source/Items_Final/Item_Sprites/Stick Sprite.png deleted file mode 100644 index 5a0a9b90c68691230e30d550d9cd343c66ea9dbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmV-e0jK_nP)Px$5=lfsR9HvtmN5##KoCWfS_JQ4VP|D6*o!yuG~Pt)1#27aL~J~PAl54*3=FdC z{F&^s7D%Bq5 zsU8AAx*Px#=Sf6CR9Hvtmf;PAAPj|N4i>w(l5q{=V$5-uUV^E$Ek!{z!GDJ8`}ztkZfN{C zi@x{%Yl)L$LI|SHVd1J62k{Po8kt8oOb#>$h_p38Ob&Dae0)lmA*%!cQW`)z4Qz+% z0L>k!wGYP6xEmGIJUMYn)o|f<01#Z(WuU^?hN2EoAu0~<_<{K60MMFiwrRH`oMrq6 z&HPXTZo{1c;Oec3LyP{G;3_~Av1AN-cs9HjfU7lRm$IDhAJKu-H5~5|=xC{UX?^=J zxASQ;J_qJG0NRbHRJNQmr)!sEvliO{nmh0VD6)}-Px&3rR#lR9J=WmrqC(Q5?rVnwW^YO}j$6{y|7xgu*n)1o6<#ONYcm*g?cYhoJBj z9zr~52Z_DfLA*qV@Dfos4<(2aN+ij;88W%6hU<=wi0)yhgU)kiXLg-wtqA(UrPgO{lA^f4#KX%c?HRQifCnAxBKG>-q3!ov17uRL?gT12x618~ z^N!wg3^11J9k67J;J-c>Mt+$tTKKs!u$h&HR@DB*`act7k%9 zS;XrPh@xvRo@c6a0vPg-3uAqz0K4&+fYFOlXSxLAfe?zaZ30o0Z2==mKCw59v(A>2FjD}ZC$0Z+{4Xx=9lX+#ihpN#9qKOpIL@Lb;5sxNP$Z^#+1Lus!RTr-fmR6QBJ-dY0cYM?B zC7GRG5PiLEj79x7Sxz=k`27RwfyPe0ME-t)=^a1vVKMSyF>hB_ZI6N_*mHMS0|>SR zMJzlUCfE|BrL9Ro=rMi#$INrf$1|B`1+atBWi$kscsY>sACprx_3>NAYb@K?ZPx%D@jB_R9J=Om%ne*P!xqf7sL>Wsl=p^?BoX#a+C#>t*{`FK!V9T6(b8>5CcQ_ z6U<&Qq!I`r7CLocLQMm0lpzyJic+hvAY~xKV=&jajU8g=nT0b&wv+qi+;iW1hW}kg z)QzTHRduTX!0MxSkoB4u&JuQf-765$M9)>;~fY7GM7JO_EsQ>;P zbmGp93!u@3DF>XLJ)^aC=tF>H!BfSmVU?D3)COj(1LaIkl`fsaDlH>Z5p?3&^S9`5 zAv6O3-SNl(`1!*Kb>hkTEiI!N2>`I!J}~wNN0AT@>?;dH%mfgK*4E)M2$7jDES!hG z0)W?!pc6qCZr;ASkPERwRLW)WKBPtL{6$?Nh zHeR`aw_-{=k_IyI9G5dWW#2Uc{C2pm%j@@FW3?i-10r!EI31>G#{Qke00JSIkPR$u zD;5F}h+rlFDur`%e_z|aE+Z=19~{k<1+Ax>awex5#VjlNKgK?N^J!*{nMbm?>W)VS zJrq4S2@<7Lj@#u-&JSUun8n%Ii>$M72*V^>IlxMOiM870$f-yLKp+~$EC3H5Ut`km zsHR<=0!a-3;G6mmcxQ;-uH&zm{|q1~*)dNl^>@DDs;K*=MvHy{@K^KexE)jW00000 LNkvXXu0mjfxyBU8 diff --git a/source/Items_Final/Item_Sprites/baseballbat.png.import b/source/Items_Final/Item_Sprites/baseballbat.png.import deleted file mode 100644 index 8480338a..00000000 --- a/source/Items_Final/Item_Sprites/baseballbat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://n8kc5ecpojp0" -path="res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/baseballbat.png" -dest_files=["res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.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/source/Items_Final/Item_Sprites/baseballcap.png b/source/Items_Final/Item_Sprites/baseballcap.png deleted file mode 100644 index e904fe88b64b0d5c613ba695e52ffd34292363f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)Px%JV``BR9J=WmN7^hQ5eVn7D)yVGE|dH2XcXf5(nWjr9(>xMJI{46tPQ*Md{$u z$wilT3KR+z2Z^YNn~Ugl8FVtxA)*|_!A!C05IBe4avj?5arf>ecP|l2A^+*#yLa#Z zd*8kHeGllXuYaro*$?9Bq)X3A!oY)dBt1u00MGR)W^A{r41mGJbllWR(lCQjjLDFU zlo1`aV<9(DWc@E*0_9c9m5oTp!L({6rUL+M$3iNTXYX(8XGmr8P_-qa zhG;u5o=&>yk+-aEI~J6fjv;l}H;y0xK-IF+5YM8RcTy^o$8G(LwJ%SBrLUX5%_+H56yB_3c43@F zB8sFVAkvjt!R7T245`ETw7iIwwfUz7@a6%L3ahVBE^R>7vN$>1!TP%ruFMLeL^3oH zMbUBj0*bBU{A2?Kv%>nDce|nAcJ&KH8?ov)r<1O?(%G#l_%@l6fykIdwZc3I zrs$5fz}qG>-khSs*9g+&!rwxrjROFdrVSrNXu%L=Gv1u!g`iyUd1g8=XT4ElzM-3t z51ALpb}S*t%Gx|LCbNt>=JMu17gsVb1SJ~2R6Di(fKfa3be|)TUan?60eB&R;P2|I cum3{70j$8}NTOV_@c;k-07*qoM6N<$f|V*Nl>h($ diff --git a/source/Items_Final/Item_Sprites/baseballcap.png.import b/source/Items_Final/Item_Sprites/baseballcap.png.import deleted file mode 100644 index bdce6f60..00000000 --- a/source/Items_Final/Item_Sprites/baseballcap.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dm5a1jhe6ojrw" -path="res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/baseballcap.png" -dest_files=["res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.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/source/Items_Final/Item_Sprites/boxinggloves.png b/source/Items_Final/Item_Sprites/boxinggloves.png deleted file mode 100644 index 1c0b93388a74208416b6207347299c0af8ff4e9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)Px%DoI2^R9J=Wl{;_RP#A_E2r8z=MJNqwAXOxfWU_>mKajb5FH^Qm{DDqYe?Tf# zVrrL4*(y=b3|)y(I}xc%l}LdSmdfE$C<1ptrucG>UFcA$yqo!szxUz09K%K%{qKtX zjU?riVT)p~etedCtPN038TR96*MYIu@9wi5Q=|}U0XXKZj|1VEPu+*qlNz;dBhX6- z5LVW5%CMW-7AKhtp)tVKI8NuD3J?g95E(C*HNEX-X}&GlP2kbsD`dpx)rkdhp#Pm0 zg*aJ3|I%mJTyn0x@WZX;%@ zdL)QeTcKhV=fk(6q(dlzXtfnuZ3R=+g{5^=Pij(t&^3(O4#&u8h4XySo6^*_RtFHt zyDbO3`2|+jG}m*O0s(5>MvPo(@d@Uj}IoJF(r|p6xYv zN-vv}NG&+YT!hYow`yU=e*_Supbdy(=#}(^BhNot*KDJIQojIt%I7|uO0hKn0000< KMNUMnLSTXp_#a&W diff --git a/source/Items_Final/Item_Sprites/boxinggloves.png.import b/source/Items_Final/Item_Sprites/boxinggloves.png.import deleted file mode 100644 index 773b8950..00000000 --- a/source/Items_Final/Item_Sprites/boxinggloves.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bxu2g1kcx6k20" -path="res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/boxinggloves.png" -dest_files=["res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.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/source/Items_Final/Item_Sprites/bubblegum.png b/source/Items_Final/Item_Sprites/bubblegum.png deleted file mode 100644 index 30438077f0c370ca04e06afdba12fd6aabeb310e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 812 zcmV+{1JnG8P)Px%=1D|BR9J=Wm0w6xQ5?rVi?m=dp}9R6DkwEH6%mY2=i%^#hrgZX+BI>Dvn}d>*0D&_wLTA)5m>Z?(dv? z&i#DP@0{PckXK%L<)G^3-c)sSZ|W$%bu8D3WtBA?g^A33WF|Urygkewkr`sHBCS z*~{=)w;>&_*5a36l=gJ9y|9k4HEJ;1no)A?5 zyJksrme+QsjAg|DB$n5B?|4V;#X{YLbhrYx)i&tH#$!f&uY2%byGb+{$#_;o6>KFX zSeE0ZP`|+ug5kL$-Kx^z6;JL0@CPXH1&POun5_u_@iduBFgZ)uN=m8pOlTTrTa#`; zCQY|lQl^bA&8p)uBc?}{6!?OoZMG&v7Dn%PvKe1Nni-Mb?{G9X;eO$n?gz6q!HM~w znzmY-@f85h|xM3E;eJT9xv2#bZVhM}rYLr~_$cL@YL|0i}%W z?W;RbS&7-Gi1&hTNNWIuyL>y9wMt+hfJ2hU=?s`{O)2GuJ5zTKlevV7Tazq$of;Db z>s30SMHMSx|CEQ;!8uXZfdM~`m#bo{_q;@^oL2yO52L{di(WY!Zy%loz;&sEB3m(* ztEZWN9uf2XQyu^T4-EJLH1Mnj)ETigwg7TDeVdpBV9~p(xunvSZPf=dpqQ|`+?qZm zBjGMz#yO#{NfGY`Kac?>w!7S-q~QPQR<=d~XM-NtK)ME2XOU_B^ZOJRI!{{HpuTk(>0J>fP00006P)Px$l1W5CR9J=Wmpx0vP!xtAgCL<>ODBse43TjzKrP)$!Ra_f{75Rav4Zw&`QSYFyzf1ibK$?oMA!)p-IVvw zJG*Or8IxgyYa6RftzQE0vNF$e$C2Zcz0eE&0`GO(((AUxs<*_dx5QRsZ|@5El6;?K zNVo?rt7)lJEh(#MsYRk<)mwcRF_Z;{ZpvnIfs1&G1Yj$Ilhts}_93U?ps@s8#Z%-I zfqW@EI}F{FS|s{G_Rm!o@+B#&X|dIq?{^qb0Yf)sd2gH9_ARH)4sJ0+BfE%SbxGx( z*{53`njPO<16%NLbPn+pt|EbOfa${~0CzXn;V!@}W^fe(;f8L?+`$%!MuRKhkr~Ko zgW|qMAzupI+1~!}TCq~Kezq0;;NBT9a=6#`-kC7+%560!wi=UKB>E3!AA3Ibe5CNP z=VRGN2LJQ22Tnw8F~bgk0!~&79Jz)K<+~sH&3j>lZ{qiI|M<1)x8oJ<0jssxVQlvR O0000Px$wn;=mR9J=WmOX32Kpcl3ONB0i5O5Mo5tJ-yhah4Klq)Xt23vfA~mcHbz)5F*!s3ahR?*faI^Jx-U13Eor0mor< z4BT(FPQxJK4goRxW8nACk90m>{Rsd&KeI#dW}|)-d`kdO8oeFf9xjPT!~O-l#ts*C zLbV2f;#mNY$QtDCZXNLHVy#sD>~YLMrCI}i3X2RZHe0h%XEIy)hJ&jV+iSl&Vwa2Q y27JS}1cZe9&s7Ene8Z&zLSo-TrvU%w*W?>?FCriV3SsU50000L diff --git a/source/Items_Final/Item_Sprites/fryingpan.png.import b/source/Items_Final/Item_Sprites/fryingpan.png.import deleted file mode 100644 index 1afdff0f..00000000 --- a/source/Items_Final/Item_Sprites/fryingpan.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bdh5om0n3ttan" -path="res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/fryingpan.png" -dest_files=["res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.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/source/Items_Final/Item_Sprites/hose.png b/source/Items_Final/Item_Sprites/hose.png deleted file mode 100644 index 821c0cec857e8b7614f06836e7cc48b50af7b5a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)Px%LPh{tdxP z>DVz8+RZpa;!a*taE4?G2#QISEvXR_KN%evDk9@@b_5S*+#{l0te-jiXe zrT($*<(X{QPN+NgdT^-q?gx2{w|2Ja9rppay(-MiDON_&_|=OBdl2e?WKtTo6K?Hn z1JFC};}3?Jz@}|QV}CGILTE*x(>JX5Z z{S#JJH>9BH5x9W>mrfU2%?3T>yAHf5kcgOg2f)he2Bl~6l*!M)x)V~?%l8b>=_L0F z)8N!iJp;-gH~_~}SuZh)kD9%E;1Ed)5cxX@ms^)b>l-)(P>Z{B|k zbs-i85WC)OZ?b=Oo_oC%pja6Zc-iLlmyZD0KRajed0Yv3Qjq#N7A0lc*4*DP!*)V( zJ#ByF==<;SPP|{a%|TWLlMX1#Fka)yzTgjrJim1BWG)3rgGic2%F*?50mLCvwV<&U iKm?JZMU9vGZ}b-!!~&?gamwES0000Px%B}qgEshyBce}~V-KG%oSHqjP z@Bik_>@cvS|4ARdtOZHe+@+hiyjl&OJ$=RUYBf=aE?x87!Xm|jm83VI(E({*{p9c@ zea(!N3qbDzjgN%13_(kWMPlSox(h8Rqi! zEdjLt0)W9If3*Q9>8EPn15tW0^RtuB0fP>N)qPJcv0shdiz7I~r8nDcR7<-9j&POv ziHQsV=k~4uP%C>ZUH)!tZUi8U*UBDm=Ibh6D|?ZkZ+~oz$4Pq&!tHG~Z3V5z&Ns{W z5SA(jV`GkRRR?rsbO;^c(l?!^biEa#Z#um(cP#__P8J}}tP^!~4@ga%Ke_z?lS6-E z=jI>22H--vVho_Y1->nq9LnO`g58I+Dt`a{9yNaOt7rQFBt+O;LV3eubS=G9@wvQy zP2)4*+X8QR3_!t1bKe&DwlJ!v-2uy52Vit`AF0PV{18Ccw2`-88^E{&5=0uenwzPu z->})pvew%&hc+*wD2Qf#Td8dM8UlkSnI@N#j`@xN{sF2l@6mIi3dsNf002ovPDHLk FV1m&P7%2b% diff --git a/source/Items_Final/Item_Sprites/juicebox.png.import b/source/Items_Final/Item_Sprites/juicebox.png.import deleted file mode 100644 index dd35366f..00000000 --- a/source/Items_Final/Item_Sprites/juicebox.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://eehdxpdnjdbn" -path="res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/juicebox.png" -dest_files=["res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.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/source/Items_Final/Item_Sprites/magic8ball.png b/source/Items_Final/Item_Sprites/magic8ball.png deleted file mode 100644 index 4b578a1d7086c4ca1d5705cf98a51f7a90220163..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmV;!0X+VRP)Px$eMv+?R9J=Wmc44jFcgJPe};mW4qZaPLn`PH{0gCcgDxFPr;QGwygiS?vR|xzLIr5UCGh~j`}0*7H$6D3?<2+PUo17XS+*WqQ|NAIdS)agztn--UK305Tp7=Kz4!GAXpr;tA62#t7mC zz`}?RhI6cz31;!c*gxHFtRSoa$o&1SXVcvXv0Jn`?E@o#$$T1*O0lQMt`UNy1z=&s zyRUs^%Jb%AN-p`aRsI&y4f<_Ar;9?e} z0Is^fz01x9dcI*-R^NI9e6D|t?Q|&VB;ACvC6En9vj%|P%R?bX@1n#d&;r=ZAP*tJ z>;+(S_LK;q{SE7o_8_X-%=sXyL&m$HDkJB+ph^hcZI~^As*1I(Y<$cC$BL+Gb3m~P tW!Z4egm+D-DxdT6t%|Kh5Jw$^egRW*$Px&mPtfGR9J=WmTzoRRT##9ZRZjicg|DQ5w0T zH1b04);vMED47H6cesT2z*Ah1Yw57P%qyoo1kXqSDDenie|S!pt0V%}?{Eq8${On1 zWjytrnz_T@p5&ijYkAOoS$8|ij0*eQlE%KZ-^qr8gJ&c>^)M9l^M1z=&+O?2YEj}5 zey2h=N4KC#+_rZ$04aMXqn@J$h17QM63@OEV9J}oys{<}SK<+NztP1|(9e`Np}P%v z4*1-XXxqD*l)V$hv(zZ>H#{ih0v{L=}E#@b!x-K+4JV$-Itf?2CjWhC5B@3fpEPe=m zZb_)5U+qgE+0q8Jejetx-PHhueC1TNSV%@p1w{bd_t*@8Avxr1!T2>n_1$jgq7v{I z0AJc`kZkGht6D7lF?ySj)sk0i=J-Jq-Ma+94gYljL-ITU+346T=R}fsyN9Y43!zK; zc{9fk{-;kn??sM^l8X7GA$} zLzC<3>DSyD=RV!OBq#E=Aok0nJnal4M^hOm%4lx3nk#^ z{Evf%LUbqlR@eoA#~IGVy=34oo0)AY7ILc>D}ftZ<(hts*K zf&GRebPu6Qz?fa=#tV=G1Y+7_Wp3!C8AKrwhW~e_DCj~_0+fKC zo?`<5nQpVOq3;y(LX@VB>i{sfI#B|C-C9Kn0O)`3Gt8~dy!idWS>%Q2lIs*Lz})IY z85u)bWz)n}a<%)P=B^pmDf&g!?C27Xw-0df#5bC_N}Nq@^eGnYfJ%@}m^-%=EbC3! z?C26@FTG~CX0eNC*^km@N0$J|6_Og*4^Z4yyc{7a79+j~6?Xsu(}omv%#vyV0000< KMNUMnLSTXgIN0g{ diff --git a/source/Items_Final/Item_Sprites/marbles.png.import b/source/Items_Final/Item_Sprites/marbles.png.import deleted file mode 100644 index d1a1e42c..00000000 --- a/source/Items_Final/Item_Sprites/marbles.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cam6hafwuwn0g" -path="res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/marbles.png" -dest_files=["res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.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/source/Items_Final/Item_Sprites/mop.png b/source/Items_Final/Item_Sprites/mop.png deleted file mode 100644 index c9d46a94bef731e51cab934786f0e826bbff5b72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)Px$>`6pHR9J=Wl`%*gQ5=WAScgs_i=ZHBmJS^pu2N6oC^$qg2qK7}L!nCvJxbvS zr9^P((nU%^P8`J{9aM^oLj(mIhzX(6wSx(P(qiFAZYXr=>rn2I!)oK*yL9nCy?gKA z``+*W9uID+$CVu&5t&pFT8x<+x-n3AQmH z31mk{#L#dbl~3(U;SkX+@OJ($I7E;@H?c=1&~5CI2n2yE69@`dA`k{1S|BVulz<9& zU;$O|YYSMWEq;`W**fNz7|-fEoL51Qz@Owxp*>x+iU^gHd{P<^%TG-5#~%t zfljz?XcvCe4Na~sZ|0@YAK9D;Dj{3oIBoJzUdV-bGJ$Sr92Aa-ClkJT55Bgt&feBL z#-=6$x27Lp{QkUXw;fJC?!<-$Q=(cdGd4AWZfK;JCOIe^kzSgVLIBlbxik8}=i<`X zI(PK-TZ7q0i|B^N+R8c*uJ3_rE|ZJo8vghC4KQ>a`wz&v(*OVf07*qoM6N<$f=6uq AqyPW_ diff --git a/source/Items_Final/Item_Sprites/mop.png.import b/source/Items_Final/Item_Sprites/mop.png.import deleted file mode 100644 index 04dddad6..00000000 --- a/source/Items_Final/Item_Sprites/mop.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c3o5u4wsuwtfj" -path="res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/mop.png" -dest_files=["res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.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/source/Items_Final/Item_Sprites/ovenmitts.png b/source/Items_Final/Item_Sprites/ovenmitts.png deleted file mode 100644 index 266d0f95a2769c2701e2a29d97b1c322851d7f9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmVPx%rb$FWR9J=WRzGjrKotKOVq%F90$9S57Y`K!Bg(>#Iz(M5AAliyzfFgHfQYr~ z#LiMNFm%Y|1<4=-F$82F;11Edp3i?%DzyV|Io+N8et+)Wvw?G*;~$6gH(`FeDN%!klEtmIul4td#mFm0HBcB zVl+FM{M$O-eqLF(W+PwT zqnUFeYal5iYk)|6x_${%|4&n9$-6Zh6(t*41Ak25b$LWH=LD*sLIeZ+%8BH}QetmH zfIx3JmcITd`zn~P{+4E=Z>g*yiOOlcZtQ(Gh-xae1AI3VYoKE+7zth}y+b5uUu;~7 z1bV}<^zfuIReWO62~jx^EZT~aMN6}BXBdHFi2YW#8@ku6*}hIFj*n&uEzM@{h+R^g z_bnCQO_Sj!c0#h4Pb79k5ln2^VMUzE0dk?4b68P@InlRNbc{u;a&n7T52W}b>J7&d z8oCG50kvb%3DK1>f&c>GsT`oVGYpSZMgg=m+ea`CIJEPx$dr3q=R9J=Wl&??2KorLxKg2Q;5R3#&#nQQ+!y`zj0!_07v%l*MNpt8;L4uga z4L5>7kpN;71hW*wYu>%PTYKxo67FNJz1#Zz+`HET1Ooq^ttNktBT>-%m$!-c^LCpA zizMYsg|CR001tlsnriDrsHiL9T>+7#Mlgc&e>wY#Uue*mm zm^|NC9>=y%I44)K4DDwFO~zHFl?0GhyJMB0BSj>sAsk1A80vp3GtvS$$rmC2j00000NkvXXu0mjf8?(Un diff --git a/source/Items_Final/Item_Sprites/piratehat.png.import b/source/Items_Final/Item_Sprites/piratehat.png.import deleted file mode 100644 index f82fe5e8..00000000 --- a/source/Items_Final/Item_Sprites/piratehat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bng36643tueog" -path="res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/piratehat.png" -dest_files=["res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.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/source/Items_Final/Item_Sprites/pocketwatch.png b/source/Items_Final/Item_Sprites/pocketwatch.png deleted file mode 100644 index 2a62e81650b35629762e1c896fb951d62b94d458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)Px%V@X6oR9J=WR=;c8Kp1_l+d-hxsU8c4Qc{YtXc1jPjkZE4G?2yMsX|LB=pQit z2M$V?l1_mvH7%6RBE?I|;zgn^m_VT5!SNJglEH}UAU^dZpX58&rAyvq-+lMJ_x;ix zaD)Ghnu<}>_c;JOc|6CDpC;%x0MxA`B_C@G2t9*GQN48k&4(8o5h6v@_c?P+US-1^ zlQYNUN!(ttOX9Y4T?wIQtRycA5y_Ic%_#tF5vw8(J%fjyv9vFeMSVZBsSxT400YZ2$6NCOsGTY+$RURE}FJ zDhX_Gj9{lFCGYO;>$qACS?Z^gQI>l8Kb?&JsuWroxO?wDfP5ypyZh*U{kU$N<#&My zA`|ORB8ucxiamP+0_gQ45{r;UPHS;bO@USkfIrPwHUYZO8pAR%Mf|fdyu6rgJOh;i z+=J`dd3cD1+rjtXK~4xDpM9O^0fi~}G<=9Xq#~%XtnN@w3}ocvMH4{0%Dvic=-U>5 zbmt5JAie{Npm)P~(Zu^Px%sYygZR9J=Wmd#64Q5c7xaiR;M2@Oos!jbUOBs5X!Mr2?FT{MbWi|8+C8?Fl4 zx~N4+>sqvE*-A8sD1rzHMqDVw#0)i8YfSuh>_fBDVmjCRIrqa_ zt4}KRrT9i~SJ(42Hh0?IJ+5{GkZe1HR+?o?Te3lTW}rMX8mVpdwN)rID8#DkKPws8Q@}w;rj`DQ~t>&4F z9|6e7;L9}6UYrIXetm_3zB$IpiOZ?8JbZMgE=WTV^WJ!;$eybZttdn*3ILa0H8cL? zn{Dhs-yA#131VG2+xZCv&>Qa*H{0KvV$q61=2sGcoz-b}R;T%Nx6JtS786K42wwnB z<^Xr!opM~gRReu<`j-+IAdI;+3kyq4uJilKz{cmFeug=!p1E%T2_ZrJrrv0ty`nm9 zL!hrff&lE6)*SnHOKYxuPV)Q@RI2k7PDDw4-E}l`Q}sh0&a0jPzB5ob67@UOQS;@+ z-~h2yPAs%s;NJI)4k1A%Cs+0bB;~pVu~bgTatiR6Zc0=4YYzM#nKjsGl_zf-?Kf}`pWq1Gp002ovPDHLkV1lA)R(1dY diff --git a/source/Items_Final/Item_Sprites/propellerhat.png.import b/source/Items_Final/Item_Sprites/propellerhat.png.import deleted file mode 100644 index c08d1f21..00000000 --- a/source/Items_Final/Item_Sprites/propellerhat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dghjg34gr46gq" -path="res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/propellerhat.png" -dest_files=["res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.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/source/Items_Final/Item_Sprites/puzzlecube.png b/source/Items_Final/Item_Sprites/puzzlecube.png deleted file mode 100644 index 29e0f53377fd273642911cf77698655b46426381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)Px%n@L1LR9J=WmQ7C+Q51%s0WD}#Cl$JA7u6KEqa+v?#uzaq`~Ve*ZVVWO4N*6& z6r(E=6I@n-gpC10ObBcZs8Kg1rlD%AA5buS2yIM(ifsdRQRdQVr&Bsx`zDjzd+x{k zOzt^%21+XFf0tx-;R&~r%8q?s2o$|vQ46w7ElP`MCj!H!VDe6K*j*{vR+SUCIz8Nf z)C0i7dtI8bXESd_`pcy?ynofmf-YPeCk#LfahyV;>pxpFfPoyJ3Gt+B;^JG;(WI@dv$y_62T`ac-_0z623Ong+_{Bf?zOO4!EYWQBPE z`_@n0xLTgc>N7cGK1snRDQrjAS)8n3@XZVJ0BRDB$QBXPE6q%EKpaaU^MU}Ii68*2 z_K<)WpYRHZ*g}}tLYT52FWHW+<8@2)DRNHo{r!_a8TXw7t@aR*zKGQO!It!6OZtUj zT~kFB+N~0;mu`s&~W29ruQa zr!OK)&V1GQ!%!%5y?KDlO?q*qAYxz`;n$FM&3;t$FOPx$u1Q2eR9J=Wma$6$Q5?s=mxmyd$gM7+)e;dRC=cB14`^s~agnxy{)gt;q6Qa7 zh1TF&N_Z7$gM(1%5V*x5g4A$&P480gz31s!6x?_F{eF-4{qVc@?)Ly+zUI`R6tg~W zx2$FDx3Y-Qu-(I;6k7^}5Fn6(sc2=#!qX@!F5GIOO;b#!1}%>)>>d!7tD1N^jn03YE00;o?n+#IFG?*IVc znq~8G=*5uhN$Ck7n~$Sb?s$T51t9wy&VrZ);%XQ%iRJoLn#jo4pVb#o^s9f+&omPN0000Px%?MXyIR9J=WmtROzVHn1L8zBv^hJOf&hzev75fj5T)<`HyL<%-yL`-Ty5e$}& zDf9=rSu%BH7opBdyx7GCg^3qI!a;0a?IHxxx`@yv=@>z#$k^A#I45yVchn-O2M&Da z{a(K3`JVUvKF)#v_}8IPlk9425o=?i7Y|jfu@-yO5cfX!12B>Z0#IAw0T9~}vY`N( z_|cOe09c;J0jREgOZz)F8Q#!+_%zx(X92`kMC29VYHSgw9ykCvH;_iM1UXSU1Axa> zOoBcfULOGALzlP@Oc-rqJRVggV$%}z45g{Ayob$a07e0D8x8|5DiP}nkayoRltxM}VCygd5N(^wCcL@=K=a8i+#Lqy>m5jzAeo6mX@5bRZ{qT| z0FosL7Y4HArZXfORscxU-%#=nHcgTa`LT|AvO99MQe(8`oR)mZalqBsBD$Mqly{qN zAM^DNtUwqrJC}hfpqDY+09ak6SrN1%B^NLk%D$ceK(W|bQc4+N03=Hgb11`D|6V1> z{IZuwN{e*$8fHLBE|7TE2l~PVUP~ z#^X_q8H6dY1V9X(LT(ByfvcEA!wMCHMF7fCB$U0RIzx-#)fFrtZxhOhq_o7mI%2C9 zb$ET4oy$a0TEc-gCEi}HC+5|m<{0KptTEce*v0FLy#RK7Mj4v|OWbx9D{;9u%+6(1 z0yeyeWOCW&NT7|1!6Kz3t6?4WkPi7(k;4Wh7>`Fac6~A9SymoC6Mt~ xl|l$1N-FE}y0EREib6!lPx$$w@>(R9J=Gl|5_1P!xvWTL?m+iWGzl)w>jNaIk`_>5%ql<(8z}dBvLzn)9 zu37BhA81qPAa2(dxezEK1tB=x4&jCvKbntgD1DbhE+OZ+=RM~H_>1Z_>msXMXW;{r zQcl;~BVQ&QhuL`$!Y+9%^>5!;<}h5%Vtq4}1%OwH z#xmzWKV9ju>_`nDB_a5tg>gGCMtUa_h!Oz1=mG$Yje-7pLMCrs92BbAEGyXuCZ+z( zgYlRxN-EG;=3r7PEXMo>@Sso?R*7vvb~Oi&n-YwT;h(1lkhc# diff --git a/source/Items_Final/Item_Sprites/rake.png.import b/source/Items_Final/Item_Sprites/rake.png.import deleted file mode 100644 index 3ee25a38..00000000 --- a/source/Items_Final/Item_Sprites/rake.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cv8o5xvrm3cm4" -path="res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/rake.png" -dest_files=["res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.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/source/Items_Final/Item_Sprites/rubberduck.png b/source/Items_Final/Item_Sprites/rubberduck.png deleted file mode 100644 index 0e3039ae7020cf8d9217fdc7e0a07b85988d6027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)Px%A4x<(R9J=WmcMHgVHn3h@tUYK)R4%?{YLhUfLVjW4HUNV{{!gAQF%A*Z16*?ZpySJ@FV8b5 z+d~Ic~iNoR$p>korK~G*i`bR%rTlkI;pt=R850p5xZS ze5l^;>^RTgdxq zS2iNqA>Eo4n>Q*MU+zishi~weX22bwI1xrAL$_ve^Zpen`R3-gP;IP$J^KdWSglG6 zToJ=@kUaSIkl+JrB||)aEcg4k>lMWEMw+^5jwS#cGjfgSZxKfh3PV^o&D8Qn+KXjg zFe*7H{*po1mQ{!WDfvhOfPx%uSrBfR9J=WmcMHgVI0Pv6JwUd&?_7q5~!s#QcXhb!3`Y~L4=x6>=1BBwu1fx z#{Iff=pg7Kbn6sImmm`DB;_Dh{E^tCwH{hXF2I z8_>wq!!B-eP2A2;08i~<%^H~jvr3A>ywEw^`t@}r3S(rlKZs|YIoGk-Mqq}R4@Jmi z>jbL{!>8kQzTdG{Ww0iY&~6m~>%@Av1LanQk^Mo4y)KfRFm!_V6Fu-cj~ibmhfb&Z z)DhFpj`N#q8$ntN3_+9>g((I!0Kj3>f2!$TE9@9xB!Y6Q!hjQq2o-6K2RMPy_R_sO z)B6Ah>vRqbu(Cf0G@Sw1_R2h96o5`W?S|OvPyb#k3|{8}z%&yc0Vo8}k3;pTp!31& zJWgU2l#Z^!3`s$q6dwy<2BF31NoVfvV*O1Nv?Fc`y8<{3ghF^J?i#=dV(y054vc*X ztwi4ontL&zA(4NCY({eZqvZ*JLc~^bCqNhE+dIjxv2RHzha?1cf zHn;MQqww4TmJMMsmB9S8h|R4$({6Y0cKbD!a?7rw@C1;}NMtdUK%-Xuvu1>dh!MvS zo&Z=jghs83?0z=dQ!9SY58Wj>56B8Hp5L?US{Qf~|R6Op$CxBA<_b zkZ};6Zb73~MP07j?thTC831JcG5YfW$@XTr0?1}0!m=Sp-%E-)ux-^00000NkvXXu0mjfrwv@? diff --git a/source/Items_Final/Item_Sprites/safetyscissors.png.import b/source/Items_Final/Item_Sprites/safetyscissors.png.import deleted file mode 100644 index f6088e3e..00000000 --- a/source/Items_Final/Item_Sprites/safetyscissors.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b4xjbdxvn3i2l" -path="res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/safetyscissors.png" -dest_files=["res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.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/source/Items_Final/Item_Sprites/soap.png b/source/Items_Final/Item_Sprites/soap.png deleted file mode 100644 index aadff60a19515e8dcd07e7f59204e0593a8705ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmV-$1CRWPP)Px&DoI2^R9J=WSI=u2K^T48M6j3A1QH6eWWkdw0ZVe&ix9kdu_s#)ym&9lrVu@e zHz_8x1U97o##K!5v@2Y4VI zj+^~kYb!=W2JsW&7_^2r%;4a#f$_~01H;~{$v0E z$W|+;U#O;_Y_)=;V%Z!Aj65i64U`Hw=DrIFn0IbXwsbfSrL7_+2}q?A$W|-1@uJo+ zlaz&J*AW+Tz;K$B5;!WBp|n*rwH5$l&QzMMtzW2!h6MD6I;I2X-hfX8Smgc50JM*i z9~H|8{4`DHQgUE+Os_8kiwmIS`{|U;IbbAIe=X2{B24 zTziG2l)$F2fiK@DCb<~oadqf}7eqj_K)_OnZo&usF!B$RbBq+onk8HJKb4~>>>YTzc zNyxk)&z{F!!)jDLFl)PC!m;3pfUeZI<3km_q3)PW!~M6&nF6dLy4p+x6~ub~`H>Ss zT;CV2myxd2xKn@thI6-LHXXp1-0O+wc^gs@0UqXUMsGd}FLF26RxI?rB66NwUj}gh z(bRFHE$SRFURsOr{Wh%sz*yUR=j`|3t)nvPx%F-b&0R9J=WmO)6{P#ng;$%X;Z9R`6}T!(`VR-_V&Vy}8_MHtp9=wKHi?7Tx! zaiy>xJc;13dQf+e&3Y?4D2zy@=%gw-SXqR0P@JGL=s|cp)MR#B^8SzJAm|4n5Az7UwY@PXYj=t_0WQ@9bq>SwdHL zKb98f9lhi6B<7|kpqI+n$*$B6&?5)fO7aJSvjKQz2_vs3@pXUCy8raKugY(RPx&)= z_tA$>r5qQ+(Ga`;jE(Gnh9}c*K{!b-m7$I1pry{S_T?cGr-xhsZVwzyKEe?IZ8XQT zVq@b3TIwFxCj@Z%VjE3~4rqtxgmPlx08qy>wD}(3EVgNT-@EYbpRu#zg?j)z2z~I$ zpWxVL#W%A>2H-w|s}T81h^9nGCGg5j+t&0dKNW!tU_t<}K->@)Aiww13jQ0!&hILK z9fWPTs$5>RkO25is49S}aA#H>PM6~fWa}GYl~fhvox0l$pV+5rH-C`#}& zm#agZq$)6q63{@(r}cnQto#E!A2b+!K?}$nuSG(yq0tv~E!Y(4ODL-EFXQe4h!g~X z$Eh)Q0qhEjg8fh24MUF{VBuc{p`z)AR?=>W1Rx3_5>5s%At*kP@LOFA{RZOe*`o6% Rsc8TJ002ovPDHLkV1myqAAkS= diff --git a/source/Items_Final/Item_Sprites/soda.png.import b/source/Items_Final/Item_Sprites/soda.png.import deleted file mode 100644 index 5da22444..00000000 --- a/source/Items_Final/Item_Sprites/soda.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dgtydwnlm8cga" -path="res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/soda.png" -dest_files=["res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.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/source/Items_Final/Item_Sprites/spatula.png b/source/Items_Final/Item_Sprites/spatula.png deleted file mode 100644 index f675b6ab805d62e6fe93d54269c1062fd765186b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)Px$nO22>J+oRcdE4qFr0IlTcOgXlv3RY1Ko+)IW9G$7K-c|*xsKR>NJpDi( zNJ6xtb9T3D?9^TX5cn=A_Cypp4!^p1mN=W!ho!Alt|);YNc#I9zS~6 zGgmBu+WQWH?^4=w4G2J|(P4RI6@X74-tcbsb_%UME`X08E{p7+O-th0v&VUyXL)HY1NAYOwY_3km;FOs+F<< zsaDFjew0M7p$19fD3iGuK)Cbq21FKf$k_`V+f!3>3udhEyH=K7Fp&qKTUn|Vm1BD< zthd$X%P?2NxzibNY)>scw@KpYuDSwRS$g<__E&^ txj78zhPVAjjU3?T$$rmxRMr0%z#lZ`6lR$8B8~t6002ovPDHLkV1g1K1aANU diff --git a/source/Items_Final/Item_Sprites/spatula.png.import b/source/Items_Final/Item_Sprites/spatula.png.import deleted file mode 100644 index c1e52018..00000000 --- a/source/Items_Final/Item_Sprites/spatula.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://n4gexuvjvwru" -path="res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/spatula.png" -dest_files=["res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.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/source/Items_Final/Item_Sprites/spraypaint.png b/source/Items_Final/Item_Sprites/spraypaint.png deleted file mode 100644 index 2395e8903426c690702709aa1ded3415de8bdcb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UEbP)Px$$w@>(R9J=WmcL5^VHn51NvWWTU}_|4kSGVCgNcYsVMY|{mSg`-dqYEO5Y-gb zQb}`#IVgfl23`%KQipM%IJ^yYrsm!0t73!S?cV3thxeZ6?g1v6Xo!kN;v^c0ld%;h zgb04}f2Wb;qc7WepLBoNvG00cyQ z3Z)uJKVC>ePyu-SG2&wwoSqy>`h`|D06-Fg3P8AGAHzVWu>t_9{A<(RdS*ANk(S6c zP!kG;I@JmzCn|tKsfI+VF6);_)&DeTr>L9I;&$SJ`+erP**3erp@7Bh1poXp8UT)a zhiz$D)UGoufX!zyBa??3pc_ypKrfmP{D zVqvceFshKujR-){=As?|P&IzGo$EB#p2l%#KOP)Px%_(?=TR9J=WmN7^hQ5eU6mXbgr1}|0;lchq;AYu;-2QjpT&_ba$Ag%3C3U&~| zO`YuQQnZ^(2OXS55Tu1dL25w@2bCyd;k48xF(P^r0|m2Ohs&M0++Ct}D24nX5Werd z_y4``eR(fXS6%;D4b_q(!_%6o=3VoG;OE`+aMd-g1TZo@tpSMlZ*#*RptBaMyPqej}FY9}Joc#n)vl4R)YZ^d$Wy2h6tHA5g=Ky4K1rF6yW~S!384aSUdGm8K z8U$c>|A-c$k)iQ^s`bj;!kVUOn)dQ(+?Kmu8JK+Yo>!wU0EmQq42}2eiD!2m7gv5B z@jI^{k=s!i#=HAR)d5sB&)CEu>2-xn_5c#12~w%8?PGR+Yy%)AL}F45DIp@SrjZgN zEkYw6uST@B+11{601@h{vmMS}w(;67)r7 z127;!Z#1J3)9VUSyd5dtPVuY(k5?m;J2k7L$ckBk-X}V+G568{PB67%04Hj(reURQ zzk*Dz;5blTU7qGQ+1*8J}H;cgck<5ipr~2*@Ty_fZGvdvInk< zL_$6@FR!L;`Dzdr073A(n}mZ^Ar)Bx^a>oRr+|C2mdkb#>7A?_L_$6?xdM@pkMOO~ zIZUZfj7O?T@R&K{BC3>I4>|q}Pt+n!g2!>EnOuPrwP-%k#`u^Nb2KoF(<>Whto+e( zy$1{kL)pEY88<-6rN|1AaF9qiNOmu0jyH_mUP=o<`j-r|nD6}g#Zn-XJ+K^u)1@;x z`4)iWorjLQtqHIxFEs#~u%tI*Pbz6Kt28wpBLluPpG|qGnx{pMbX`(PE8hiR{s$Px$c}YY;R9J=WmA^{EP!z_0ijEE@*tsG_>?Tfmg*-x@z)7JExaj8U;wHGb)~SNN zLKllp0g+O0l1Ssw!ST5CCTY^t{>i;M_)V9?<^I0&otqo@mmyU>Uw#eVXthN|q|s`d zH&OL`5fOO|BM}iXnuO|H!LPe-=2FOZuHbu(<1quPx(u8)kLZ4Ua8tDY}G?}?xX&pZ2Z{pRcntnt0t5~!!Z04LrdSTN{3tQawHesLMERp(haK(0`R z>|Ix|fM`@GfR}E-cHHEKM@fC~G8qmfT|xz}I5omfa?7WIm6lGxc3i1AH2}We*8v#z zgTly5HIRi5`vFiq?@3ztD=31eXFrP;N?;m%mbouwpiDT-If6nsi@{-z1j_DwE(5yY zFvAFR#GcmF19Wz-RG5J7&Xpz}WTJDWTmrV^%Eorx2s~%Nc3e?UX$+6_!6ExQ9>KHk px-NL$K*oq}IQ;Mq=!X9ZeFHqN1sM@5UgrP+002ovPDHLkV1jgH%*6lz diff --git a/source/Items_Final/Item_Sprites/toothbrush.png.import b/source/Items_Final/Item_Sprites/toothbrush.png.import deleted file mode 100644 index c02978ff..00000000 --- a/source/Items_Final/Item_Sprites/toothbrush.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://jn1r45u8tnmk" -path="res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/toothbrush.png" -dest_files=["res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.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/source/Items_Final/Item_Sprites/toyraygun.png b/source/Items_Final/Item_Sprites/toyraygun.png deleted file mode 100644 index 316bc9b590c56e5743a3fcda5bb963b2b3212b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmV+v1MB>WP)Px%&PhZ;R9J=Wl|e|8VHn4MpL0%hqr-CbEfNXALmILccHCi%A&3%2ciFi*7duJU zQ0XWgqFWKpK*!j@F2R^aVnV|m#A2U17KzI?r+ppf`}uuyn{#59_JPsYxu3KfKuW_+;yq|%+*E4 zrZ)(L0e=TG)~q%HQ#o=^ze3m5EQz>_OiC_WFc41j>2v6xz_I%Uw7~0dt0P$}idn%ooYD&XnpA0jR7~q0yu$d<0Wph>pg%z* z&(vQd9u8Frmt(0P`hd~As&EtZ@M+&Oe#+#Y;hSP~@m1 zLWH$t4=A=fyWhsD&BWl1uYg3*pCJ0GUivDRk+?Jf^y3j7if%7T&+l4Q0H3F|uJ%KP z?||MD`mqQxBKCP&0qQ2NC_s-=bFSJ}hsc})TYtSx(F_uGKtiO)+c zaH2rDzoal>%wjv2HmpPx%)Ja4^R9J=WmOo5dK^(`wk2cjXN^?c}`k0zjki@`bNbCe#2a=aA&t2l;;9v(j zI=DIz-E~nDciBi7AtY94!la zvj1$#v=fS%lGMGniLHC>YC# zk)OaOOc{tkfMO-~24b=o6j z->bsd`c~HWzy<=a14nyZP)hmuyc$BaG8B9n)XCu$bVCC$&V~$xZw3eH19`P~z zO0A|F8ukyG99Raz6`+_&nQSG%c!kzyKU-T}!s*$KG=u}dD$auR%>hmhuegtHXsA|( zyd143e*d7!51QT&Fe0mhzNUZ1+j_)z;WYRu|w#F=Ey=wRvZ}LcIiX}r)M{U7<-PZGibE> zz7Y1U2m#}J`{eK{P~6K3`4}3lJ_sRLTU`>~*&(Wxq0lGzRlHX}SNi5_lTBjd_69Uw zr4zy`Jjo{S1(SG=*aCptOEY3CH8IbGbsQxtmyVxkzg{)c4^9)QN9MoQc+=Qp`|7VsAM@_GEKbf2T Y0c%H?_82T|^Z)<=07*qoM6N<$f?%V7q5uE@ diff --git a/source/Items_Final/Item_Sprites/trenchcoat.png.import b/source/Items_Final/Item_Sprites/trenchcoat.png.import deleted file mode 100644 index 82b59c2d..00000000 --- a/source/Items_Final/Item_Sprites/trenchcoat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dna8nprqj1ifn" -path="res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/trenchcoat.png" -dest_files=["res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.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/source/Items_Final/Item_Sprites/trowel.png b/source/Items_Final/Item_Sprites/trowel.png deleted file mode 100644 index 8d5d4e03736cfec6bfdbd6b8c0ea817a99196e25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP)Px%4oO5oR9J=Wl)q~eVI0Ok=MPkH2_44vs>diqIheDWXH^+=PNRSQ?5MqL9*XrA{h{=-Z)vk4wy(r1v9JpY85AzMuDb zp6?6iQfO`>BjzSDBJMetI=!4VhsFKrtEW#H@%qz_HZXu$b6A+;LjdTyj$HsCHi!$| zKDw?8fL$0Nt~j~^_!Sq#e-RX&eGL#W#O+&Ga9tN&*Q1`R2IvN17e*lBK6C^aB!m)R zP!K&!SakL^r+UP<#&4i?GqR=~x|CfV@I%n%MDgynXeiZ-6s(K&6A`SJqe8_)^^kV0mSMc1Kj|YYkP(nzqPU zdElg!QaigxEUzrU3q&s`LOYNgJGl%D!(e-(?71KzdN~nE1X4jDLIbR?u6Zs5fe6(B z-~Nl4XHUJ0NkRbLW~g*A41iSQpt|(a{kLd7wD|S?2LOpgg3S-_N#4A{U#?SlK22j! zEbi5|mi+%l)`5ys(%R$5S^1Xr?4(c;bb{bC4uHd2(}Pe&5h;Kl0zmd6XXTYHL=NDC iK!N~Jj$_ifBG54m9P_&vMCz;n0000Px%ElET{R9J=Wl`&`&Q5eU6id&!@NywmZ9U=`$6DQ-G8w6?0);(EVg&N4>9Eyct z$AXB>p17nsxTJ#!rB3a&dchP7G+<4n1YKOtLEm|{m)v(z6e0iRKJLBm`~BZ{@7{x% z{#UK8H|^E+rv1<0=Fz}5j|P9=gd5&`@%Fb(T%0D!dN=qbwsx#(`N0iXI~IwnQO88< z$2*!#ogPm+aj$CzHX)v@ z;C>2fLbM0wGbn>5?t@pJ?*U4ch8V2m z`>p0PD|XVzF&g%ni(Gbq`v*e+9&K5ShJDIKgIc}K=Gro)N`vFQ4)6CL`qme9U^MJI z&sx2IZd}33MT1hMLAhvfuiTN8mLEjrq5;6>+VZ(E1$Uc~N@T!mg>F-7ymNR!t=^`P zjfoA2_P~{E3ly?37E+4Xi_AxB)Z?F(3xg(>lPx%I7vi7R9J=WRliFcQ5^qVX$%Nb&}(sMHw?+kK~oeG*>mNxXAa*2G)1AIfj(h^Z$EywC4w7hlScxkFhQ}dwk3iY z)GT=?MBHvQzzZwMj59Oi6Jz-D`3TEP^IT!KM9Cf~bx%UK&q^{wXGRqV`F$MZ_mN7Z zF+MSNMbvdLD^RBP6meV*FoPEt@8HdPzY}w2RAHJXwsLFk9h1Jjishvi z1oZTtqg0VG9BPQLG5J__zHRbSC5Zbob1ZTIz}_K$mbewr!Ug0`M*#p?L>ybzX!w;X zK>)CPKk3;0{>Sd}SNg3R5=v^eS8t9buG=L!&(Z1!H1hC`Pk7bZCok-l@{{Leoc`pyYHCO3t`ZM5}}xQVZmvQ7gFzHdSzqP;^Cb5Gy4OxiYxh%)&C z#k9Eass3jWk<(u^o6C0#Smh=nvRgt#BuSEION5UR54;I?U%8^|*A3qlc>QvNo-I59 z08B^25&)zUX}o&(0>6INkV>SR%Hw-#V_KY4RmI(r!7J;W7qRmKY!R&W|8^X^=%N$& Y13@_gzp~jW0RR9107*qoM6N<$g19Cg#Q*>R diff --git a/source/Items_Final/Item_Sprites/yoyo.png.import b/source/Items_Final/Item_Sprites/yoyo.png.import deleted file mode 100644 index 7faaddd3..00000000 --- a/source/Items_Final/Item_Sprites/yoyo.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dqmbec8uh8jaq" -path="res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/yoyo.png" -dest_files=["res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.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/source/item/stats_and_item_handler.gd b/source/item/stats_and_item_handler.gd index 69cae725..e6f7ae02 100644 --- a/source/item/stats_and_item_handler.gd +++ b/source/item/stats_and_item_handler.gd @@ -36,3 +36,4 @@ func handle_drop(item : Item, destroy : bool) : #(queue_free() is temporary, will change later when we know whats actually going to happen with the item) if destroy : item.queue_free() pass + diff --git a/source/scenes/IteE421.tmp b/source/scenes/IteE421.tmp deleted file mode 100644 index 9b5a0f2a..00000000 --- a/source/scenes/IteE421.tmp +++ /dev/null @@ -1,19 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] - -[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] - -[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] - -[node name="Node2D" type="Node2D"] - -[node name="Player" type="Node2D" parent="."] -script = ExtResource("1_rryau") - -[node name="Area2D" type="Area2D" parent="Player"] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] -shape = SubResource("CircleShape2D_f54gc") - -[node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("4_t3y7h") diff --git a/source/scenes/IteEC4C.tmp b/source/scenes/IteEC4C.tmp deleted file mode 100644 index 9b5a0f2a..00000000 --- a/source/scenes/IteEC4C.tmp +++ /dev/null @@ -1,19 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] - -[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] - -[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] - -[node name="Node2D" type="Node2D"] - -[node name="Player" type="Node2D" parent="."] -script = ExtResource("1_rryau") - -[node name="Area2D" type="Area2D" parent="Player"] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] -shape = SubResource("CircleShape2D_f54gc") - -[node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("4_t3y7h") diff --git a/source/scenes/ItemTestingScene.tscn b/source/scenes/ItemTestingScene.tscn index b7ff2b9b..54ce9bd5 100644 --- a/source/scenes/ItemTestingScene.tscn +++ b/source/scenes/ItemTestingScene.tscn @@ -1,7 +1,10 @@ -[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] +[gd_scene load_steps=7 format=3 uid="uid://csmmvcufjnsl2"] [ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Status_Effect_Manager.gd" id="2_evv0p"] +[ext_resource type="Resource" uid="uid://6ukslotnk4y3" path="res://DmgBuffItem.tres" id="2_blmat"] +[ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://DamageWhenOnFire.tres" id="3_h0kxt"] +[ext_resource type="Resource" uid="uid://bfaht58ucl5e2" path="res://DamageBuffWhenLowHp.tres" id="4_s3syo"] +[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] [sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] @@ -9,6 +12,7 @@ [node name="Player" type="Node2D" parent="."] script = ExtResource("1_rryau") +items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt"), ExtResource("4_s3syo")]) [node name="Area2D" type="Area2D" parent="Player"] @@ -16,4 +20,4 @@ script = ExtResource("1_rryau") shape = SubResource("CircleShape2D_f54gc") [node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("2_evv0p") +script = ExtResource("4_t3y7h") diff --git a/source/scripts/Item_Advanced_Functions.gd b/source/scripts/Item_Advanced_Functions.gd index 66ec5a20..d40e0a71 100644 --- a/source/scripts/Item_Advanced_Functions.gd +++ b/source/scripts/Item_Advanced_Functions.gd @@ -1,6 +1,3 @@ -#THIS IS THE TESTING VERIONS -#DELETE LATER - #class_name Item_Advanced_Functions extends Node#extend node to allow global script #THIS NEEDS TO BE SET AS A GLOBAL SCRIPT diff --git a/source/scripts/Item_Test.gd b/source/scripts/Item_Test.gd index 3611965f..c2c95086 100644 --- a/source/scripts/Item_Test.gd +++ b/source/scripts/Item_Test.gd @@ -1,6 +1,4 @@ -#LEGACY TESTING CODE -#CAN BE DELETED -#class_name Item_Test +class_name Item_Test extends Resource #basic stats diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index 1ad005b5..842c59f5 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -6,17 +6,11 @@ extends Node var maxHealth : int = 12 var damage :int = 0 - - -var health :int = 0 -#signal onAttack(player)#This signals will emit every attack -#signal onGetHit(player)#This signal will emit every time the player gets hit +var health :int = 12 +signal onAttack(player)#This signals will emit every attack +signal onGetHit(player)#This signal will emit every time the player gets hit #more signals to tell items when to trigger their effects -var onAttackFunctions : Array[Callable] -var onFireFunctions : Array[Callable] -var onHitFunctions : Array[Callable] -var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter @onready var statusEffects : StatusEffectManager = $StatusEffectManager @@ -32,50 +26,37 @@ func _process(_delta: float) -> void: print("damage is " + str(damage)) func manage_test_input(): - pass #Press enter to get item (currently only the DmgBuffItem) - #if Input.is_action_just_pressed("1"): - #print("Gave Item " + str(items[0].resource_path)) - #get_item(items[0]) - #if Input.is_action_just_pressed("2"): - #print("Gave Item " + str(items[1].resource_path)) - #get_item(items[1]) - #if Input.is_action_just_pressed("3"): - #print("Gave Item " + str(items[2].resource_path)) - #get_item(items[2]) - ##press left mouse to "fire" - #if Input.is_action_just_pressed("mouse_0"): - #print("Just Fired") - ##onAttack.emit(self) - #call_functions(onAttackFunctions) - ##change_health(1) - ##press right mouse to check damage stat - #if Input.is_action_just_pressed("mouse_1"): - #testToggle = !testToggle - #if Input.is_action_just_pressed("ui_accept"): - #statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) + if Input.is_action_just_pressed("1"): + print("Gave Item " + str(items[0].resource_path)) + get_item(items[0]) + if Input.is_action_just_pressed("2"): + print("Gave Item " + str(items[1].resource_path)) + get_item(items[1]) + if Input.is_action_just_pressed("3"): + print("Gave Item " + str(items[2].resource_path)) + get_item(items[2]) + #press left mouse to "fire" + if Input.is_action_just_pressed("mouse_0"): + print("Just Fired") + onAttack.emit(self) + #change_health(1) + #press right mouse to check damage stat + if Input.is_action_just_pressed("mouse_1"): + testToggle = !testToggle + if Input.is_action_just_pressed("ui_accept"): + statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) -func get_item(item : Item): +func get_item(item : Item_Test): damage += item.damage health += item.health - - for i in range(item.FunctionTypes.size()): - match item.functionTypes[i]: - Item.FunctionTypes.OnStart: - Callable(Item_Functions, item.functionNames[i]).bind(self).call() - Item.FunctionTypes.OnFire: - onFireFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) - Item.FunctionTypes.OnHit: - onHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) - Item.FunctionTypes.OnGetHit: - onGetHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) - #if(item.onStartFunctions != ""): - #Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME - #if(item.onFireFunctions != ""): - #onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) - #if(item.onGetHitFunctions != ""): - #print("new on get hit function: " + item.onGetHitFunctions) - #onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) + if(item.onStartFunctions != ""): + Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME + if(item.onFireFunctions != ""): + onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) + if(item.onGetHitFunctions != ""): + print("new on get hit function: " + item.onGetHitFunctions) + onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) func hit_object(ps: Player_Test): pass @@ -83,13 +64,8 @@ func hit_object(ps: Player_Test): func change_health(deltaHealth : float): print("Player took " + str(-deltaHealth) + " damage") health += deltaHealth - #onGetHit.emit(self); - call_functions(onGetHitFunctions) + onGetHit.emit(self); if(health < 0): print("You died fool") - -func call_functions(arr : Array[Callable]): - for i in arr: - i.call() #func give_status_effect(effect : StatusEffect, duration : float): #statusEffects.giveStatus(effect, duration) diff --git a/source/scripts/StatusEffect.gd b/source/scripts/StatusEffect.gd new file mode 100644 index 00000000..e69de29b diff --git a/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd b/source/scripts/StatusEffectManager.gd similarity index 94% rename from source/Items_Final/Item_Scripts/Status_Effect_Manager.gd rename to source/scripts/StatusEffectManager.gd index 8bdaa11e..8c2a370e 100644 --- a/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd +++ b/source/scripts/StatusEffectManager.gd @@ -19,8 +19,8 @@ func _ready() -> void: func setStartingStatusFunctions(ps : Player_Test): #Temperary. StatusEffect behavior should be stored elsewhere - addStatusStartFunction("Fire", Callable(Item,"fire_start").bind(ps)) - addStatusEndFunction("FireTick", Callable(Item_Functions,"fire_tick_end").bind(ps)) + addStatusStartFunction("Fire", Callable(ItemAdvancedFunctions,"fire_start").bind(ps)) + addStatusEndFunction("FireTick", Callable(ItemAdvancedFunctions,"fire_tick_end").bind(ps)) addStatusStartFunction("Damage Buff 2", (func(x : Player_Test): x.damage += 3).bind(ps)) addStatusEndFunction("Damage Buff 2", (func(x : Player_Test): x.damage -= 3).bind(ps)) From 63a49acfefe4fe7ae93378341f4b816b352cec06 Mon Sep 17 00:00:00 2001 From: kedrickfudala Date: Sat, 2 Nov 2024 14:25:24 -0400 Subject: [PATCH 061/110] scene manager --- assets/fonts-shaders/Ldfcomicsans-jj7l.ttf | Bin 0 -> 18892 bytes .../Ldfcomicsans-jj7l.ttf.import | 34 ++++++++ project.godot | 10 ++- .../scenes/game_container/game_container.gd | 77 +++++++----------- .../scenes/game_container/game_container.tscn | 8 +- .../scenes/game_container/switch_to_scene.gd | 14 ++-- source/scenes/menus/credits.gd | 4 + source/scenes/menus/credits.tscn | 39 ++++++--- source/scenes/menus/instructions.gd | 4 + source/scenes/menus/instructions.tscn | 26 +++--- source/scenes/menus/main_menu.gd | 13 +++ source/scenes/menus/main_menu.tscn | 57 ++++++++----- 12 files changed, 185 insertions(+), 101 deletions(-) create mode 100644 assets/fonts-shaders/Ldfcomicsans-jj7l.ttf create mode 100644 assets/fonts-shaders/Ldfcomicsans-jj7l.ttf.import create mode 100644 source/scenes/menus/credits.gd create mode 100644 source/scenes/menus/instructions.gd create mode 100644 source/scenes/menus/main_menu.gd diff --git a/assets/fonts-shaders/Ldfcomicsans-jj7l.ttf b/assets/fonts-shaders/Ldfcomicsans-jj7l.ttf new file mode 100644 index 0000000000000000000000000000000000000000..38b3abf939e0b51ed2699a35c774acb258560e30 GIT binary patch literal 18892 zcmb_^2b3gNm1X=NJ|i+BGE91JE3>@IsxDvERn^_q-m6<})oQ6*QmZ9(%Y!^l62eM= zV1NZ?RxqfHN(W@)r%_w3m{XDhlYBO@Xs|9k)a z_wKvzMGHg_1WUL@5QQVl%eyuo3cdMHg0SI(IGSF!xU?+XCzSF2m3ZH^b!Y$3%l`P= z3k89k!23PNP944CL;Ih*K@h|PIJW=THD~iefnF~N(%<8}bn($MSF~EVv#{Y7yw@(i z?D~sdH~*p62!edKAk1$&as23o&+q^A&v5RS_-&rR0p%%i1oy&s3gr{0&R+MG|JLfo z`_JL`ZI_)sc699DHsF->Y5e)dsiW6jA-rFBInJ%e`~2lcPaS{l<5i4(`MWswzAH|j zIlFY|eHRPDdN%$)2~1Y}&ZifOhwZ7~3x>$PTX^^lpMGNXwRP{gABi`MSK_@UP<9kQ z_>6evxgQDp#hbfFR~u;~2x0B#l!{7WQ(PP~fkdvEPHe zr-fm%MIfTv`UU-~*3aoLgn+(OFok~>Y9uH4BxwDTJlpySUElh%@b5yJ^tOH@d`Flh zm*Cpnxa;p*=jaT^lMyJrp!I8dSP-e+dX~<&o}rc2f6z$l*TQqcR^iV=nqDE;^hE2o zbbIR?bW!M|Kf`A~()uyI3D@0)&%7I--6s%wv0&1_YduCE5+cI)gc)+|sLX0j8 zY4L39H}pG#CsJHv?)j>nSn| zS*~b(fcUM)$q$7r69VDa!l>|**1hEG zLR$C|jy)$Rkm+~S#cLAsXsu_-{X&d}q`GXnxviy-9l@qC)?x1RpN$`96m=CbYLEJ$rf6ktoA!R~ zS$)0!w$Pr?CylCchw&YAzxnpC6+RTcDg3eUU#vOnFZLbwW6rqq_6UvK6#1g-xYv0z z-c8<@{Q>{={#S#A;F{oF!Dpjp^icG(F*kNq?2GY<_}|38nvP} zA@yLooW3LdTxKHkh0K3sw`3p84dnLcK9~DTKAE4$Uy*+x{{UtZYne3Y{jd^M5XOch zB{5QnEPUxp1)>+|dC$Ls-v9hXY{rLi{sH=|5QaqyUNqt>#pu2-{`cqi@UP#y+Q*5HB&6tW;i}aB(98r}%oWM4VQ>*)9GbBq?T#6H`yTe0KUnv#& zQNFu+6Y^g|>cKrBNqM(&;k=&`3-yGgI9+8n41c1oN&57Z56Oe24Mtchb;Tqjv}?aa zNv@tIRGeF8qu#ivgtjj-VK(mLx1eNl+Y*)b=gQ_WO(yRQ5^BNkJ|a>kI1$DE+ImT5 zYNm>`d%=%sC4YQLq`mz?n&$l8I)ReN+AYviBTJNj_7ideb0&zbpSL#C!-zCY=ZH~W zbyQI;2pf&D&5y>I$Tdttttv)iStts-K0g^{*J0x`Gfk?sKGILB_=owAWhGq058yCU zD7KL?SVS~XenrL`W|B}X9G?omL?oWKVcs#)>AqO@%*luxuSd3RCw-;Ym95BBwc1}S zVer?k7@iiEG%aLSY9T2shjgWPClSfO=31p&mJ+VN;R2FvqzU=%k!^O5Ro9HLYO3^1 z;v3_#51@Ej0U~LDDE2}66TuTo!i2C%I1f5(#wN)SbQLfK z^+91X1lDAcSd^&&dZJ@Ym0ZuzD_73&ENMoGMcD~xd~Bpz>n4gwxV>@ne3cW|?4;k{ zNBVjO_RcxBIz`?fQqPg};fAfLmhL${-MOOUM7A~;b{cxFqUugk3A@#E_b2lqA{l*A z%O|d-D&jq~W;Jp&{QS4W^}IyC;Zn`tH#Bfw5Q~ge8{0OWD^uc)$NLEB4!WI?P7j7l zmE(3HP%DWTVJFL z^mmB6>x4ZlcBmGGE+A!djM)pbCJXjct#O6XT9vIoZgbdWmq978G@C?oSe@-9NDxf$ zmT9zBRTU!4P~h$^z4sM`Nnty?r#xAK|N@n(K$YSUv~&bLM@^eRe%f zol$<=YV>+U0)n7eD>F zS939Z()uykOFk$P0aNZ_#m~UlW7Qg8@63lZ`2?ylIL%@|UkvO!&fo0E)nZUD5$>1B z;sL*6x!!r}&RW^JeZy$OsFyUOpEkl`u^yLHIa6jnu_qVGt8T5L=FRKvdd9w`x!`Ki zdSnB}@n<1J!@!Ourk7O@4pU-2=|uzaJ5oMz@md6nbg=dkxDrGY{5?F!kIWwxxjTVO zqR59Qit7)t$l@PddEv;>-EgqkU?-oGbn7PJGr~)l9>?GpSM|te8AfCB=7+q16N~L(`5^< zy~0R$JQFxZymyUK>2lT3foLcaWK&wT>d*(K4z3$7Y`Xbfz8kLiIU=viO)MXs_Z%h# z;&|&5G)|uo@dK8_sv-3b_nh!MXWit>_j$wY{LzJm13arowhS8M7NnkuHmNJZi=C#fj)8J)4FGOIA4(&uvi*NrG-ff-ecvLOn^txD&-8 zs`n?gh+~B{Njlb-EfkGlV#Ld4v}7%!n_kopi@65$0@U^-`7ZrOVFhan1_Zfk)qV=W zxRlM|kzp<`6Tixoq%zzI9kJ6dvN>*hOds$AM+WB?CiA{7HZti(G%AW&!*wX>itCCZ zslBE0T%cPpjz-2N*}UB~KHk^t?ui&7BNukI*_jiE&s@AdtQP98T^kOMW~SJi1Fo^m0Z2+?<eep@6hMle*~6pG zmK!J{qO4hI)6$htxn$76k5zmC(4g}7gH$mKHl;u+V)CKugMtdD!sbnEeVLZ&V~F^O zDdmndO3h~=nlCO(?3irFIkZtGGj*733DBB_emXb`!59Wuzm0SaF^sn6k8@!=bi=Xn zO<^NBxA(%qfi2w;6_~M{NM>g)84cNsYxjq0zGlkEKkaZi4Exg+ViJ<2UlVmWLygdn zD`KS@-M=t#a?@Bs6iZovLM#Hqq|(UY(JjejN{r|t+^e1(QgQu>?LD>|bn=L2TMv^D z(SH@9!XS$>%*@6{;K10bVtlUFc>$Ws>q0u{tJ}`f#_xf;}7BEMeIU97X!A zADST484GlU%5uoghTTj^oXlkka;Y9jg~fTgS+d{$05cBy35|+IuN$bkVF%?%v}8*A z_iVc}2=tPF_ot3Yhb65YnOLszAFa=k9|9}afRuN!G4Tb;Q!A)27Ud(V^@&gnFKd74fCbEX<6$g7}XXZ!t^l0(e zupEs_S`g$LZb~$xI<*G-h9*K;9gbWNCuAe;q-zUPk`&LS;TY)?zN}Ft zU)ei-v>6|A23D@?s)WOqv3TIJ;emn@ouA6}HM-;Zb9;0>$V^;k>Q2zRrzl0C6S5bP zSr#QVG?ZURIeIwOUr#p@QG&1o&-UxqSI9T$Bgh^4v1B^pak-!jCOeZH5_50fR#sG{ zGMl8aCb>j1gV=&KuEa*&2(c?0=2x`LWb@kPbi}mdyGP=E<@go#d}Qd{H~fkn@g5|% zMt2X5`jSGF>E6M$PF)g9;$-YZ zIUKSgIki@G+C0J3=7EA6_PX43_g2rbYvlE-w}o%9!FG+(JgkV}7s>)0{;JVom_s`- z_LDwj5p07RnRTz?8iYq6Dq0ZZ*>qIT7P7uoD7jrOee?clFJf2x`GapFvM$Bklv5$Z zkTeN2R;a${51dIIcj^h5{CClf1rf!M`ljYYG+W)!9n&hch??kG&!U^In`WvUu_T4U zaf(h{4>kmwOqm6G3Vb(Cd&zr|3su@HpaYFr4ug61vSeu0_al;F@@GhW-Fx1=i37hK z_x~4=0zja{H!pp_XHeMr$c9&p2FT{gd#MEM!O);AAq)Y_wgeT9p^=qkl{x#iPxuCy z&M4Ix?+1nj36zgq6>1az(_L{3WTRnfdtu}1WW%XV+!iji~(u~pbxIhmOo zA75VR_Ntby`T6;kd~S9sA(`RjYi}K3$dKys<;j#!@FST?H|j%CVc#%3CtfZ(FgVXs zjbb$%_S_IrZun*Ws172+iLl`wPpRp#!&PL3b8;rL-R*rq3NQ=O`L776w z#OBnxGm#!Y+dCMKYsQ{>s$lYz#_|1Zbzap+n%lj4xbDdD@(_7R+xS&PMOm4Kf zxc^vhwkzN%Pcoh;);CUVE|g+&B2=`beEs>)wM~=Z$S3IEfxklSp*<|_prS9R5Xxku z4tyMk`9w2NddE83#>zc1);zn4eX5-_@wnf)j-6o}cYh2Ry!a$8CpUGC#@!4hAwAih zH%tZK4k$Coc!>HU=psTwF(S4@9rKNIJapOmEF>4$G=aj=GgpDsJ~xy%@}B z+e2NoSKQZ}6KM)5^EHqBW>QrnR!WjZF_Xw2neDq=AB-Gbi4j^W9Nh&-4P5&yaP2m% ziAk&pwldpGmJ^8Z%(U%~RRna4*&s8JaeFff)QhQJLftpix zlZ8kP=X*ht+UoVGwEv-k|e@?m-rFnNUeov|#B!#t?) z)f#P^(0{H+ehLF;XE|m)vGnqbs$<06^0w;UTf4%g? zp@^+%eiUQnnxL_TO!@Hke0j*pNmL6FTRp)271QG(BO|LaJ+~bQul`K}rH;Pd^@49jRE4Nwyvfmin@iNa1=BK*e}% z%++&ACt|Qrft#|RCgT3=hw6S;yx>pKL2Ubx!AYC8)NRT5acwro^M_b>bSBe75dk~cvr0%%$HVSFi z99VE-IVwx%F#&u|UhwD~|1u1~$ugR%ZCLZ>9UEn;D6z?_Mh+#cv?2{Oubr>3`iWn8 z)oJ8lVWlU5>ZPnka$e!uwSz}4szy^P4jelD)y=0z!KTsOUAe1H{N37mBem2MY^uhV zEJKt{RpLbh5j;1%ftvR6VK-IVoEbfu^t5tsVrgbR`juPX);9*8jq5qmdYZlxv3MBr z!6yYENl*Y-t-E{?ms>MbR*O?XNevp*?JiVLyG>39j{<$)lSY0NVbX+#UYFE?kZp|hXwTnYT3;i7jd;Sy zG@hBjFY)!zwxn1T6UUYa-je%5Aw~9L#}}uXV_-Ovc6H6VU4h~D0ys6sCLjIMMix3T-dO8bbPfHH03w#*F>Gzy$aExfbpIrZ{fmnW&hUz8Vpu>gq$TcrN z!}R#Kn9Q4Fp<2ft}ODUQ-FG8|RoeB3O{U4i>J&kY4J+=}uF(-u3?K8wAf zwlijbbMS^8Gvq}nR*LGZvv#Be!GL(frk{=VJe|>1I z=gOCl?-(`|33Qy~x{9V-UNM-l=J%|OPVFvxHCDOm*_a>O9NZc)Q%ETo;L3+c<@{AK&(52NXN0#D9gV`YN$hXN-#{RJmi4| zWf+{#KWcwA%}@lCj)^cMfxuw%+wA(<^_qWrNF`EvTTk9;GAn&*(m2 z*moEKg#{TtHkDbwh$w=^!q!VWx=^)rdT<7xb9Aw1Ef*BY$`dkLswO5@v4ZbgNM)&&PkeV!b+CIJ*ly!P>(z+CnwkW z7m%}H+7iZuyL977_mqv#5#qgTfU%MzyN>0y-}LvMVFqxrOwW4jJo-)gj8GJ2QBvjV zmDung4e$vTIx`_Cp9d9@Yn+KUhM_aB%$>j}3{@eY4WjG&=8jF*!bFQ69y+s*SoUAN zdrQ}3SGNUD(;7c})6`7FG^%@MGQ;`2p_jUhdVM%Ie&$Lgp@^m$8ryp4lB0w7E?4rX zlBOSf$2*S>^CL;#HS2 z0wKI|;NV3w3V1oJ6XaCXqz07|*JLt#CvK>?M)dv*u0w58rhiPPwRG>go}KeMdzW9$ zXp6|vsp*hT&>Ygsmczi=3)f71yWfcTg>%O!wVcvqx^W=u8E?3B!eSMipSPZ*ham^j z6Zk}KKD;M@DIPPyTxDme|7XFUA!NqUt@?ltgTSIMk80$1(>K4Qf3@;&9@&)VCH~EQ zlegW{`@fd=8*h4jzQFqe(zCsDFO>O5@3{T?ChHQQ%YC)vzzcgT{ ze#si>=^0~P0J<(KFVyqL2d$wl))LT;JwIqYLJ!f$c`c|ZjSbBJlt6k~QfgTIt09H0 zGsw*;8)pesw`lK79Rb}BFRV$FdVuFu)I5@nJn}x35Iu4OD=KE_*QrZXLk2bwi3wWy z>zk{uo?iqENd_A>zAm@^TLh62)D0htAfTh|TKahb9d%xmlLE0UFKjR^bIZrNSj8ty z@9o3KfzOdsIEnoydU{hMs_fBZJuiB)wyy8aP3vdps+n*Ip^LC@qOZ$-as0eBGx5rh z={V)3kKFvuATKBV2VU{Wq3J{#L)A(P`<8E}(mFov z>XA5d20dDKSUm~B(+%Xr)H;SG=r@1$)l;EjAswkklRIX+7Dh_NBC4r1FFP}|w!XBI za|-FIpXqizGoy+IBDJEKBlEFS|NKiIhy?;Q#M%nlHMq81T*&`f zP$ndJ$AC!(?vV@0U)XL3TY!a>Sy86;!U>L|I$G%Hp{)|k=8pcPYMG&s++21wMl~R+ znL#FIf={&c#u~?~l+vtoKvgO=PmQpA2%rS(zfcW`Y$!??1uR9e{iq}3s*prc+@oZs zhlul|Za5s$6jk+O4oLZ;?>9_qfs7KR`xvP8A{m%e6#T7`&H@WQ&PpspG=tXN11>8dP} z`+uT@o_x(fz7Vl6d`p&05tISDy%HMO73tr)KYituV4fVz#ZM8_cGBPS`aObdr<0&< zQz8##ZO2m+IqUbAiPOuDm~7ZDJ^N9!UQokdTN~Zc#oIo{4~+emHMdygk_%oxh1#qb zzT`8{I%=XGIrrNu%h&YsCXSgq51xC1wW^?K&urm8fP5XZ@bwKlxi+>iM{eL*!np?@63d~Soj|59B~b^Zt*5}FOwwN>W0(U% z3q-88;UR>_)%+2*$Sh9NM<#c@%n`FjdCfs9|~O?(B{e?{A<)9!Rlz5fb>Vb+BBYN#e0m z9~*cO;VUm_0~R>7KDoUz@Hf&f1yl`LQMeM}XWBWHdHC<@15lgqw>e zb)@lFK{zRDW>!X>lLDrouuGaOfke|55xrvM;JMG7+0uw2y~Y)6;P{Yk#+{I>+llV= zHzSzQ;CiZw;@My zaw0<1u$;&tDFN+C9~W=mG9Vdlc<@cv47tD+k2P>8*tTPiR--E?A6I4B02^?x=F7Vt_`CIaM^(_DhwC)8mb5q*%o_DXF_J<kCb`wK!&lCcHt0X zWqx`n#pp&WbA%Ht=o@c6Mjj&1fOAAm5dG183~90YXBO$N*Re2IjfEZvFhw&oh7m`} zT++&=Dv{D4B|Q}a(J+7Bw3#=I7D1|^+`<+a+hBG;gCjD`-1to zy@pIoHAD6sJMp$juj)8n;DI3|syV*0wQKiVCM$6B$u>^^SMogl6FNmv_a18_Sf}lp zd2=kA8Ll+3-J6HEZ9K?5lX41L(pWj2g)nD7Q|4YjQ5?=mHz(o zyDX`yWE`ez^2oojmbc*c`%#-48N2Ji%Tocy-Tf9=rs=Cl6ANeerIBca#0mp&=>I~$ z$a~O>&uW8xos1vD;4}hsh~cq;~i%R=mg4sx#uL?2bQzNbWRkLv4Kc$xGw^N zOLIxsbuG=eLh-P9>6#u%ZVYX;Gj__%ddTzBQrH$#buw7*VorEzZM7&9U(W!spb3v? zrm0CGMN~n#@0>q=VB>xVIj}4`nqf&X(SQ+vG=!i3QR`pGH_=mVG0wRHwx!ycf2h(^ z*rIN45QO6jhP5Fb!a$XG*OHTj9@|_TwM^CRIz9JtMyTSOu&PN4PC=~poOf5f9QM3z z6BnK~ST6Un+_jnQ1#7vle{*cOCrNh~w~Y=AL}zZkWi6vMlb#whVg6o*{oiw;41IZ^RN}wp!3~(N-=WCnGtTr{-lktfscYApuK^6!rFX?+sbb zNGe|`k+r(BZ9cIKvQ-MEy9$vU^8b3EyZOXGbbRfZo>D9rU%S1rHrefEBvXwLTAX%F zIYLNJcOtB0;-QT1hmgL44E6H{QoDL6=4SM$?i|^4;^5K_N&>wQ@0TNW6L#_?0mulv z8!VYrp-gNYc1>l*+jcO_zhHUsZH99njGQADQlLIhNKCNnz+Lm_kWB?1m=>RucA5 z)=DJS%p})bo^uk6afZJS88CbJd-g=oQ|N_dwXfCW*oD2c6MVQiZclBZg^_>lDPmj` zv%F5)S!Kq@=JJ&+LDpr9t2;vDjdkVSHP+4n(1LH3kT&xMQoJfCECJ)8jBTcqeYsHF zGQd#x|1iP)&lE|0=>VVQlXoWa=+9s5-`2fj$u(3hWXWljx2wuI#Sh2r^yW>~W&-u? zbT$+VERzueR2XgjLHH>BTl5McsbjrDY!W$iond{>ER9(0(|iD`qUcjX&vJ?olff&t zYeJMvgZ#Jh`fa7cbrC#LkP9ML&uw051lWD}g}w;dy0=xu^BAuKj{?XDRKgk;nH?|< zwe`rU5=P(h1JzD_{2oIzwUATjo~X~cTrYTD$FM^xV68!tjU3Y^hVa3=&*+!!9NAnM z@WQ)Bxa^f^REZ2#7O&P$--)7X@&lb(IC?*RPTqh#n)BLNS|DempgnjCH(Oo(tVZ7< zLEH{dxJ`Gi)l>dRn*(Yutx67?;1gtgGn3X9~FyJ@HzE+ejGTgtSTf zPi+4DhHstXlfLEX;rkw3=1e`aQ3agH-&0jUw=Y`MFpo^Vd@dm#WZX`Bi*D)uF^lQ7J*5{g-_JDUgyJ#hmWYvh~6NMh6>qu%ENf3^_U_yGj z3PZKtVBa3}ZYt$iG=wfxRZ>iuv{9^SNQgD$U6hvUnbHksc%${j*KF*H=u|QiZnj3~ zkq-q)7!!%#!%He*tDLjrhA}n=W{G-kIbLe+?H)YP&^fHuc3#lEtv`V8{9Ws5@+h8Z zTVz(&RzO=+UZP-}$q)l7us+QADk@%GsH~vKS~b~biI;_KE>_URD+7{~>RTorS`^}b zG}LW_VFao|ha!SmMUiCl~|(;TB8Gl zhOu$1Fz+~SHoZumLFy5B@uf{0%bTXA!bW!Oj^4(R-RmOC1?Z7Dv%It}q-+|WI1mfk zKEyuvEAoBvJ>(jwqK`qZJUUSx?=vhwLD#&Z&XfwL(yq|3Xx!cq(Aa!5&!WP^9uY#5 zBjSF1=I)gymKE}y?7HR6)z8D<6bc)MLSjKjR;2{JS*N};{<6#Y(@L))XI{;Kzhb*x zht}RAq5_(YE;Z_g{C*h#SUcFL2bM;=Lej2TG)Y8};se0a)-&gRL>?ypf*6L1As`&| z1?{o52=&cU&mwNe3)C=L7O^<*%S38I$K-%ARvgbKM~&EIx?*SDOzHK8$eMJdZEI4S zGvz*qXx36=;aJyjBpoF0y=+fZ(UZY}!HY6hNDLcpoTLwb<=j(~%sV)LXxgf5xf5#_ zigVW&Ms3xLi(;Ow?O5vvdIsZJ_g+OozOF<0*U%EFs$e%MG6D%LsD6( z56Q*SVU`*P<2x(F?dmx^f-f9VkOAbuh_>#+n_GUfo8@SUxn0PEjROFX)F zO7keCKysc0w~1p#E%vca*%?GUhEQ3?4{y>f!0%N9`&}2!Q7(XP<#$t-~#`sKekuV~X{DUIta;yQG z4gLcSJhrMwa{bxK!E&NRWlQ%7C+H;I6j9Gfnqke17M&E0mI}kCx$i+GiUU>iFe zL>XIzzKV8u<7M9Wj7iSfcCTd$~-9wjF$l~NN zvfZGbuheqg(V~R}6CL#AtGDi3-&Zw3o&ku;G^ zr(VaY<#5Id%gioxFSoh5?bLO=+|7El-%0)}a!u5HW9@M=E5ppN#}7D*+i@W5DG26D zaM3imD`Ir_0i$)fE-JZ=vbiOv*D98tDffDkhsY5gsyZss*Oc$Ld!t`Q+q~bLxczkD z*#*~fYu?lqclI0I4EpKX8bXSe7t&xWe`tM@-h_Mt&xd(1iS~nC7{sb}*|_)yZ8P-S z9$trfWn(M0C8)9e_Qnrzw@sqwMb)fJK%|Hvv@1zUB$>9E#uPk(047p#@KiD^m)V6B zN~W_QOJzwnlCyE&R8eM4MkAn4l}NOVTvIdMg2k~VdFZzKonzw2I`PIG z`*{mJY5lhK5P3Iwmhnr#@*R)?OIr0so#|=Eg6|z1Vvl$kV`moTY?`fGGt+DGoDM~8 ziWj-wbJbqAG*EkP*HRDXLYuoj&j}~Y!OvO|@&)n>VSwQq<^$Q*`D!S$ zqe?zIoFea7KN|}9f}J05i5!`EBRE$%ymP2gjA*5#&D$c}j2E|aAuTK-*X_&LYPIH& z_jS!2tSLeF+dk>Y$+~lL&&J8RyKha3Goab|fvMtH#4TCQkh*_O$#;06nzVi|XyhsK zTb?HjH4#O?WHGzou#1tPc-!gz!RWiiwpH-b#4Jctm@uQ~L59_$C(_q8+=yL_80gdm zC$7iKZyt@mb5oF_xnTOQ`#_HBfE5 z;i`3$zzoD2pL@Db>Hq3=yTh&O)Y1kxDAg2Y7s^%h6irS zEKOx6JQeO-3ra-`xuq8N8p&yU=2(NT#`I{Hv|L-8LM_Iq?WnGuikD-th>BIgals!* zi9AUjXIO;s{9FnQbk!rbN84GN(#V>nZBa!m0Rrk(6wXRx%R6ib^q}kISeG+7y*uJ9 z#uN(Z+vC}hs<$Oo>epP06l8gXH8r#E#Q(wZr0^N^&!Nko*&?5iP89gG87=6j3TfeP zgM9^kOLBCFXQ5#`b!md#k$pZOUlTq||Al{k)oXM<|KV(u^|v@$xDjG9(l_py%(9Mf zFLx$^=6?3fApXCK2f@eu7gLdz;D(@F_;8!b{pACzWnwg+E#6-IFq1{wwG@*909Lr~zGvG0!&UD1uza1LqKc z^NB&H2_cD$G7Y=VqN@=9Hxc-m68=A<3TD3sexwezrW-Z>UdYhTWf{V}jo^QXX$oU_ zPGb!i)=6OKX>|F_3UjcN1?Y28Sb|>HVOBRFf7l2SHw#-3Nwx{wg&mlwUBYf)slDh2 z-Y4uA&c}152hrPgSU7??{Fv}@;X&b}gsN9xesUNpVp5?7g1!&zS@?}JJ@WTNVE^+A fe_jbk*m?Hb`TM1FAN)Rh^H0}x&$Czde;EA_*^JWR literal 0 HcmV?d00001 diff --git a/assets/fonts-shaders/Ldfcomicsans-jj7l.ttf.import b/assets/fonts-shaders/Ldfcomicsans-jj7l.ttf.import new file mode 100644 index 00000000..0f155df2 --- /dev/null +++ b/assets/fonts-shaders/Ldfcomicsans-jj7l.ttf.import @@ -0,0 +1,34 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dinbulumadtqh" +path="res://.godot/imported/Ldfcomicsans-jj7l.ttf-91ce707e677e5335108a5932834a8d03.fontdata" + +[deps] + +source_file="res://assets/fonts-shaders/Ldfcomicsans-jj7l.ttf" +dest_files=["res://.godot/imported/Ldfcomicsans-jj7l.ttf-91ce707e677e5335108a5932834a8d03.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/project.godot b/project.godot index e51945c5..60edf733 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Hallow's Thief" -run/main_scene="res://source/scenes/demo_room.tscn" +run/main_scene="res://source/scenes/game_container/game_container.tscn" config/features=PackedStringArray("4.3", "Forward Plus") config/icon="res://icon.svg" @@ -21,6 +21,14 @@ window/size/mode=2 window/stretch/mode="canvas_items" ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" +[display] + +window/stretch/mode="canvas_items" + +[gui] + +theme/custom_font="res://assets/fonts-shaders/Ldfcomicsans-jj7l.ttf" + [input] Left1={ diff --git a/source/scenes/game_container/game_container.gd b/source/scenes/game_container/game_container.gd index dffe2228..5a8a0ba7 100644 --- a/source/scenes/game_container/game_container.gd +++ b/source/scenes/game_container/game_container.gd @@ -13,6 +13,7 @@ static var GAME_CONTAINER : GameContainer #Scenes @onready var main_menu : PackedScene = preload("res://source/scenes/menus/main_menu.tscn") +@onready var world : PackedScene = preload("res://source/stages/world.tscn") @onready var credits : PackedScene = preload("res://source/scenes/menus/credits.tscn") @onready var instructions : PackedScene = preload("res://source/scenes/menus/instructions.tscn") @onready var character_select : PackedScene = preload("res://source/scenes/menus/character_select.tscn") @@ -23,19 +24,20 @@ static var GAME_CONTAINER : GameContainer @onready var stage2 : PackedScene = preload("res://source/scenes/stages/stage2.tscn") @onready var stage3 : PackedScene = preload("res://source/scenes/stages/stage3.tscn") @onready var stage4 : PackedScene = preload("res://source/scenes/stages/stage4.tscn") -enum Scene { - MAIN_MENU, - CREDITS, - INSTRUCTIONS, - CHARACTER_SELECT, - PRE_GAME_CUT_SCENE, - GAME_OVER, - SHOP, - STAGE1, - STAGE2, - STAGE3, - STAGE4, - RANDOM_STAGE + +@onready var scene_dict = { + "MainMenu" : main_menu, + "World" : world, + "Credits" : credits, + "Instructions" : instructions, + "CharacterSelect" : character_select, + "PreGameCutScene" : pre_game_cut_scene, + "Shop" : shop, + "GameOver" : game_over, + "Stage1" : stage1, + "Stage2" : stage2, + "Stage3" : stage3, + "Stage4" : stage4 } #Scoring @@ -46,52 +48,33 @@ var winning_score : int = 5 func _ready(): GAME_CONTAINER = self - pass + switch_to_scene("MainMenu") func _process(delta): #quit if Q pressed - DEBUG if Input.is_key_pressed(KEY_Q) : get_tree().quit() - pass -func switch_to_scene(scene_enum : Scene) : - #switch_active_scene(getScene(scene_enum)) +func switch_to_scene(scene_name : String): + switch_active_scene(scene_dict[scene_name]) #below: debug code, above: actual code - if scene_enum == Scene.SHOP : - award_point_to_player(1) - print("POINTS AWARDED FOR DEBUG PURPOSES") - if player_scores[0] == winning_score : - switch_active_scene(game_over) - player_scores = [0,0,0,0] - else : - switch_active_scene(shop) - else : - switch_active_scene(getSceneFromEnum(scene_enum)) - + #if scene == shop: + #award_point_to_player(1) + #print("POINTS AWARDED FOR DEBUG PURPOSES") + #if player_scores[0] == winning_score : + #switch_active_scene(game_over) + #player_scores = [0,0,0,0] + #else : + #switch_active_scene(shop) + #else : + #switch_active_scene(scene) func switch_active_scene(scene : PackedScene) : - ActiveSceneHolder.get_child(0).queue_free() + if ActiveSceneHolder.get_child(0): + ActiveSceneHolder.get_child(0).queue_free() var s = scene.instantiate() ActiveSceneHolder.add_child(s) -func getSceneFromEnum(scene_enum : Scene) -> PackedScene: - match (scene_enum) : - Scene.MAIN_MENU : return main_menu - Scene.CREDITS : return credits - Scene.INSTRUCTIONS : return instructions - Scene.CHARACTER_SELECT : return character_select - Scene.PRE_GAME_CUT_SCENE : return pre_game_cut_scene - Scene.GAME_OVER : return game_over - Scene.SHOP : return shop - Scene.STAGE1 : return stage1 - Scene.STAGE2 : return stage2 - Scene.STAGE3 : return stage3 - Scene.STAGE4 : return stage4 - Scene.RANDOM_STAGE : return get_random_stage() - _ : - print("Scene not recognized") - return main_menu - func get_random_stage() -> PackedScene: var r = int(randf() * 4) if r == 0 : return stage1 diff --git a/source/scenes/game_container/game_container.tscn b/source/scenes/game_container/game_container.tscn index 193b2771..c8443dfa 100644 --- a/source/scenes/game_container/game_container.tscn +++ b/source/scenes/game_container/game_container.tscn @@ -1,15 +1,15 @@ -[gd_scene load_steps=3 format=3 uid="uid://dajeyyd76x0vu"] +[gd_scene load_steps=2 format=3 uid="uid://dajeyyd76x0vu"] [ext_resource type="Script" path="res://source/scenes/game_container/game_container.gd" id="1_nfc83"] -[ext_resource type="PackedScene" uid="uid://dd71ltua8vpqj" path="res://source/scenes/menus/main_menu.tscn" id="1_ojqp2"] [node name="GameContainer" type="Node2D"] script = ExtResource("1_nfc83") [node name="ActiveSceneHolder" type="Node2D" parent="."] -[node name="MainMenu" parent="ActiveSceneHolder" instance=ExtResource("1_ojqp2")] - [node name="OverlayPanels" type="Node2D" parent="."] [node name="Players" type="Node2D" parent="."] + +[node name="Camera2D" type="Camera2D" parent="."] +position = Vector2(576, 324) diff --git a/source/scenes/game_container/switch_to_scene.gd b/source/scenes/game_container/switch_to_scene.gd index ed0ef590..a1f79670 100644 --- a/source/scenes/game_container/switch_to_scene.gd +++ b/source/scenes/game_container/switch_to_scene.gd @@ -1,9 +1,9 @@ extends Button -@export var switch_to : GameContainer.Scene - -func _ready() : - connect("pressed", on_pressed) - -func on_pressed() : - GameContainer.GAME_CONTAINER.switch_to_scene(switch_to) +#@export var switch_to : GameContainer.Scene +# +#func _ready() : + #connect("pressed", on_pressed) +# +#func on_pressed() : + #GameContainer.GAME_CONTAINER.switch_to_scene(switch_to) diff --git a/source/scenes/menus/credits.gd b/source/scenes/menus/credits.gd new file mode 100644 index 00000000..f02bb67c --- /dev/null +++ b/source/scenes/menus/credits.gd @@ -0,0 +1,4 @@ +extends Node2D + +func _on_back_button_pressed() -> void: + get_parent().get_parent().switch_to_scene("MainMenu") diff --git a/source/scenes/menus/credits.tscn b/source/scenes/menus/credits.tscn index 115f757d..1126d7fb 100644 --- a/source/scenes/menus/credits.tscn +++ b/source/scenes/menus/credits.tscn @@ -1,18 +1,37 @@ [gd_scene load_steps=2 format=3 uid="uid://bhuom4ivjp0be"] -[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_lxpdn"] +[ext_resource type="Script" path="res://source/scenes/menus/credits.gd" id="1_y2hqy"] [node name="Credits" type="Node2D"] +script = ExtResource("1_y2hqy") + +[node name="CreditsLabel" type="Label" parent="."] +offset_left = 295.0 +offset_top = 83.0 +offset_right = 823.0 +offset_bottom = 278.0 +theme_override_font_sizes/font_size = 166 +text = "Credits" +horizontal_alignment = 1 + +[node name="Label" type="Label" parent="."] +offset_left = 266.0 +offset_top = 276.0 +offset_right = 831.0 +offset_bottom = 434.0 +text = "Kedrick Fudala - Lead Designer, Part-time programmer +Luke Webb - Lead Programmer, part-time networks and cloud computing person +Joey Giordano - Personality Hire, did some stuff +Quintin Levy - Programmer +Felix +Vincent +Haseeb" [node name="BackButton" type="Button" parent="."] -offset_right = 8.0 -offset_bottom = 8.0 +offset_left = 533.0 +offset_top = 473.0 +offset_right = 575.0 +offset_bottom = 501.0 text = "Back" -script = ExtResource("1_lxpdn") -[node name="TEMP" type="Label" parent="."] -offset_left = 144.0 -offset_top = 130.0 -offset_right = 308.0 -offset_bottom = 179.0 -text = "Credits" +[connection signal="pressed" from="BackButton" to="." method="_on_back_button_pressed"] diff --git a/source/scenes/menus/instructions.gd b/source/scenes/menus/instructions.gd new file mode 100644 index 00000000..f02bb67c --- /dev/null +++ b/source/scenes/menus/instructions.gd @@ -0,0 +1,4 @@ +extends Node2D + +func _on_back_button_pressed() -> void: + get_parent().get_parent().switch_to_scene("MainMenu") diff --git a/source/scenes/menus/instructions.tscn b/source/scenes/menus/instructions.tscn index 26487459..ecf8cdb5 100644 --- a/source/scenes/menus/instructions.tscn +++ b/source/scenes/menus/instructions.tscn @@ -1,18 +1,24 @@ [gd_scene load_steps=2 format=3 uid="uid://cltaghkxnswjy"] -[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_4nwng"] +[ext_resource type="Script" path="res://source/scenes/menus/instructions.gd" id="1_g7wwq"] [node name="Instructions" type="Node2D"] +script = ExtResource("1_g7wwq") + +[node name="InstructionsLabel" type="Label" parent="."] +offset_left = 283.0 +offset_top = 105.0 +offset_right = 796.0 +offset_bottom = 223.0 +theme_override_font_sizes/font_size = 101 +text = "Instructions" +horizontal_alignment = 1 [node name="BackButton" type="Button" parent="."] -offset_right = 8.0 -offset_bottom = 8.0 +offset_left = 516.0 +offset_top = 328.0 +offset_right = 558.0 +offset_bottom = 356.0 text = "Back" -script = ExtResource("1_4nwng") -[node name="TEMP" type="Label" parent="."] -offset_left = 144.0 -offset_top = 130.0 -offset_right = 308.0 -offset_bottom = 179.0 -text = "Instructions" +[connection signal="pressed" from="BackButton" to="." method="_on_back_button_pressed"] diff --git a/source/scenes/menus/main_menu.gd b/source/scenes/menus/main_menu.gd new file mode 100644 index 00000000..b5ece5e5 --- /dev/null +++ b/source/scenes/menus/main_menu.gd @@ -0,0 +1,13 @@ +extends Node2D + +func _on_play_button_pressed() -> void: + get_parent().get_parent().switch_to_scene("PreGameCutScene") + +func _on_instructions_button_pressed() -> void: + get_parent().get_parent().switch_to_scene("Instructions") + +func _on_credits_button_pressed() -> void: + get_parent().get_parent().switch_to_scene("Credits") + +func _on_quit_button_pressed() -> void: + get_tree().quit() diff --git a/source/scenes/menus/main_menu.tscn b/source/scenes/menus/main_menu.tscn index 969e7ac8..1df4249c 100644 --- a/source/scenes/menus/main_menu.tscn +++ b/source/scenes/menus/main_menu.tscn @@ -1,35 +1,48 @@ [gd_scene load_steps=2 format=3 uid="uid://dd71ltua8vpqj"] -[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_6s5mx"] +[ext_resource type="Script" path="res://source/scenes/menus/main_menu.gd" id="1_y2x06"] [node name="MainMenu" type="Node2D"] +script = ExtResource("1_y2x06") + +[node name="MainMenuLabel" type="Label" parent="."] +offset_left = 314.0 +offset_top = 80.0 +offset_right = 779.0 +offset_bottom = 169.0 +theme_override_font_sizes/font_size = 75 +text = "Hallow's Thief" +horizontal_alignment = 1 [node name="PlayButton" type="Button" parent="."] -offset_right = 8.0 -offset_bottom = 8.0 +offset_left = 513.0 +offset_top = 182.0 +offset_right = 554.0 +offset_bottom = 213.0 text = "Play" -script = ExtResource("1_6s5mx") -switch_to = 3 [node name="CreditsButton" type="Button" parent="."] -offset_top = 115.0 -offset_right = 63.0 -offset_bottom = 146.0 +offset_left = 506.0 +offset_top = 280.0 +offset_right = 569.0 +offset_bottom = 311.0 text = "Credits" -script = ExtResource("1_6s5mx") -switch_to = 1 [node name="InstructionsButton" type="Button" parent="."] -offset_top = 57.0 -offset_right = 101.0 -offset_bottom = 88.0 +offset_left = 482.0 +offset_top = 225.0 +offset_right = 583.0 +offset_bottom = 256.0 text = "Instructions" -script = ExtResource("1_6s5mx") -switch_to = 2 - -[node name="TEMP" type="Label" parent="."] -offset_left = 144.0 -offset_top = 130.0 -offset_right = 308.0 -offset_bottom = 179.0 -text = "Main Menu" + +[node name="QuitButton" type="Button" parent="."] +offset_left = 488.0 +offset_top = 336.0 +offset_right = 589.0 +offset_bottom = 367.0 +text = "Quit" + +[connection signal="pressed" from="PlayButton" to="." method="_on_play_button_pressed"] +[connection signal="pressed" from="CreditsButton" to="." method="_on_credits_button_pressed"] +[connection signal="pressed" from="InstructionsButton" to="." method="_on_instructions_button_pressed"] +[connection signal="pressed" from="QuitButton" to="." method="_on_quit_button_pressed"] From 1a544ee9e68538386b5e3daf6f5409b6d036a65b Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:27:13 -0400 Subject: [PATCH 062/110] Reapply "Merge pull request #13 from UVASGD/develop" This reverts commit 1231d6e4b2c8b74586f72f51912d1f87c507c849. --- project.godot | 2 + .../Item_Resources/BakingSoda.tres | 21 +++++ .../Item_Resources/BaseballBat.tres | 21 +++++ .../Item_Resources/BaseballCap.tres | 19 ++++ .../Item_Resources/BoxingGloves.tres | 21 +++++ .../Items_Final/Item_Resources/OvenMitts.tres | 21 +++++ .../Items_Final/Item_Resources/Plunger.tres | 21 +++++ .../Items_Final/Item_Resources/RainBoots.tres | 21 +++++ .../Item_Resources/SafetyScissors.tres | 21 +++++ .../Item_Resources/ToiletPaper.tres | 21 +++++ .../Item_Resources/TrenchCoat.tres | 21 +++++ source/Items_Final/Item_Resources/Yo-Yo.tres | 21 +++++ .../Items_Final/Item_Resources/newItem.tres | 3 + source/Items_Final/Item_Scripts/Item.gd | 42 +++++++++ .../Item_Scripts/Item_Functions.gd | 9 ++ .../Item_Scripts/Status_Effect_Manager.gd} | 4 +- .../Item_Sprites/Plunger pixel art.png | Bin 0 -> 243 bytes .../Item_Sprites/Plunger pixel art.png.import | 34 +++++++ .../Items_Final/Item_Sprites/Stick Sprite.png | Bin 0 -> 344 bytes .../Item_Sprites/Stick Sprite.png.import | 34 +++++++ .../Item_Sprites/Top hat pixel art.png | Bin 0 -> 301 bytes .../Item_Sprites/Top hat pixel art.png.import | 34 +++++++ .../Items_Final/Item_Sprites/bakingsoda.png | Bin 0 -> 849 bytes .../Item_Sprites/bakingsoda.png.import | 34 +++++++ .../Items_Final/Item_Sprites/baseballbat.png | Bin 0 -> 625 bytes .../Item_Sprites/baseballbat.png.import | 34 +++++++ .../Items_Final/Item_Sprites/baseballcap.png | Bin 0 -> 642 bytes .../Item_Sprites/baseballcap.png.import | 34 +++++++ .../Items_Final/Item_Sprites/boxinggloves.png | Bin 0 -> 624 bytes .../Item_Sprites/boxinggloves.png.import | 34 +++++++ source/Items_Final/Item_Sprites/bubblegum.png | Bin 0 -> 812 bytes .../Item_Sprites/bubblegum.png.import | 34 +++++++ source/Items_Final/Item_Sprites/candycane.png | Bin 0 -> 472 bytes .../Item_Sprites/candycane.png.import | 34 +++++++ source/Items_Final/Item_Sprites/fryingpan.png | Bin 0 -> 508 bytes .../Item_Sprites/fryingpan.png.import | 34 +++++++ source/Items_Final/Item_Sprites/hose.png | Bin 0 -> 648 bytes .../Items_Final/Item_Sprites/hose.png.import | 34 +++++++ source/Items_Final/Item_Sprites/juicebox.png | Bin 0 -> 619 bytes .../Item_Sprites/juicebox.png.import | 34 +++++++ .../Items_Final/Item_Sprites/magic8ball.png | Bin 0 -> 451 bytes .../Item_Sprites/magic8ball.png.import | 34 +++++++ source/Items_Final/Item_Sprites/marbles.png | Bin 0 -> 988 bytes .../Item_Sprites/marbles.png.import | 34 +++++++ source/Items_Final/Item_Sprites/mop.png | Bin 0 -> 562 bytes .../Items_Final/Item_Sprites/mop.png.import | 34 +++++++ source/Items_Final/Item_Sprites/ovenmitts.png | Bin 0 -> 748 bytes .../Item_Sprites/ovenmitts.png.import | 34 +++++++ source/Items_Final/Item_Sprites/piratehat.png | Bin 0 -> 449 bytes .../Item_Sprites/piratehat.png.import | 34 +++++++ .../Items_Final/Item_Sprites/pocketwatch.png | Bin 0 -> 681 bytes .../Item_Sprites/pocketwatch.png.import | 34 +++++++ .../Items_Final/Item_Sprites/propellerhat.png | Bin 0 -> 751 bytes .../Item_Sprites/propellerhat.png.import | 34 +++++++ .../Items_Final/Item_Sprites/puzzlecube.png | Bin 0 -> 737 bytes .../Item_Sprites/puzzlecube.png.import | 34 +++++++ source/Items_Final/Item_Sprites/rainboots.png | Bin 0 -> 500 bytes .../Item_Sprites/rainboots.png.import | 34 +++++++ .../Item_Sprites/rainbowlollipop.png | Bin 0 -> 819 bytes .../Item_Sprites/rainbowlollipop.png.import | 34 +++++++ source/Items_Final/Item_Sprites/rake.png | Bin 0 -> 527 bytes .../Items_Final/Item_Sprites/rake.png.import | 34 +++++++ .../Items_Final/Item_Sprites/rubberduck.png | Bin 0 -> 613 bytes .../Item_Sprites/rubberduck.png.import | 34 +++++++ .../Item_Sprites/safetyscissors.png | Bin 0 -> 757 bytes .../Item_Sprites/safetyscissors.png.import | 34 +++++++ source/Items_Final/Item_Sprites/soap.png | Bin 0 -> 880 bytes .../Items_Final/Item_Sprites/soap.png.import | 34 +++++++ source/Items_Final/Item_Sprites/soda.png | Bin 0 -> 631 bytes .../Items_Final/Item_Sprites/soda.png.import | 34 +++++++ source/Items_Final/Item_Sprites/spatula.png | Bin 0 -> 555 bytes .../Item_Sprites/spatula.png.import | 34 +++++++ .../Items_Final/Item_Sprites/spraypaint.png | Bin 0 -> 527 bytes .../Item_Sprites/spraypaint.png.import | 34 +++++++ .../Items_Final/Item_Sprites/toiletpaper.png | Bin 0 -> 830 bytes .../Item_Sprites/toiletpaper.png.import | 34 +++++++ .../Items_Final/Item_Sprites/toothbrush.png | Bin 0 -> 447 bytes .../Item_Sprites/toothbrush.png.import | 34 +++++++ source/Items_Final/Item_Sprites/toyraygun.png | Bin 0 -> 788 bytes .../Item_Sprites/toyraygun.png.import | 34 +++++++ .../Items_Final/Item_Sprites/trenchcoat.png | Bin 0 -> 794 bytes .../Item_Sprites/trenchcoat.png.import | 34 +++++++ source/Items_Final/Item_Sprites/trowel.png | Bin 0 -> 596 bytes .../Item_Sprites/trowel.png.import | 34 +++++++ source/Items_Final/Item_Sprites/winterhat.png | Bin 0 -> 627 bytes .../Item_Sprites/winterhat.png.import | 34 +++++++ source/Items_Final/Item_Sprites/yoyo.png | Bin 0 -> 638 bytes .../Items_Final/Item_Sprites/yoyo.png.import | 34 +++++++ source/item/stats_and_item_handler.gd | 1 - source/scenes/IteE421.tmp | 19 ++++ source/scenes/IteEC4C.tmp | 19 ++++ source/scenes/ItemTestingScene.tscn | 10 +- source/scripts/Item_Advanced_Functions.gd | 3 + source/scripts/Item_Test.gd | 4 +- source/scripts/Player_Test.gd | 86 +++++++++++------- source/scripts/StatusEffect.gd | 0 96 files changed, 1613 insertions(+), 42 deletions(-) create mode 100644 source/Items_Final/Item_Resources/BakingSoda.tres create mode 100644 source/Items_Final/Item_Resources/BaseballBat.tres create mode 100644 source/Items_Final/Item_Resources/BaseballCap.tres create mode 100644 source/Items_Final/Item_Resources/BoxingGloves.tres create mode 100644 source/Items_Final/Item_Resources/OvenMitts.tres create mode 100644 source/Items_Final/Item_Resources/Plunger.tres create mode 100644 source/Items_Final/Item_Resources/RainBoots.tres create mode 100644 source/Items_Final/Item_Resources/SafetyScissors.tres create mode 100644 source/Items_Final/Item_Resources/ToiletPaper.tres create mode 100644 source/Items_Final/Item_Resources/TrenchCoat.tres create mode 100644 source/Items_Final/Item_Resources/Yo-Yo.tres create mode 100644 source/Items_Final/Item_Resources/newItem.tres create mode 100644 source/Items_Final/Item_Scripts/Item.gd create mode 100644 source/Items_Final/Item_Scripts/Item_Functions.gd rename source/{scripts/StatusEffectManager.gd => Items_Final/Item_Scripts/Status_Effect_Manager.gd} (94%) create mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png create mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png.import create mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png create mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png.import create mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png create mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png.import create mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png create mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png.import create mode 100644 source/Items_Final/Item_Sprites/baseballbat.png create mode 100644 source/Items_Final/Item_Sprites/baseballbat.png.import create mode 100644 source/Items_Final/Item_Sprites/baseballcap.png create mode 100644 source/Items_Final/Item_Sprites/baseballcap.png.import create mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png create mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png.import create mode 100644 source/Items_Final/Item_Sprites/bubblegum.png create mode 100644 source/Items_Final/Item_Sprites/bubblegum.png.import create mode 100644 source/Items_Final/Item_Sprites/candycane.png create mode 100644 source/Items_Final/Item_Sprites/candycane.png.import create mode 100644 source/Items_Final/Item_Sprites/fryingpan.png create mode 100644 source/Items_Final/Item_Sprites/fryingpan.png.import create mode 100644 source/Items_Final/Item_Sprites/hose.png create mode 100644 source/Items_Final/Item_Sprites/hose.png.import create mode 100644 source/Items_Final/Item_Sprites/juicebox.png create mode 100644 source/Items_Final/Item_Sprites/juicebox.png.import create mode 100644 source/Items_Final/Item_Sprites/magic8ball.png create mode 100644 source/Items_Final/Item_Sprites/magic8ball.png.import create mode 100644 source/Items_Final/Item_Sprites/marbles.png create mode 100644 source/Items_Final/Item_Sprites/marbles.png.import create mode 100644 source/Items_Final/Item_Sprites/mop.png create mode 100644 source/Items_Final/Item_Sprites/mop.png.import create mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png create mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png.import create mode 100644 source/Items_Final/Item_Sprites/piratehat.png create mode 100644 source/Items_Final/Item_Sprites/piratehat.png.import create mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png create mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png.import create mode 100644 source/Items_Final/Item_Sprites/propellerhat.png create mode 100644 source/Items_Final/Item_Sprites/propellerhat.png.import create mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png create mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png.import create mode 100644 source/Items_Final/Item_Sprites/rainboots.png create mode 100644 source/Items_Final/Item_Sprites/rainboots.png.import create mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png create mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png.import create mode 100644 source/Items_Final/Item_Sprites/rake.png create mode 100644 source/Items_Final/Item_Sprites/rake.png.import create mode 100644 source/Items_Final/Item_Sprites/rubberduck.png create mode 100644 source/Items_Final/Item_Sprites/rubberduck.png.import create mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png create mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png.import create mode 100644 source/Items_Final/Item_Sprites/soap.png create mode 100644 source/Items_Final/Item_Sprites/soap.png.import create mode 100644 source/Items_Final/Item_Sprites/soda.png create mode 100644 source/Items_Final/Item_Sprites/soda.png.import create mode 100644 source/Items_Final/Item_Sprites/spatula.png create mode 100644 source/Items_Final/Item_Sprites/spatula.png.import create mode 100644 source/Items_Final/Item_Sprites/spraypaint.png create mode 100644 source/Items_Final/Item_Sprites/spraypaint.png.import create mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png create mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png.import create mode 100644 source/Items_Final/Item_Sprites/toothbrush.png create mode 100644 source/Items_Final/Item_Sprites/toothbrush.png.import create mode 100644 source/Items_Final/Item_Sprites/toyraygun.png create mode 100644 source/Items_Final/Item_Sprites/toyraygun.png.import create mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png create mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png.import create mode 100644 source/Items_Final/Item_Sprites/trowel.png create mode 100644 source/Items_Final/Item_Sprites/trowel.png.import create mode 100644 source/Items_Final/Item_Sprites/winterhat.png create mode 100644 source/Items_Final/Item_Sprites/winterhat.png.import create mode 100644 source/Items_Final/Item_Sprites/yoyo.png create mode 100644 source/Items_Final/Item_Sprites/yoyo.png.import create mode 100644 source/scenes/IteE421.tmp create mode 100644 source/scenes/IteEC4C.tmp delete mode 100644 source/scripts/StatusEffect.gd diff --git a/project.godot b/project.godot index e4cf6675..342d15e2 100644 --- a/project.godot +++ b/project.godot @@ -23,6 +23,8 @@ ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" window/size/mode=2 window/stretch/mode="canvas_items" +ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" + [input] diff --git a/source/Items_Final/Item_Resources/BakingSoda.tres b/source/Items_Final/Item_Resources/BakingSoda.tres new file mode 100644 index 00000000..0d987ea0 --- /dev/null +++ b/source/Items_Final/Item_Resources/BakingSoda.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://bbebjdnx0jnqm"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_powpt"] +[ext_resource type="Texture2D" uid="uid://b7rs3tdjkmife" path="res://source/Items_Final/Item_Sprites/bakingsoda.png" id="2_pi18r"] + +[resource] +script = ExtResource("1_powpt") +sprite = ExtResource("2_pi18r") +name = "Baking Soda" +description = "Increases Speed" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 2.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballBat.tres b/source/Items_Final/Item_Resources/BaseballBat.tres new file mode 100644 index 00000000..9a25dccf --- /dev/null +++ b/source/Items_Final/Item_Resources/BaseballBat.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://chya8oc2ch8i5"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_gvtxx"] +[ext_resource type="Texture2D" uid="uid://n8kc5ecpojp0" path="res://source/Items_Final/Item_Sprites/baseballbat.png" id="2_1p0jc"] + +[resource] +script = ExtResource("1_gvtxx") +sprite = ExtResource("2_1p0jc") +name = "Baseball Bat" +description = "Increases Damage" +rarity = 0 +cost = 0 +attackDamage = 2.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballCap.tres b/source/Items_Final/Item_Resources/BaseballCap.tres new file mode 100644 index 00000000..27bb6478 --- /dev/null +++ b/source/Items_Final/Item_Resources/BaseballCap.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Item" load_steps=2 format=3 uid="uid://dxuc2aj1us8i2"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_2ncem"] + +[resource] +script = ExtResource("1_2ncem") +name = "Baseball cap" +description = "Slightly increases health and decreases cooldown" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 0.0 +cooldownReduction = 1.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BoxingGloves.tres b/source/Items_Final/Item_Resources/BoxingGloves.tres new file mode 100644 index 00000000..d355c9d7 --- /dev/null +++ b/source/Items_Final/Item_Resources/BoxingGloves.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://1lo3qihmupbe"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_dphqa"] +[ext_resource type="Texture2D" uid="uid://bxu2g1kcx6k20" path="res://source/Items_Final/Item_Sprites/boxinggloves.png" id="2_ky0rr"] + +[resource] +script = ExtResource("1_dphqa") +sprite = ExtResource("2_ky0rr") +name = "Boxing Gloves" +description = "Slightly increases attack and health" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/OvenMitts.tres b/source/Items_Final/Item_Resources/OvenMitts.tres new file mode 100644 index 00000000..a74d5a92 --- /dev/null +++ b/source/Items_Final/Item_Resources/OvenMitts.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://21ntxjjt6dfa"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_ombo1"] +[ext_resource type="Texture2D" uid="uid://b781y2yilgedy" path="res://source/Items_Final/Item_Sprites/ovenmitts.png" id="2_f8fv4"] + +[resource] +script = ExtResource("1_ombo1") +sprite = ExtResource("2_f8fv4") +name = "Oven Mitts" +description = "Slightly increases tenacity" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 1.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Plunger.tres b/source/Items_Final/Item_Resources/Plunger.tres new file mode 100644 index 00000000..1d5a361b --- /dev/null +++ b/source/Items_Final/Item_Resources/Plunger.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b2odg7j76fhrt"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_qfutt"] +[ext_resource type="Texture2D" uid="uid://6sjrjy3ts348" path="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" id="2_qfg8s"] + +[resource] +script = ExtResource("1_qfutt") +sprite = ExtResource("2_qfg8s") +name = "Plunger" +description = "Slightly increases damage and decreases cooldown" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 1.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/RainBoots.tres b/source/Items_Final/Item_Resources/RainBoots.tres new file mode 100644 index 00000000..ea00e265 --- /dev/null +++ b/source/Items_Final/Item_Resources/RainBoots.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://jdhh5df8llh8"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_aeuxc"] +[ext_resource type="Texture2D" uid="uid://bldr5242uuk63" path="res://source/Items_Final/Item_Sprites/rainboots.png" id="2_x8rcl"] + +[resource] +script = ExtResource("1_aeuxc") +sprite = ExtResource("2_x8rcl") +name = "Rain Boots" +description = "Slightly increases health and speed" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/SafetyScissors.tres b/source/Items_Final/Item_Resources/SafetyScissors.tres new file mode 100644 index 00000000..8cc63a9a --- /dev/null +++ b/source/Items_Final/Item_Resources/SafetyScissors.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://dal6qgym6pnyf"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_innlo"] +[ext_resource type="Texture2D" uid="uid://b4xjbdxvn3i2l" path="res://source/Items_Final/Item_Sprites/safetyscissors.png" id="2_h66q4"] + +[resource] +script = ExtResource("1_innlo") +sprite = ExtResource("2_h66q4") +name = "SafetyScissors" +description = "Slightly increases damage and speed" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/ToiletPaper.tres b/source/Items_Final/Item_Resources/ToiletPaper.tres new file mode 100644 index 00000000..4b3663ea --- /dev/null +++ b/source/Items_Final/Item_Resources/ToiletPaper.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://8uxqwbgx5io3"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_lp8ya"] +[ext_resource type="Texture2D" uid="uid://drouo1e7b67oo" path="res://source/Items_Final/Item_Sprites/toiletpaper.png" id="2_5pmre"] + +[resource] +script = ExtResource("1_lp8ya") +sprite = ExtResource("2_5pmre") +name = "Toilet Paper" +description = "Decreases Cooldown" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 2.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/TrenchCoat.tres b/source/Items_Final/Item_Resources/TrenchCoat.tres new file mode 100644 index 00000000..0cfffca9 --- /dev/null +++ b/source/Items_Final/Item_Resources/TrenchCoat.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://cc563lr5i06gw"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_7l3le"] +[ext_resource type="Texture2D" uid="uid://dna8nprqj1ifn" path="res://source/Items_Final/Item_Sprites/trenchcoat.png" id="2_rr3wv"] + +[resource] +script = ExtResource("1_7l3le") +sprite = ExtResource("2_rr3wv") +name = "Trench Coat" +description = "Increases Health" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 2.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Yo-Yo.tres b/source/Items_Final/Item_Resources/Yo-Yo.tres new file mode 100644 index 00000000..fd5ca491 --- /dev/null +++ b/source/Items_Final/Item_Resources/Yo-Yo.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b1h7kigidl5t2"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_12rx8"] +[ext_resource type="Texture2D" uid="uid://dqmbec8uh8jaq" path="res://source/Items_Final/Item_Sprites/yoyo.png" id="2_ibfa5"] + +[resource] +script = ExtResource("1_12rx8") +sprite = ExtResource("2_ibfa5") +name = "Yo-Yo" +description = "Slightly increases speed and reduces cooldown" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 1.0 +cooldownReduction = 1.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/newItem.tres b/source/Items_Final/Item_Resources/newItem.tres new file mode 100644 index 00000000..efa9c2fc --- /dev/null +++ b/source/Items_Final/Item_Resources/newItem.tres @@ -0,0 +1,3 @@ +[gd_resource type="Resource" format=3 uid="uid://dgttm3uig5c5p"] + +[resource] diff --git a/source/Items_Final/Item_Scripts/Item.gd b/source/Items_Final/Item_Scripts/Item.gd new file mode 100644 index 00000000..eac8354e --- /dev/null +++ b/source/Items_Final/Item_Scripts/Item.gd @@ -0,0 +1,42 @@ +extends Resource +class_name Item + +enum Rarity { + COMMON, + UNCOMMON, + RARE, + LEGENDARY +} + +enum FunctionTypes +{ + OnStart, + OnFire, + OnHit, + OnGetHit +} + +#Info +@export_group("General Information") +@export var sprite : Texture +@export var name : String +@export_multiline var description : String +@export var rarity : Rarity +@export var cost : int + + +#Stats +@export_group("Stats") +@export var attackDamage: float +@export var attackSpeed: float +@export var maxHealth : float +@export var speed : float +@export var cooldownReduction : float +@export var tenacity : float +@export var luck : float + + +#Functions +@export_group("Functions") +@export var functionTypes : Array[FunctionTypes] +@export var functionNames : Array[String] diff --git a/source/Items_Final/Item_Scripts/Item_Functions.gd b/source/Items_Final/Item_Scripts/Item_Functions.gd new file mode 100644 index 00000000..648d8fff --- /dev/null +++ b/source/Items_Final/Item_Scripts/Item_Functions.gd @@ -0,0 +1,9 @@ +class_name Item_Functions +#Needs to be a global script +extends Node +func fire_start(ps : Player_Test): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) +func fire_tick_end(ps : Player_Test): + ps.change_health(-2) + if(ps.statusEffects.hasStatus("Fire")): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) diff --git a/source/scripts/StatusEffectManager.gd b/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd similarity index 94% rename from source/scripts/StatusEffectManager.gd rename to source/Items_Final/Item_Scripts/Status_Effect_Manager.gd index 8c2a370e..8bdaa11e 100644 --- a/source/scripts/StatusEffectManager.gd +++ b/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd @@ -19,8 +19,8 @@ func _ready() -> void: func setStartingStatusFunctions(ps : Player_Test): #Temperary. StatusEffect behavior should be stored elsewhere - addStatusStartFunction("Fire", Callable(ItemAdvancedFunctions,"fire_start").bind(ps)) - addStatusEndFunction("FireTick", Callable(ItemAdvancedFunctions,"fire_tick_end").bind(ps)) + addStatusStartFunction("Fire", Callable(Item,"fire_start").bind(ps)) + addStatusEndFunction("FireTick", Callable(Item_Functions,"fire_tick_end").bind(ps)) addStatusStartFunction("Damage Buff 2", (func(x : Player_Test): x.damage += 3).bind(ps)) addStatusEndFunction("Damage Buff 2", (func(x : Player_Test): x.damage -= 3).bind(ps)) diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png b/source/Items_Final/Item_Sprites/Plunger pixel art.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b25d39f518b696ca3a611062a0a631b074f32c GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ydu{YLn7Rh zQzQ}&cy#{lJ{g$J;NNqL$h3(|IPWGs@#8%qsNk^5xucBX z&Zk=W!m?#23RwdA96nl}sM4}(s$g%>DSf1VXR3;!ufTf-rCPpX#f_Pb8tek!%zkPy Y%&U|%@X+%r1v;F;)78&qol`;+01H7|TmS$7 literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png.import b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import new file mode 100644 index 00000000..68e45fc7 --- /dev/null +++ b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6sjrjy3ts348" +path="res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" +dest_files=["res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.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/source/Items_Final/Item_Sprites/Stick Sprite.png b/source/Items_Final/Item_Sprites/Stick Sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0a9b90c68691230e30d550d9cd343c66ea9dbb GIT binary patch literal 344 zcmV-e0jK_nP)Px$5=lfsR9HvtmN5##KoCWfS_JQ4VP|D6*o!yuG~Pt)1#27aL~J~PAl54*3=FdC z{F&^s7D%Bq5 zsU8AAx*Px#=Sf6CR9Hvtmf;PAAPj|N4i>w(l5q{=V$5-uUV^E$Ek!{z!GDJ8`}ztkZfN{C zi@x{%Yl)L$LI|SHVd1J62k{Po8kt8oOb#>$h_p38Ob&Dae0)lmA*%!cQW`)z4Qz+% z0L>k!wGYP6xEmGIJUMYn)o|f<01#Z(WuU^?hN2EoAu0~<_<{K60MMFiwrRH`oMrq6 z&HPXTZo{1c;Oec3LyP{G;3_~Av1AN-cs9HjfU7lRm$IDhAJKu-H5~5|=xC{UX?^=J zxASQ;J_qJG0NRbHRJNQmr)!sEvliO{nmh0VD6)}-Px&3rR#lR9J=WmrqC(Q5?rVnwW^YO}j$6{y|7xgu*n)1o6<#ONYcm*g?cYhoJBj z9zr~52Z_DfLA*qV@Dfos4<(2aN+ij;88W%6hU<=wi0)yhgU)kiXLg-wtqA(UrPgO{lA^f4#KX%c?HRQifCnAxBKG>-q3!ov17uRL?gT12x618~ z^N!wg3^11J9k67J;J-c>Mt+$tTKKs!u$h&HR@DB*`act7k%9 zS;XrPh@xvRo@c6a0vPg-3uAqz0K4&+fYFOlXSxLAfe?zaZ30o0Z2==mKCw59v(A>2FjD}ZC$0Z+{4Xx=9lX+#ihpN#9qKOpIL@Lb;5sxNP$Z^#+1Lus!RTr-fmR6QBJ-dY0cYM?B zC7GRG5PiLEj79x7Sxz=k`27RwfyPe0ME-t)=^a1vVKMSyF>hB_ZI6N_*mHMS0|>SR zMJzlUCfE|BrL9Ro=rMi#$INrf$1|B`1+atBWi$kscsY>sACprx_3>NAYb@K?ZPx%D@jB_R9J=Om%ne*P!xqf7sL>Wsl=p^?BoX#a+C#>t*{`FK!V9T6(b8>5CcQ_ z6U<&Qq!I`r7CLocLQMm0lpzyJic+hvAY~xKV=&jajU8g=nT0b&wv+qi+;iW1hW}kg z)QzTHRduTX!0MxSkoB4u&JuQf-765$M9)>;~fY7GM7JO_EsQ>;P zbmGp93!u@3DF>XLJ)^aC=tF>H!BfSmVU?D3)COj(1LaIkl`fsaDlH>Z5p?3&^S9`5 zAv6O3-SNl(`1!*Kb>hkTEiI!N2>`I!J}~wNN0AT@>?;dH%mfgK*4E)M2$7jDES!hG z0)W?!pc6qCZr;ASkPERwRLW)WKBPtL{6$?Nh zHeR`aw_-{=k_IyI9G5dWW#2Uc{C2pm%j@@FW3?i-10r!EI31>G#{Qke00JSIkPR$u zD;5F}h+rlFDur`%e_z|aE+Z=19~{k<1+Ax>awex5#VjlNKgK?N^J!*{nMbm?>W)VS zJrq4S2@<7Lj@#u-&JSUun8n%Ii>$M72*V^>IlxMOiM870$f-yLKp+~$EC3H5Ut`km zsHR<=0!a-3;G6mmcxQ;-uH&zm{|q1~*)dNl^>@DDs;K*=MvHy{@K^KexE)jW00000 LNkvXXu0mjfxyBU8 literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/baseballbat.png.import b/source/Items_Final/Item_Sprites/baseballbat.png.import new file mode 100644 index 00000000..8480338a --- /dev/null +++ b/source/Items_Final/Item_Sprites/baseballbat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n8kc5ecpojp0" +path="res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/baseballbat.png" +dest_files=["res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.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/source/Items_Final/Item_Sprites/baseballcap.png b/source/Items_Final/Item_Sprites/baseballcap.png new file mode 100644 index 0000000000000000000000000000000000000000..e904fe88b64b0d5c613ba695e52ffd34292363f4 GIT binary patch literal 642 zcmV-|0)737P)Px%JV``BR9J=WmN7^hQ5eVn7D)yVGE|dH2XcXf5(nWjr9(>xMJI{46tPQ*Md{$u z$wilT3KR+z2Z^YNn~Ugl8FVtxA)*|_!A!C05IBe4avj?5arf>ecP|l2A^+*#yLa#Z zd*8kHeGllXuYaro*$?9Bq)X3A!oY)dBt1u00MGR)W^A{r41mGJbllWR(lCQjjLDFU zlo1`aV<9(DWc@E*0_9c9m5oTp!L({6rUL+M$3iNTXYX(8XGmr8P_-qa zhG;u5o=&>yk+-aEI~J6fjv;l}H;y0xK-IF+5YM8RcTy^o$8G(LwJ%SBrLUX5%_+H56yB_3c43@F zB8sFVAkvjt!R7T245`ETw7iIwwfUz7@a6%L3ahVBE^R>7vN$>1!TP%ruFMLeL^3oH zMbUBj0*bBU{A2?Kv%>nDce|nAcJ&KH8?ov)r<1O?(%G#l_%@l6fykIdwZc3I zrs$5fz}qG>-khSs*9g+&!rwxrjROFdrVSrNXu%L=Gv1u!g`iyUd1g8=XT4ElzM-3t z51ALpb}S*t%Gx|LCbNt>=JMu17gsVb1SJ~2R6Di(fKfa3be|)TUan?60eB&R;P2|I cum3{70j$8}NTOV_@c;k-07*qoM6N<$f|V*Nl>h($ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/baseballcap.png.import b/source/Items_Final/Item_Sprites/baseballcap.png.import new file mode 100644 index 00000000..bdce6f60 --- /dev/null +++ b/source/Items_Final/Item_Sprites/baseballcap.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm5a1jhe6ojrw" +path="res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/baseballcap.png" +dest_files=["res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.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/source/Items_Final/Item_Sprites/boxinggloves.png b/source/Items_Final/Item_Sprites/boxinggloves.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0b93388a74208416b6207347299c0af8ff4e9f GIT binary patch literal 624 zcmV-$0+0QPP)Px%DoI2^R9J=Wl{;_RP#A_E2r8z=MJNqwAXOxfWU_>mKajb5FH^Qm{DDqYe?Tf# zVrrL4*(y=b3|)y(I}xc%l}LdSmdfE$C<1ptrucG>UFcA$yqo!szxUz09K%K%{qKtX zjU?riVT)p~etedCtPN038TR96*MYIu@9wi5Q=|}U0XXKZj|1VEPu+*qlNz;dBhX6- z5LVW5%CMW-7AKhtp)tVKI8NuD3J?g95E(C*HNEX-X}&GlP2kbsD`dpx)rkdhp#Pm0 zg*aJ3|I%mJTyn0x@WZX;%@ zdL)QeTcKhV=fk(6q(dlzXtfnuZ3R=+g{5^=Pij(t&^3(O4#&u8h4XySo6^*_RtFHt zyDbO3`2|+jG}m*O0s(5>MvPo(@d@Uj}IoJF(r|p6xYv zN-vv}NG&+YT!hYow`yU=e*_Supbdy(=#}(^BhNot*KDJIQojIt%I7|uO0hKn0000< KMNUMnLSTXp_#a&W literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/boxinggloves.png.import b/source/Items_Final/Item_Sprites/boxinggloves.png.import new file mode 100644 index 00000000..773b8950 --- /dev/null +++ b/source/Items_Final/Item_Sprites/boxinggloves.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxu2g1kcx6k20" +path="res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/boxinggloves.png" +dest_files=["res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.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/source/Items_Final/Item_Sprites/bubblegum.png b/source/Items_Final/Item_Sprites/bubblegum.png new file mode 100644 index 0000000000000000000000000000000000000000..30438077f0c370ca04e06afdba12fd6aabeb310e GIT binary patch literal 812 zcmV+{1JnG8P)Px%=1D|BR9J=Wm0w6xQ5?rVi?m=dp}9R6DkwEH6%mY2=i%^#hrgZX+BI>Dvn}d>*0D&_wLTA)5m>Z?(dv? z&i#DP@0{PckXK%L<)G^3-c)sSZ|W$%bu8D3WtBA?g^A33WF|Urygkewkr`sHBCS z*~{=)w;>&_*5a36l=gJ9y|9k4HEJ;1no)A?5 zyJksrme+QsjAg|DB$n5B?|4V;#X{YLbhrYx)i&tH#$!f&uY2%byGb+{$#_;o6>KFX zSeE0ZP`|+ug5kL$-Kx^z6;JL0@CPXH1&POun5_u_@iduBFgZ)uN=m8pOlTTrTa#`; zCQY|lQl^bA&8p)uBc?}{6!?OoZMG&v7Dn%PvKe1Nni-Mb?{G9X;eO$n?gz6q!HM~w znzmY-@f85h|xM3E;eJT9xv2#bZVhM}rYLr~_$cL@YL|0i}%W z?W;RbS&7-Gi1&hTNNWIuyL>y9wMt+hfJ2hU=?s`{O)2GuJ5zTKlevV7Tazq$of;Db z>s30SMHMSx|CEQ;!8uXZfdM~`m#bo{_q;@^oL2yO52L{di(WY!Zy%loz;&sEB3m(* ztEZWN9uf2XQyu^T4-EJLH1Mnj)ETigwg7TDeVdpBV9~p(xunvSZPf=dpqQ|`+?qZm zBjGMz#yO#{NfGY`Kac?>w!7S-q~QPQR<=d~XM-NtK)ME2XOU_B^ZOJRI!{{HpuTk(>0J>fP00006P)Px$l1W5CR9J=Wmpx0vP!xtAgCL<>ODBse43TjzKrP)$!Ra_f{75Rav4Zw&`QSYFyzf1ibK$?oMA!)p-IVvw zJG*Or8IxgyYa6RftzQE0vNF$e$C2Zcz0eE&0`GO(((AUxs<*_dx5QRsZ|@5El6;?K zNVo?rt7)lJEh(#MsYRk<)mwcRF_Z;{ZpvnIfs1&G1Yj$Ilhts}_93U?ps@s8#Z%-I zfqW@EI}F{FS|s{G_Rm!o@+B#&X|dIq?{^qb0Yf)sd2gH9_ARH)4sJ0+BfE%SbxGx( z*{53`njPO<16%NLbPn+pt|EbOfa${~0CzXn;V!@}W^fe(;f8L?+`$%!MuRKhkr~Ko zgW|qMAzupI+1~!}TCq~Kezq0;;NBT9a=6#`-kC7+%560!wi=UKB>E3!AA3Ibe5CNP z=VRGN2LJQ22Tnw8F~bgk0!~&79Jz)K<+~sH&3j>lZ{qiI|M<1)x8oJ<0jssxVQlvR O0000Px$wn;=mR9J=WmOX32Kpcl3ONB0i5O5Mo5tJ-yhah4Klq)Xt23vfA~mcHbz)5F*!s3ahR?*faI^Jx-U13Eor0mor< z4BT(FPQxJK4goRxW8nACk90m>{Rsd&KeI#dW}|)-d`kdO8oeFf9xjPT!~O-l#ts*C zLbV2f;#mNY$QtDCZXNLHVy#sD>~YLMrCI}i3X2RZHe0h%XEIy)hJ&jV+iSl&Vwa2Q y27JS}1cZe9&s7Ene8Z&zLSo-TrvU%w*W?>?FCriV3SsU50000L literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/fryingpan.png.import b/source/Items_Final/Item_Sprites/fryingpan.png.import new file mode 100644 index 00000000..1afdff0f --- /dev/null +++ b/source/Items_Final/Item_Sprites/fryingpan.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdh5om0n3ttan" +path="res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/fryingpan.png" +dest_files=["res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.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/source/Items_Final/Item_Sprites/hose.png b/source/Items_Final/Item_Sprites/hose.png new file mode 100644 index 0000000000000000000000000000000000000000..821c0cec857e8b7614f06836e7cc48b50af7b5a6 GIT binary patch literal 648 zcmV;30(bq1P)Px%LPh{tdxP z>DVz8+RZpa;!a*taE4?G2#QISEvXR_KN%evDk9@@b_5S*+#{l0te-jiXe zrT($*<(X{QPN+NgdT^-q?gx2{w|2Ja9rppay(-MiDON_&_|=OBdl2e?WKtTo6K?Hn z1JFC};}3?Jz@}|QV}CGILTE*x(>JX5Z z{S#JJH>9BH5x9W>mrfU2%?3T>yAHf5kcgOg2f)he2Bl~6l*!M)x)V~?%l8b>=_L0F z)8N!iJp;-gH~_~}SuZh)kD9%E;1Ed)5cxX@ms^)b>l-)(P>Z{B|k zbs-i85WC)OZ?b=Oo_oC%pja6Zc-iLlmyZD0KRajed0Yv3Qjq#N7A0lc*4*DP!*)V( zJ#ByF==<;SPP|{a%|TWLlMX1#Fka)yzTgjrJim1BWG)3rgGic2%F*?50mLCvwV<&U iKm?JZMU9vGZ}b-!!~&?gamwES0000Px%B}qgEshyBce}~V-KG%oSHqjP z@Bik_>@cvS|4ARdtOZHe+@+hiyjl&OJ$=RUYBf=aE?x87!Xm|jm83VI(E({*{p9c@ zea(!N3qbDzjgN%13_(kWMPlSox(h8Rqi! zEdjLt0)W9If3*Q9>8EPn15tW0^RtuB0fP>N)qPJcv0shdiz7I~r8nDcR7<-9j&POv ziHQsV=k~4uP%C>ZUH)!tZUi8U*UBDm=Ibh6D|?ZkZ+~oz$4Pq&!tHG~Z3V5z&Ns{W z5SA(jV`GkRRR?rsbO;^c(l?!^biEa#Z#um(cP#__P8J}}tP^!~4@ga%Ke_z?lS6-E z=jI>22H--vVho_Y1->nq9LnO`g58I+Dt`a{9yNaOt7rQFBt+O;LV3eubS=G9@wvQy zP2)4*+X8QR3_!t1bKe&DwlJ!v-2uy52Vit`AF0PV{18Ccw2`-88^E{&5=0uenwzPu z->})pvew%&hc+*wD2Qf#Td8dM8UlkSnI@N#j`@xN{sF2l@6mIi3dsNf002ovPDHLk FV1m&P7%2b% literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/juicebox.png.import b/source/Items_Final/Item_Sprites/juicebox.png.import new file mode 100644 index 00000000..dd35366f --- /dev/null +++ b/source/Items_Final/Item_Sprites/juicebox.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://eehdxpdnjdbn" +path="res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/juicebox.png" +dest_files=["res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.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/source/Items_Final/Item_Sprites/magic8ball.png b/source/Items_Final/Item_Sprites/magic8ball.png new file mode 100644 index 0000000000000000000000000000000000000000..4b578a1d7086c4ca1d5705cf98a51f7a90220163 GIT binary patch literal 451 zcmV;!0X+VRP)Px$eMv+?R9J=Wmc44jFcgJPe};mW4qZaPLn`PH{0gCcgDxFPr;QGwygiS?vR|xzLIr5UCGh~j`}0*7H$6D3?<2+PUo17XS+*WqQ|NAIdS)agztn--UK305Tp7=Kz4!GAXpr;tA62#t7mC zz`}?RhI6cz31;!c*gxHFtRSoa$o&1SXVcvXv0Jn`?E@o#$$T1*O0lQMt`UNy1z=&s zyRUs^%Jb%AN-p`aRsI&y4f<_Ar;9?e} z0Is^fz01x9dcI*-R^NI9e6D|t?Q|&VB;ACvC6En9vj%|P%R?bX@1n#d&;r=ZAP*tJ z>;+(S_LK;q{SE7o_8_X-%=sXyL&m$HDkJB+ph^hcZI~^As*1I(Y<$cC$BL+Gb3m~P tW!Z4egm+D-DxdT6t%|Kh5Jw$^egRW*$Px&mPtfGR9J=WmTzoRRT##9ZRZjicg|DQ5w0T zH1b04);vMED47H6cesT2z*Ah1Yw57P%qyoo1kXqSDDenie|S!pt0V%}?{Eq8${On1 zWjytrnz_T@p5&ijYkAOoS$8|ij0*eQlE%KZ-^qr8gJ&c>^)M9l^M1z=&+O?2YEj}5 zey2h=N4KC#+_rZ$04aMXqn@J$h17QM63@OEV9J}oys{<}SK<+NztP1|(9e`Np}P%v z4*1-XXxqD*l)V$hv(zZ>H#{ih0v{L=}E#@b!x-K+4JV$-Itf?2CjWhC5B@3fpEPe=m zZb_)5U+qgE+0q8Jejetx-PHhueC1TNSV%@p1w{bd_t*@8Avxr1!T2>n_1$jgq7v{I z0AJc`kZkGht6D7lF?ySj)sk0i=J-Jq-Ma+94gYljL-ITU+346T=R}fsyN9Y43!zK; zc{9fk{-;kn??sM^l8X7GA$} zLzC<3>DSyD=RV!OBq#E=Aok0nJnal4M^hOm%4lx3nk#^ z{Evf%LUbqlR@eoA#~IGVy=34oo0)AY7ILc>D}ftZ<(hts*K zf&GRebPu6Qz?fa=#tV=G1Y+7_Wp3!C8AKrwhW~e_DCj~_0+fKC zo?`<5nQpVOq3;y(LX@VB>i{sfI#B|C-C9Kn0O)`3Gt8~dy!idWS>%Q2lIs*Lz})IY z85u)bWz)n}a<%)P=B^pmDf&g!?C27Xw-0df#5bC_N}Nq@^eGnYfJ%@}m^-%=EbC3! z?C26@FTG~CX0eNC*^km@N0$J|6_Og*4^Z4yyc{7a79+j~6?Xsu(}omv%#vyV0000< KMNUMnLSTXgIN0g{ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/marbles.png.import b/source/Items_Final/Item_Sprites/marbles.png.import new file mode 100644 index 00000000..d1a1e42c --- /dev/null +++ b/source/Items_Final/Item_Sprites/marbles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cam6hafwuwn0g" +path="res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/marbles.png" +dest_files=["res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.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/source/Items_Final/Item_Sprites/mop.png b/source/Items_Final/Item_Sprites/mop.png new file mode 100644 index 0000000000000000000000000000000000000000..c9d46a94bef731e51cab934786f0e826bbff5b72 GIT binary patch literal 562 zcmV-20?qx2P)Px$>`6pHR9J=Wl`%*gQ5=WAScgs_i=ZHBmJS^pu2N6oC^$qg2qK7}L!nCvJxbvS zr9^P((nU%^P8`J{9aM^oLj(mIhzX(6wSx(P(qiFAZYXr=>rn2I!)oK*yL9nCy?gKA z``+*W9uID+$CVu&5t&pFT8x<+x-n3AQmH z31mk{#L#dbl~3(U;SkX+@OJ($I7E;@H?c=1&~5CI2n2yE69@`dA`k{1S|BVulz<9& zU;$O|YYSMWEq;`W**fNz7|-fEoL51Qz@Owxp*>x+iU^gHd{P<^%TG-5#~%t zfljz?XcvCe4Na~sZ|0@YAK9D;Dj{3oIBoJzUdV-bGJ$Sr92Aa-ClkJT55Bgt&feBL z#-=6$x27Lp{QkUXw;fJC?!<-$Q=(cdGd4AWZfK;JCOIe^kzSgVLIBlbxik8}=i<`X zI(PK-TZ7q0i|B^N+R8c*uJ3_rE|ZJo8vghC4KQ>a`wz&v(*OVf07*qoM6N<$f=6uq AqyPW_ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/mop.png.import b/source/Items_Final/Item_Sprites/mop.png.import new file mode 100644 index 00000000..04dddad6 --- /dev/null +++ b/source/Items_Final/Item_Sprites/mop.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3o5u4wsuwtfj" +path="res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/mop.png" +dest_files=["res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.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/source/Items_Final/Item_Sprites/ovenmitts.png b/source/Items_Final/Item_Sprites/ovenmitts.png new file mode 100644 index 0000000000000000000000000000000000000000..266d0f95a2769c2701e2a29d97b1c322851d7f9f GIT binary patch literal 748 zcmVPx%rb$FWR9J=WRzGjrKotKOVq%F90$9S57Y`K!Bg(>#Iz(M5AAliyzfFgHfQYr~ z#LiMNFm%Y|1<4=-F$82F;11Edp3i?%DzyV|Io+N8et+)Wvw?G*;~$6gH(`FeDN%!klEtmIul4td#mFm0HBcB zVl+FM{M$O-eqLF(W+PwT zqnUFeYal5iYk)|6x_${%|4&n9$-6Zh6(t*41Ak25b$LWH=LD*sLIeZ+%8BH}QetmH zfIx3JmcITd`zn~P{+4E=Z>g*yiOOlcZtQ(Gh-xae1AI3VYoKE+7zth}y+b5uUu;~7 z1bV}<^zfuIReWO62~jx^EZT~aMN6}BXBdHFi2YW#8@ku6*}hIFj*n&uEzM@{h+R^g z_bnCQO_Sj!c0#h4Pb79k5ln2^VMUzE0dk?4b68P@InlRNbc{u;a&n7T52W}b>J7&d z8oCG50kvb%3DK1>f&c>GsT`oVGYpSZMgg=m+ea`CIJEPx$dr3q=R9J=Wl&??2KorLxKg2Q;5R3#&#nQQ+!y`zj0!_07v%l*MNpt8;L4uga z4L5>7kpN;71hW*wYu>%PTYKxo67FNJz1#Zz+`HET1Ooq^ttNktBT>-%m$!-c^LCpA zizMYsg|CR001tlsnriDrsHiL9T>+7#Mlgc&e>wY#Uue*mm zm^|NC9>=y%I44)K4DDwFO~zHFl?0GhyJMB0BSj>sAsk1A80vp3GtvS$$rmC2j00000NkvXXu0mjf8?(Un literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/piratehat.png.import b/source/Items_Final/Item_Sprites/piratehat.png.import new file mode 100644 index 00000000..f82fe5e8 --- /dev/null +++ b/source/Items_Final/Item_Sprites/piratehat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bng36643tueog" +path="res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/piratehat.png" +dest_files=["res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.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/source/Items_Final/Item_Sprites/pocketwatch.png b/source/Items_Final/Item_Sprites/pocketwatch.png new file mode 100644 index 0000000000000000000000000000000000000000..2a62e81650b35629762e1c896fb951d62b94d458 GIT binary patch literal 681 zcmV;a0#^NrP)Px%V@X6oR9J=WR=;c8Kp1_l+d-hxsU8c4Qc{YtXc1jPjkZE4G?2yMsX|LB=pQit z2M$V?l1_mvH7%6RBE?I|;zgn^m_VT5!SNJglEH}UAU^dZpX58&rAyvq-+lMJ_x;ix zaD)Ghnu<}>_c;JOc|6CDpC;%x0MxA`B_C@G2t9*GQN48k&4(8o5h6v@_c?P+US-1^ zlQYNUN!(ttOX9Y4T?wIQtRycA5y_Ic%_#tF5vw8(J%fjyv9vFeMSVZBsSxT400YZ2$6NCOsGTY+$RURE}FJ zDhX_Gj9{lFCGYO;>$qACS?Z^gQI>l8Kb?&JsuWroxO?wDfP5ypyZh*U{kU$N<#&My zA`|ORB8ucxiamP+0_gQ45{r;UPHS;bO@USkfIrPwHUYZO8pAR%Mf|fdyu6rgJOh;i z+=J`dd3cD1+rjtXK~4xDpM9O^0fi~}G<=9Xq#~%XtnN@w3}ocvMH4{0%Dvic=-U>5 zbmt5JAie{Npm)P~(Zu^Px%sYygZR9J=Wmd#64Q5c7xaiR;M2@Oos!jbUOBs5X!Mr2?FT{MbWi|8+C8?Fl4 zx~N4+>sqvE*-A8sD1rzHMqDVw#0)i8YfSuh>_fBDVmjCRIrqa_ zt4}KRrT9i~SJ(42Hh0?IJ+5{GkZe1HR+?o?Te3lTW}rMX8mVpdwN)rID8#DkKPws8Q@}w;rj`DQ~t>&4F z9|6e7;L9}6UYrIXetm_3zB$IpiOZ?8JbZMgE=WTV^WJ!;$eybZttdn*3ILa0H8cL? zn{Dhs-yA#131VG2+xZCv&>Qa*H{0KvV$q61=2sGcoz-b}R;T%Nx6JtS786K42wwnB z<^Xr!opM~gRReu<`j-+IAdI;+3kyq4uJilKz{cmFeug=!p1E%T2_ZrJrrv0ty`nm9 zL!hrff&lE6)*SnHOKYxuPV)Q@RI2k7PDDw4-E}l`Q}sh0&a0jPzB5ob67@UOQS;@+ z-~h2yPAs%s;NJI)4k1A%Cs+0bB;~pVu~bgTatiR6Zc0=4YYzM#nKjsGl_zf-?Kf}`pWq1Gp002ovPDHLkV1lA)R(1dY literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/propellerhat.png.import b/source/Items_Final/Item_Sprites/propellerhat.png.import new file mode 100644 index 00000000..c08d1f21 --- /dev/null +++ b/source/Items_Final/Item_Sprites/propellerhat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dghjg34gr46gq" +path="res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/propellerhat.png" +dest_files=["res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.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/source/Items_Final/Item_Sprites/puzzlecube.png b/source/Items_Final/Item_Sprites/puzzlecube.png new file mode 100644 index 0000000000000000000000000000000000000000..29e0f53377fd273642911cf77698655b46426381 GIT binary patch literal 737 zcmV<70v`Q|P)Px%n@L1LR9J=WmQ7C+Q51%s0WD}#Cl$JA7u6KEqa+v?#uzaq`~Ve*ZVVWO4N*6& z6r(E=6I@n-gpC10ObBcZs8Kg1rlD%AA5buS2yIM(ifsdRQRdQVr&Bsx`zDjzd+x{k zOzt^%21+XFf0tx-;R&~r%8q?s2o$|vQ46w7ElP`MCj!H!VDe6K*j*{vR+SUCIz8Nf z)C0i7dtI8bXESd_`pcy?ynofmf-YPeCk#LfahyV;>pxpFfPoyJ3Gt+B;^JG;(WI@dv$y_62T`ac-_0z623Ong+_{Bf?zOO4!EYWQBPE z`_@n0xLTgc>N7cGK1snRDQrjAS)8n3@XZVJ0BRDB$QBXPE6q%EKpaaU^MU}Ii68*2 z_K<)WpYRHZ*g}}tLYT52FWHW+<8@2)DRNHo{r!_a8TXw7t@aR*zKGQO!It!6OZtUj zT~kFB+N~0;mu`s&~W29ruQa zr!OK)&V1GQ!%!%5y?KDlO?q*qAYxz`;n$FM&3;t$FOPx$u1Q2eR9J=Wma$6$Q5?s=mxmyd$gM7+)e;dRC=cB14`^s~agnxy{)gt;q6Qa7 zh1TF&N_Z7$gM(1%5V*x5g4A$&P480gz31s!6x?_F{eF-4{qVc@?)Ly+zUI`R6tg~W zx2$FDx3Y-Qu-(I;6k7^}5Fn6(sc2=#!qX@!F5GIOO;b#!1}%>)>>d!7tD1N^jn03YE00;o?n+#IFG?*IVc znq~8G=*5uhN$Ck7n~$Sb?s$T51t9wy&VrZ);%XQ%iRJoLn#jo4pVb#o^s9f+&omPN0000Px%?MXyIR9J=WmtROzVHn1L8zBv^hJOf&hzev75fj5T)<`HyL<%-yL`-Ty5e$}& zDf9=rSu%BH7opBdyx7GCg^3qI!a;0a?IHxxx`@yv=@>z#$k^A#I45yVchn-O2M&Da z{a(K3`JVUvKF)#v_}8IPlk9425o=?i7Y|jfu@-yO5cfX!12B>Z0#IAw0T9~}vY`N( z_|cOe09c;J0jREgOZz)F8Q#!+_%zx(X92`kMC29VYHSgw9ykCvH;_iM1UXSU1Axa> zOoBcfULOGALzlP@Oc-rqJRVggV$%}z45g{Ayob$a07e0D8x8|5DiP}nkayoRltxM}VCygd5N(^wCcL@=K=a8i+#Lqy>m5jzAeo6mX@5bRZ{qT| z0FosL7Y4HArZXfORscxU-%#=nHcgTa`LT|AvO99MQe(8`oR)mZalqBsBD$Mqly{qN zAM^DNtUwqrJC}hfpqDY+09ak6SrN1%B^NLk%D$ceK(W|bQc4+N03=Hgb11`D|6V1> z{IZuwN{e*$8fHLBE|7TE2l~PVUP~ z#^X_q8H6dY1V9X(LT(ByfvcEA!wMCHMF7fCB$U0RIzx-#)fFrtZxhOhq_o7mI%2C9 zb$ET4oy$a0TEc-gCEi}HC+5|m<{0KptTEce*v0FLy#RK7Mj4v|OWbx9D{;9u%+6(1 z0yeyeWOCW&NT7|1!6Kz3t6?4WkPi7(k;4Wh7>`Fac6~A9SymoC6Mt~ xl|l$1N-FE}y0EREib6!lPx$$w@>(R9J=Gl|5_1P!xvWTL?m+iWGzl)w>jNaIk`_>5%ql<(8z}dBvLzn)9 zu37BhA81qPAa2(dxezEK1tB=x4&jCvKbntgD1DbhE+OZ+=RM~H_>1Z_>msXMXW;{r zQcl;~BVQ&QhuL`$!Y+9%^>5!;<}h5%Vtq4}1%OwH z#xmzWKV9ju>_`nDB_a5tg>gGCMtUa_h!Oz1=mG$Yje-7pLMCrs92BbAEGyXuCZ+z( zgYlRxN-EG;=3r7PEXMo>@Sso?R*7vvb~Oi&n-YwT;h(1lkhc# literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/rake.png.import b/source/Items_Final/Item_Sprites/rake.png.import new file mode 100644 index 00000000..3ee25a38 --- /dev/null +++ b/source/Items_Final/Item_Sprites/rake.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv8o5xvrm3cm4" +path="res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/rake.png" +dest_files=["res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.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/source/Items_Final/Item_Sprites/rubberduck.png b/source/Items_Final/Item_Sprites/rubberduck.png new file mode 100644 index 0000000000000000000000000000000000000000..0e3039ae7020cf8d9217fdc7e0a07b85988d6027 GIT binary patch literal 613 zcmV-r0-F7aP)Px%A4x<(R9J=WmcMHgVHn3h@tUYK)R4%?{YLhUfLVjW4HUNV{{!gAQF%A*Z16*?ZpySJ@FV8b5 z+d~Ic~iNoR$p>korK~G*i`bR%rTlkI;pt=R850p5xZS ze5l^;>^RTgdxq zS2iNqA>Eo4n>Q*MU+zishi~weX22bwI1xrAL$_ve^Zpen`R3-gP;IP$J^KdWSglG6 zToJ=@kUaSIkl+JrB||)aEcg4k>lMWEMw+^5jwS#cGjfgSZxKfh3PV^o&D8Qn+KXjg zFe*7H{*po1mQ{!WDfvhOfPx%uSrBfR9J=WmcMHgVI0Pv6JwUd&?_7q5~!s#QcXhb!3`Y~L4=x6>=1BBwu1fx z#{Iff=pg7Kbn6sImmm`DB;_Dh{E^tCwH{hXF2I z8_>wq!!B-eP2A2;08i~<%^H~jvr3A>ywEw^`t@}r3S(rlKZs|YIoGk-Mqq}R4@Jmi z>jbL{!>8kQzTdG{Ww0iY&~6m~>%@Av1LanQk^Mo4y)KfRFm!_V6Fu-cj~ibmhfb&Z z)DhFpj`N#q8$ntN3_+9>g((I!0Kj3>f2!$TE9@9xB!Y6Q!hjQq2o-6K2RMPy_R_sO z)B6Ah>vRqbu(Cf0G@Sw1_R2h96o5`W?S|OvPyb#k3|{8}z%&yc0Vo8}k3;pTp!31& zJWgU2l#Z^!3`s$q6dwy<2BF31NoVfvV*O1Nv?Fc`y8<{3ghF^J?i#=dV(y054vc*X ztwi4ontL&zA(4NCY({eZqvZ*JLc~^bCqNhE+dIjxv2RHzha?1cf zHn;MQqww4TmJMMsmB9S8h|R4$({6Y0cKbD!a?7rw@C1;}NMtdUK%-Xuvu1>dh!MvS zo&Z=jghs83?0z=dQ!9SY58Wj>56B8Hp5L?US{Qf~|R6Op$CxBA<_b zkZ};6Zb73~MP07j?thTC831JcG5YfW$@XTr0?1}0!m=Sp-%E-)ux-^00000NkvXXu0mjfrwv@? literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/safetyscissors.png.import b/source/Items_Final/Item_Sprites/safetyscissors.png.import new file mode 100644 index 00000000..f6088e3e --- /dev/null +++ b/source/Items_Final/Item_Sprites/safetyscissors.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4xjbdxvn3i2l" +path="res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/safetyscissors.png" +dest_files=["res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.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/source/Items_Final/Item_Sprites/soap.png b/source/Items_Final/Item_Sprites/soap.png new file mode 100644 index 0000000000000000000000000000000000000000..aadff60a19515e8dcd07e7f59204e0593a8705ac GIT binary patch literal 880 zcmV-$1CRWPP)Px&DoI2^R9J=WSI=u2K^T48M6j3A1QH6eWWkdw0ZVe&ix9kdu_s#)ym&9lrVu@e zHz_8x1U97o##K!5v@2Y4VI zj+^~kYb!=W2JsW&7_^2r%;4a#f$_~01H;~{$v0E z$W|+;U#O;_Y_)=;V%Z!Aj65i64U`Hw=DrIFn0IbXwsbfSrL7_+2}q?A$W|-1@uJo+ zlaz&J*AW+Tz;K$B5;!WBp|n*rwH5$l&QzMMtzW2!h6MD6I;I2X-hfX8Smgc50JM*i z9~H|8{4`DHQgUE+Os_8kiwmIS`{|U;IbbAIe=X2{B24 zTziG2l)$F2fiK@DCb<~oadqf}7eqj_K)_OnZo&usF!B$RbBq+onk8HJKb4~>>>YTzc zNyxk)&z{F!!)jDLFl)PC!m;3pfUeZI<3km_q3)PW!~M6&nF6dLy4p+x6~ub~`H>Ss zT;CV2myxd2xKn@thI6-LHXXp1-0O+wc^gs@0UqXUMsGd}FLF26RxI?rB66NwUj}gh z(bRFHE$SRFURsOr{Wh%sz*yUR=j`|3t)nvPx%F-b&0R9J=WmO)6{P#ng;$%X;Z9R`6}T!(`VR-_V&Vy}8_MHtp9=wKHi?7Tx! zaiy>xJc;13dQf+e&3Y?4D2zy@=%gw-SXqR0P@JGL=s|cp)MR#B^8SzJAm|4n5Az7UwY@PXYj=t_0WQ@9bq>SwdHL zKb98f9lhi6B<7|kpqI+n$*$B6&?5)fO7aJSvjKQz2_vs3@pXUCy8raKugY(RPx&)= z_tA$>r5qQ+(Ga`;jE(Gnh9}c*K{!b-m7$I1pry{S_T?cGr-xhsZVwzyKEe?IZ8XQT zVq@b3TIwFxCj@Z%VjE3~4rqtxgmPlx08qy>wD}(3EVgNT-@EYbpRu#zg?j)z2z~I$ zpWxVL#W%A>2H-w|s}T81h^9nGCGg5j+t&0dKNW!tU_t<}K->@)Aiww13jQ0!&hILK z9fWPTs$5>RkO25is49S}aA#H>PM6~fWa}GYl~fhvox0l$pV+5rH-C`#}& zm#agZq$)6q63{@(r}cnQto#E!A2b+!K?}$nuSG(yq0tv~E!Y(4ODL-EFXQe4h!g~X z$Eh)Q0qhEjg8fh24MUF{VBuc{p`z)AR?=>W1Rx3_5>5s%At*kP@LOFA{RZOe*`o6% Rsc8TJ002ovPDHLkV1myqAAkS= literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/soda.png.import b/source/Items_Final/Item_Sprites/soda.png.import new file mode 100644 index 00000000..5da22444 --- /dev/null +++ b/source/Items_Final/Item_Sprites/soda.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgtydwnlm8cga" +path="res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/soda.png" +dest_files=["res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.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/source/Items_Final/Item_Sprites/spatula.png b/source/Items_Final/Item_Sprites/spatula.png new file mode 100644 index 0000000000000000000000000000000000000000..f675b6ab805d62e6fe93d54269c1062fd765186b GIT binary patch literal 555 zcmV+`0@VG9P)Px$nO22>J+oRcdE4qFr0IlTcOgXlv3RY1Ko+)IW9G$7K-c|*xsKR>NJpDi( zNJ6xtb9T3D?9^TX5cn=A_Cypp4!^p1mN=W!ho!Alt|);YNc#I9zS~6 zGgmBu+WQWH?^4=w4G2J|(P4RI6@X74-tcbsb_%UME`X08E{p7+O-th0v&VUyXL)HY1NAYOwY_3km;FOs+F<< zsaDFjew0M7p$19fD3iGuK)Cbq21FKf$k_`V+f!3>3udhEyH=K7Fp&qKTUn|Vm1BD< zthd$X%P?2NxzibNY)>scw@KpYuDSwRS$g<__E&^ txj78zhPVAjjU3?T$$rmxRMr0%z#lZ`6lR$8B8~t6002ovPDHLkV1g1K1aANU literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/spatula.png.import b/source/Items_Final/Item_Sprites/spatula.png.import new file mode 100644 index 00000000..c1e52018 --- /dev/null +++ b/source/Items_Final/Item_Sprites/spatula.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n4gexuvjvwru" +path="res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/spatula.png" +dest_files=["res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.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/source/Items_Final/Item_Sprites/spraypaint.png b/source/Items_Final/Item_Sprites/spraypaint.png new file mode 100644 index 0000000000000000000000000000000000000000..2395e8903426c690702709aa1ded3415de8bdcb1 GIT binary patch literal 527 zcmV+q0`UEbP)Px$$w@>(R9J=WmcL5^VHn51NvWWTU}_|4kSGVCgNcYsVMY|{mSg`-dqYEO5Y-gb zQb}`#IVgfl23`%KQipM%IJ^yYrsm!0t73!S?cV3thxeZ6?g1v6Xo!kN;v^c0ld%;h zgb04}f2Wb;qc7WepLBoNvG00cyQ z3Z)uJKVC>ePyu-SG2&wwoSqy>`h`|D06-Fg3P8AGAHzVWu>t_9{A<(RdS*ANk(S6c zP!kG;I@JmzCn|tKsfI+VF6);_)&DeTr>L9I;&$SJ`+erP**3erp@7Bh1poXp8UT)a zhiz$D)UGoufX!zyBa??3pc_ypKrfmP{D zVqvceFshKujR-){=As?|P&IzGo$EB#p2l%#KOP)Px%_(?=TR9J=WmN7^hQ5eU6mXbgr1}|0;lchq;AYu;-2QjpT&_ba$Ag%3C3U&~| zO`YuQQnZ^(2OXS55Tu1dL25w@2bCyd;k48xF(P^r0|m2Ohs&M0++Ct}D24nX5Werd z_y4``eR(fXS6%;D4b_q(!_%6o=3VoG;OE`+aMd-g1TZo@tpSMlZ*#*RptBaMyPqej}FY9}Joc#n)vl4R)YZ^d$Wy2h6tHA5g=Ky4K1rF6yW~S!384aSUdGm8K z8U$c>|A-c$k)iQ^s`bj;!kVUOn)dQ(+?Kmu8JK+Yo>!wU0EmQq42}2eiD!2m7gv5B z@jI^{k=s!i#=HAR)d5sB&)CEu>2-xn_5c#12~w%8?PGR+Yy%)AL}F45DIp@SrjZgN zEkYw6uST@B+11{601@h{vmMS}w(;67)r7 z127;!Z#1J3)9VUSyd5dtPVuY(k5?m;J2k7L$ckBk-X}V+G568{PB67%04Hj(reURQ zzk*Dz;5blTU7qGQ+1*8J}H;cgck<5ipr~2*@Ty_fZGvdvInk< zL_$6@FR!L;`Dzdr073A(n}mZ^Ar)Bx^a>oRr+|C2mdkb#>7A?_L_$6?xdM@pkMOO~ zIZUZfj7O?T@R&K{BC3>I4>|q}Pt+n!g2!>EnOuPrwP-%k#`u^Nb2KoF(<>Whto+e( zy$1{kL)pEY88<-6rN|1AaF9qiNOmu0jyH_mUP=o<`j-r|nD6}g#Zn-XJ+K^u)1@;x z`4)iWorjLQtqHIxFEs#~u%tI*Pbz6Kt28wpBLluPpG|qGnx{pMbX`(PE8hiR{s$Px$c}YY;R9J=WmA^{EP!z_0ijEE@*tsG_>?Tfmg*-x@z)7JExaj8U;wHGb)~SNN zLKllp0g+O0l1Ssw!ST5CCTY^t{>i;M_)V9?<^I0&otqo@mmyU>Uw#eVXthN|q|s`d zH&OL`5fOO|BM}iXnuO|H!LPe-=2FOZuHbu(<1quPx(u8)kLZ4Ua8tDY}G?}?xX&pZ2Z{pRcntnt0t5~!!Z04LrdSTN{3tQawHesLMERp(haK(0`R z>|Ix|fM`@GfR}E-cHHEKM@fC~G8qmfT|xz}I5omfa?7WIm6lGxc3i1AH2}We*8v#z zgTly5HIRi5`vFiq?@3ztD=31eXFrP;N?;m%mbouwpiDT-If6nsi@{-z1j_DwE(5yY zFvAFR#GcmF19Wz-RG5J7&Xpz}WTJDWTmrV^%Eorx2s~%Nc3e?UX$+6_!6ExQ9>KHk px-NL$K*oq}IQ;Mq=!X9ZeFHqN1sM@5UgrP+002ovPDHLkV1jgH%*6lz literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/toothbrush.png.import b/source/Items_Final/Item_Sprites/toothbrush.png.import new file mode 100644 index 00000000..c02978ff --- /dev/null +++ b/source/Items_Final/Item_Sprites/toothbrush.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jn1r45u8tnmk" +path="res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/toothbrush.png" +dest_files=["res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.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/source/Items_Final/Item_Sprites/toyraygun.png b/source/Items_Final/Item_Sprites/toyraygun.png new file mode 100644 index 0000000000000000000000000000000000000000..316bc9b590c56e5743a3fcda5bb963b2b3212b4e GIT binary patch literal 788 zcmV+v1MB>WP)Px%&PhZ;R9J=Wl|e|8VHn4MpL0%hqr-CbEfNXALmILccHCi%A&3%2ciFi*7duJU zQ0XWgqFWKpK*!j@F2R^aVnV|m#A2U17KzI?r+ppf`}uuyn{#59_JPsYxu3KfKuW_+;yq|%+*E4 zrZ)(L0e=TG)~q%HQ#o=^ze3m5EQz>_OiC_WFc41j>2v6xz_I%Uw7~0dt0P$}idn%ooYD&XnpA0jR7~q0yu$d<0Wph>pg%z* z&(vQd9u8Frmt(0P`hd~As&EtZ@M+&Oe#+#Y;hSP~@m1 zLWH$t4=A=fyWhsD&BWl1uYg3*pCJ0GUivDRk+?Jf^y3j7if%7T&+l4Q0H3F|uJ%KP z?||MD`mqQxBKCP&0qQ2NC_s-=bFSJ}hsc})TYtSx(F_uGKtiO)+c zaH2rDzoal>%wjv2HmpPx%)Ja4^R9J=WmOo5dK^(`wk2cjXN^?c}`k0zjki@`bNbCe#2a=aA&t2l;;9v(j zI=DIz-E~nDciBi7AtY94!la zvj1$#v=fS%lGMGniLHC>YC# zk)OaOOc{tkfMO-~24b=o6j z->bsd`c~HWzy<=a14nyZP)hmuyc$BaG8B9n)XCu$bVCC$&V~$xZw3eH19`P~z zO0A|F8ukyG99Raz6`+_&nQSG%c!kzyKU-T}!s*$KG=u}dD$auR%>hmhuegtHXsA|( zyd143e*d7!51QT&Fe0mhzNUZ1+j_)z;WYRu|w#F=Ey=wRvZ}LcIiX}r)M{U7<-PZGibE> zz7Y1U2m#}J`{eK{P~6K3`4}3lJ_sRLTU`>~*&(Wxq0lGzRlHX}SNi5_lTBjd_69Uw zr4zy`Jjo{S1(SG=*aCptOEY3CH8IbGbsQxtmyVxkzg{)c4^9)QN9MoQc+=Qp`|7VsAM@_GEKbf2T Y0c%H?_82T|^Z)<=07*qoM6N<$f?%V7q5uE@ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/trenchcoat.png.import b/source/Items_Final/Item_Sprites/trenchcoat.png.import new file mode 100644 index 00000000..82b59c2d --- /dev/null +++ b/source/Items_Final/Item_Sprites/trenchcoat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dna8nprqj1ifn" +path="res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/trenchcoat.png" +dest_files=["res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.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/source/Items_Final/Item_Sprites/trowel.png b/source/Items_Final/Item_Sprites/trowel.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5d4e03736cfec6bfdbd6b8c0ea817a99196e25 GIT binary patch literal 596 zcmV-a0;~OrP)Px%4oO5oR9J=Wl)q~eVI0Ok=MPkH2_44vs>diqIheDWXH^+=PNRSQ?5MqL9*XrA{h{=-Z)vk4wy(r1v9JpY85AzMuDb zp6?6iQfO`>BjzSDBJMetI=!4VhsFKrtEW#H@%qz_HZXu$b6A+;LjdTyj$HsCHi!$| zKDw?8fL$0Nt~j~^_!Sq#e-RX&eGL#W#O+&Ga9tN&*Q1`R2IvN17e*lBK6C^aB!m)R zP!K&!SakL^r+UP<#&4i?GqR=~x|CfV@I%n%MDgynXeiZ-6s(K&6A`SJqe8_)^^kV0mSMc1Kj|YYkP(nzqPU zdElg!QaigxEUzrU3q&s`LOYNgJGl%D!(e-(?71KzdN~nE1X4jDLIbR?u6Zs5fe6(B z-~Nl4XHUJ0NkRbLW~g*A41iSQpt|(a{kLd7wD|S?2LOpgg3S-_N#4A{U#?SlK22j! zEbi5|mi+%l)`5ys(%R$5S^1Xr?4(c;bb{bC4uHd2(}Pe&5h;Kl0zmd6XXTYHL=NDC iK!N~Jj$_ifBG54m9P_&vMCz;n0000Px%ElET{R9J=Wl`&`&Q5eU6id&!@NywmZ9U=`$6DQ-G8w6?0);(EVg&N4>9Eyct z$AXB>p17nsxTJ#!rB3a&dchP7G+<4n1YKOtLEm|{m)v(z6e0iRKJLBm`~BZ{@7{x% z{#UK8H|^E+rv1<0=Fz}5j|P9=gd5&`@%Fb(T%0D!dN=qbwsx#(`N0iXI~IwnQO88< z$2*!#ogPm+aj$CzHX)v@ z;C>2fLbM0wGbn>5?t@pJ?*U4ch8V2m z`>p0PD|XVzF&g%ni(Gbq`v*e+9&K5ShJDIKgIc}K=Gro)N`vFQ4)6CL`qme9U^MJI z&sx2IZd}33MT1hMLAhvfuiTN8mLEjrq5;6>+VZ(E1$Uc~N@T!mg>F-7ymNR!t=^`P zjfoA2_P~{E3ly?37E+4Xi_AxB)Z?F(3xg(>lPx%I7vi7R9J=WRliFcQ5^qVX$%Nb&}(sMHw?+kK~oeG*>mNxXAa*2G)1AIfj(h^Z$EywC4w7hlScxkFhQ}dwk3iY z)GT=?MBHvQzzZwMj59Oi6Jz-D`3TEP^IT!KM9Cf~bx%UK&q^{wXGRqV`F$MZ_mN7Z zF+MSNMbvdLD^RBP6meV*FoPEt@8HdPzY}w2RAHJXwsLFk9h1Jjishvi z1oZTtqg0VG9BPQLG5J__zHRbSC5Zbob1ZTIz}_K$mbewr!Ug0`M*#p?L>ybzX!w;X zK>)CPKk3;0{>Sd}SNg3R5=v^eS8t9buG=L!&(Z1!H1hC`Pk7bZCok-l@{{Leoc`pyYHCO3t`ZM5}}xQVZmvQ7gFzHdSzqP;^Cb5Gy4OxiYxh%)&C z#k9Eass3jWk<(u^o6C0#Smh=nvRgt#BuSEION5UR54;I?U%8^|*A3qlc>QvNo-I59 z08B^25&)zUX}o&(0>6INkV>SR%Hw-#V_KY4RmI(r!7J;W7qRmKY!R&W|8^X^=%N$& Y13@_gzp~jW0RR9107*qoM6N<$g19Cg#Q*>R literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/yoyo.png.import b/source/Items_Final/Item_Sprites/yoyo.png.import new file mode 100644 index 00000000..7faaddd3 --- /dev/null +++ b/source/Items_Final/Item_Sprites/yoyo.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqmbec8uh8jaq" +path="res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/yoyo.png" +dest_files=["res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.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/source/item/stats_and_item_handler.gd b/source/item/stats_and_item_handler.gd index e6f7ae02..69cae725 100644 --- a/source/item/stats_and_item_handler.gd +++ b/source/item/stats_and_item_handler.gd @@ -36,4 +36,3 @@ func handle_drop(item : Item, destroy : bool) : #(queue_free() is temporary, will change later when we know whats actually going to happen with the item) if destroy : item.queue_free() pass - diff --git a/source/scenes/IteE421.tmp b/source/scenes/IteE421.tmp new file mode 100644 index 00000000..9b5a0f2a --- /dev/null +++ b/source/scenes/IteE421.tmp @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] + +[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] +[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] +script = ExtResource("1_rryau") + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") + +[node name="StatusEffectManager" type="Node2D" parent="Player"] +script = ExtResource("4_t3y7h") diff --git a/source/scenes/IteEC4C.tmp b/source/scenes/IteEC4C.tmp new file mode 100644 index 00000000..9b5a0f2a --- /dev/null +++ b/source/scenes/IteEC4C.tmp @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] + +[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] +[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] +script = ExtResource("1_rryau") + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") + +[node name="StatusEffectManager" type="Node2D" parent="Player"] +script = ExtResource("4_t3y7h") diff --git a/source/scenes/ItemTestingScene.tscn b/source/scenes/ItemTestingScene.tscn index 54ce9bd5..b7ff2b9b 100644 --- a/source/scenes/ItemTestingScene.tscn +++ b/source/scenes/ItemTestingScene.tscn @@ -1,10 +1,7 @@ -[gd_scene load_steps=7 format=3 uid="uid://csmmvcufjnsl2"] +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] [ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Resource" uid="uid://6ukslotnk4y3" path="res://DmgBuffItem.tres" id="2_blmat"] -[ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://DamageWhenOnFire.tres" id="3_h0kxt"] -[ext_resource type="Resource" uid="uid://bfaht58ucl5e2" path="res://DamageBuffWhenLowHp.tres" id="4_s3syo"] -[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Status_Effect_Manager.gd" id="2_evv0p"] [sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] @@ -12,7 +9,6 @@ [node name="Player" type="Node2D" parent="."] script = ExtResource("1_rryau") -items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt"), ExtResource("4_s3syo")]) [node name="Area2D" type="Area2D" parent="Player"] @@ -20,4 +16,4 @@ items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt"), ExtReso shape = SubResource("CircleShape2D_f54gc") [node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("4_t3y7h") +script = ExtResource("2_evv0p") diff --git a/source/scripts/Item_Advanced_Functions.gd b/source/scripts/Item_Advanced_Functions.gd index d40e0a71..66ec5a20 100644 --- a/source/scripts/Item_Advanced_Functions.gd +++ b/source/scripts/Item_Advanced_Functions.gd @@ -1,3 +1,6 @@ +#THIS IS THE TESTING VERIONS +#DELETE LATER + #class_name Item_Advanced_Functions extends Node#extend node to allow global script #THIS NEEDS TO BE SET AS A GLOBAL SCRIPT diff --git a/source/scripts/Item_Test.gd b/source/scripts/Item_Test.gd index c2c95086..3611965f 100644 --- a/source/scripts/Item_Test.gd +++ b/source/scripts/Item_Test.gd @@ -1,4 +1,6 @@ -class_name Item_Test +#LEGACY TESTING CODE +#CAN BE DELETED +#class_name Item_Test extends Resource #basic stats diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index 842c59f5..1ad005b5 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -6,11 +6,17 @@ extends Node var maxHealth : int = 12 var damage :int = 0 -var health :int = 12 -signal onAttack(player)#This signals will emit every attack -signal onGetHit(player)#This signal will emit every time the player gets hit + + +var health :int = 0 +#signal onAttack(player)#This signals will emit every attack +#signal onGetHit(player)#This signal will emit every time the player gets hit #more signals to tell items when to trigger their effects +var onAttackFunctions : Array[Callable] +var onFireFunctions : Array[Callable] +var onHitFunctions : Array[Callable] +var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter @onready var statusEffects : StatusEffectManager = $StatusEffectManager @@ -26,37 +32,50 @@ func _process(_delta: float) -> void: print("damage is " + str(damage)) func manage_test_input(): + pass #Press enter to get item (currently only the DmgBuffItem) - if Input.is_action_just_pressed("1"): - print("Gave Item " + str(items[0].resource_path)) - get_item(items[0]) - if Input.is_action_just_pressed("2"): - print("Gave Item " + str(items[1].resource_path)) - get_item(items[1]) - if Input.is_action_just_pressed("3"): - print("Gave Item " + str(items[2].resource_path)) - get_item(items[2]) - #press left mouse to "fire" - if Input.is_action_just_pressed("mouse_0"): - print("Just Fired") - onAttack.emit(self) - #change_health(1) - #press right mouse to check damage stat - if Input.is_action_just_pressed("mouse_1"): - testToggle = !testToggle - if Input.is_action_just_pressed("ui_accept"): - statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) + #if Input.is_action_just_pressed("1"): + #print("Gave Item " + str(items[0].resource_path)) + #get_item(items[0]) + #if Input.is_action_just_pressed("2"): + #print("Gave Item " + str(items[1].resource_path)) + #get_item(items[1]) + #if Input.is_action_just_pressed("3"): + #print("Gave Item " + str(items[2].resource_path)) + #get_item(items[2]) + ##press left mouse to "fire" + #if Input.is_action_just_pressed("mouse_0"): + #print("Just Fired") + ##onAttack.emit(self) + #call_functions(onAttackFunctions) + ##change_health(1) + ##press right mouse to check damage stat + #if Input.is_action_just_pressed("mouse_1"): + #testToggle = !testToggle + #if Input.is_action_just_pressed("ui_accept"): + #statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) -func get_item(item : Item_Test): +func get_item(item : Item): damage += item.damage health += item.health - if(item.onStartFunctions != ""): - Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME - if(item.onFireFunctions != ""): - onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) - if(item.onGetHitFunctions != ""): - print("new on get hit function: " + item.onGetHitFunctions) - onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) + + for i in range(item.FunctionTypes.size()): + match item.functionTypes[i]: + Item.FunctionTypes.OnStart: + Callable(Item_Functions, item.functionNames[i]).bind(self).call() + Item.FunctionTypes.OnFire: + onFireFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnHit: + onHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnGetHit: + onGetHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + #if(item.onStartFunctions != ""): + #Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME + #if(item.onFireFunctions != ""): + #onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) + #if(item.onGetHitFunctions != ""): + #print("new on get hit function: " + item.onGetHitFunctions) + #onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) func hit_object(ps: Player_Test): pass @@ -64,8 +83,13 @@ func hit_object(ps: Player_Test): func change_health(deltaHealth : float): print("Player took " + str(-deltaHealth) + " damage") health += deltaHealth - onGetHit.emit(self); + #onGetHit.emit(self); + call_functions(onGetHitFunctions) if(health < 0): print("You died fool") + +func call_functions(arr : Array[Callable]): + for i in arr: + i.call() #func give_status_effect(effect : StatusEffect, duration : float): #statusEffects.giveStatus(effect, duration) diff --git a/source/scripts/StatusEffect.gd b/source/scripts/StatusEffect.gd deleted file mode 100644 index e69de29b..00000000 From cb6533c880b9006fb5610d0ab053fbb9efff6490 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:35:33 -0400 Subject: [PATCH 063/110] Revert "Reapply "Merge pull request #13 from UVASGD/develop"" This reverts commit 1a544ee9e68538386b5e3daf6f5409b6d036a65b. --- project.godot | 2 - .../Item_Resources/BakingSoda.tres | 21 ----- .../Item_Resources/BaseballBat.tres | 21 ----- .../Item_Resources/BaseballCap.tres | 19 ---- .../Item_Resources/BoxingGloves.tres | 21 ----- .../Items_Final/Item_Resources/OvenMitts.tres | 21 ----- .../Items_Final/Item_Resources/Plunger.tres | 21 ----- .../Items_Final/Item_Resources/RainBoots.tres | 21 ----- .../Item_Resources/SafetyScissors.tres | 21 ----- .../Item_Resources/ToiletPaper.tres | 21 ----- .../Item_Resources/TrenchCoat.tres | 21 ----- source/Items_Final/Item_Resources/Yo-Yo.tres | 21 ----- .../Items_Final/Item_Resources/newItem.tres | 3 - source/Items_Final/Item_Scripts/Item.gd | 42 --------- .../Item_Scripts/Item_Functions.gd | 9 -- .../Item_Sprites/Plunger pixel art.png | Bin 243 -> 0 bytes .../Item_Sprites/Plunger pixel art.png.import | 34 ------- .../Items_Final/Item_Sprites/Stick Sprite.png | Bin 344 -> 0 bytes .../Item_Sprites/Stick Sprite.png.import | 34 ------- .../Item_Sprites/Top hat pixel art.png | Bin 301 -> 0 bytes .../Item_Sprites/Top hat pixel art.png.import | 34 ------- .../Items_Final/Item_Sprites/bakingsoda.png | Bin 849 -> 0 bytes .../Item_Sprites/bakingsoda.png.import | 34 ------- .../Items_Final/Item_Sprites/baseballbat.png | Bin 625 -> 0 bytes .../Item_Sprites/baseballbat.png.import | 34 ------- .../Items_Final/Item_Sprites/baseballcap.png | Bin 642 -> 0 bytes .../Item_Sprites/baseballcap.png.import | 34 ------- .../Items_Final/Item_Sprites/boxinggloves.png | Bin 624 -> 0 bytes .../Item_Sprites/boxinggloves.png.import | 34 ------- source/Items_Final/Item_Sprites/bubblegum.png | Bin 812 -> 0 bytes .../Item_Sprites/bubblegum.png.import | 34 ------- source/Items_Final/Item_Sprites/candycane.png | Bin 472 -> 0 bytes .../Item_Sprites/candycane.png.import | 34 ------- source/Items_Final/Item_Sprites/fryingpan.png | Bin 508 -> 0 bytes .../Item_Sprites/fryingpan.png.import | 34 ------- source/Items_Final/Item_Sprites/hose.png | Bin 648 -> 0 bytes .../Items_Final/Item_Sprites/hose.png.import | 34 ------- source/Items_Final/Item_Sprites/juicebox.png | Bin 619 -> 0 bytes .../Item_Sprites/juicebox.png.import | 34 ------- .../Items_Final/Item_Sprites/magic8ball.png | Bin 451 -> 0 bytes .../Item_Sprites/magic8ball.png.import | 34 ------- source/Items_Final/Item_Sprites/marbles.png | Bin 988 -> 0 bytes .../Item_Sprites/marbles.png.import | 34 ------- source/Items_Final/Item_Sprites/mop.png | Bin 562 -> 0 bytes .../Items_Final/Item_Sprites/mop.png.import | 34 ------- source/Items_Final/Item_Sprites/ovenmitts.png | Bin 748 -> 0 bytes .../Item_Sprites/ovenmitts.png.import | 34 ------- source/Items_Final/Item_Sprites/piratehat.png | Bin 449 -> 0 bytes .../Item_Sprites/piratehat.png.import | 34 ------- .../Items_Final/Item_Sprites/pocketwatch.png | Bin 681 -> 0 bytes .../Item_Sprites/pocketwatch.png.import | 34 ------- .../Items_Final/Item_Sprites/propellerhat.png | Bin 751 -> 0 bytes .../Item_Sprites/propellerhat.png.import | 34 ------- .../Items_Final/Item_Sprites/puzzlecube.png | Bin 737 -> 0 bytes .../Item_Sprites/puzzlecube.png.import | 34 ------- source/Items_Final/Item_Sprites/rainboots.png | Bin 500 -> 0 bytes .../Item_Sprites/rainboots.png.import | 34 ------- .../Item_Sprites/rainbowlollipop.png | Bin 819 -> 0 bytes .../Item_Sprites/rainbowlollipop.png.import | 34 ------- source/Items_Final/Item_Sprites/rake.png | Bin 527 -> 0 bytes .../Items_Final/Item_Sprites/rake.png.import | 34 ------- .../Items_Final/Item_Sprites/rubberduck.png | Bin 613 -> 0 bytes .../Item_Sprites/rubberduck.png.import | 34 ------- .../Item_Sprites/safetyscissors.png | Bin 757 -> 0 bytes .../Item_Sprites/safetyscissors.png.import | 34 ------- source/Items_Final/Item_Sprites/soap.png | Bin 880 -> 0 bytes .../Items_Final/Item_Sprites/soap.png.import | 34 ------- source/Items_Final/Item_Sprites/soda.png | Bin 631 -> 0 bytes .../Items_Final/Item_Sprites/soda.png.import | 34 ------- source/Items_Final/Item_Sprites/spatula.png | Bin 555 -> 0 bytes .../Item_Sprites/spatula.png.import | 34 ------- .../Items_Final/Item_Sprites/spraypaint.png | Bin 527 -> 0 bytes .../Item_Sprites/spraypaint.png.import | 34 ------- .../Items_Final/Item_Sprites/toiletpaper.png | Bin 830 -> 0 bytes .../Item_Sprites/toiletpaper.png.import | 34 ------- .../Items_Final/Item_Sprites/toothbrush.png | Bin 447 -> 0 bytes .../Item_Sprites/toothbrush.png.import | 34 ------- source/Items_Final/Item_Sprites/toyraygun.png | Bin 788 -> 0 bytes .../Item_Sprites/toyraygun.png.import | 34 ------- .../Items_Final/Item_Sprites/trenchcoat.png | Bin 794 -> 0 bytes .../Item_Sprites/trenchcoat.png.import | 34 ------- source/Items_Final/Item_Sprites/trowel.png | Bin 596 -> 0 bytes .../Item_Sprites/trowel.png.import | 34 ------- source/Items_Final/Item_Sprites/winterhat.png | Bin 627 -> 0 bytes .../Item_Sprites/winterhat.png.import | 34 ------- source/Items_Final/Item_Sprites/yoyo.png | Bin 638 -> 0 bytes .../Items_Final/Item_Sprites/yoyo.png.import | 34 ------- source/item/stats_and_item_handler.gd | 1 + source/scenes/IteE421.tmp | 19 ---- source/scenes/IteEC4C.tmp | 19 ---- source/scenes/ItemTestingScene.tscn | 10 +- source/scripts/Item_Advanced_Functions.gd | 3 - source/scripts/Item_Test.gd | 4 +- source/scripts/Player_Test.gd | 86 +++++++----------- source/scripts/StatusEffect.gd | 0 .../StatusEffectManager.gd} | 4 +- 96 files changed, 42 insertions(+), 1613 deletions(-) delete mode 100644 source/Items_Final/Item_Resources/BakingSoda.tres delete mode 100644 source/Items_Final/Item_Resources/BaseballBat.tres delete mode 100644 source/Items_Final/Item_Resources/BaseballCap.tres delete mode 100644 source/Items_Final/Item_Resources/BoxingGloves.tres delete mode 100644 source/Items_Final/Item_Resources/OvenMitts.tres delete mode 100644 source/Items_Final/Item_Resources/Plunger.tres delete mode 100644 source/Items_Final/Item_Resources/RainBoots.tres delete mode 100644 source/Items_Final/Item_Resources/SafetyScissors.tres delete mode 100644 source/Items_Final/Item_Resources/ToiletPaper.tres delete mode 100644 source/Items_Final/Item_Resources/TrenchCoat.tres delete mode 100644 source/Items_Final/Item_Resources/Yo-Yo.tres delete mode 100644 source/Items_Final/Item_Resources/newItem.tres delete mode 100644 source/Items_Final/Item_Scripts/Item.gd delete mode 100644 source/Items_Final/Item_Scripts/Item_Functions.gd delete mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png delete mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png.import delete mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png delete mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png.import delete mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png delete mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png.import delete mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png delete mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png.import delete mode 100644 source/Items_Final/Item_Sprites/baseballbat.png delete mode 100644 source/Items_Final/Item_Sprites/baseballbat.png.import delete mode 100644 source/Items_Final/Item_Sprites/baseballcap.png delete mode 100644 source/Items_Final/Item_Sprites/baseballcap.png.import delete mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png delete mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png.import delete mode 100644 source/Items_Final/Item_Sprites/bubblegum.png delete mode 100644 source/Items_Final/Item_Sprites/bubblegum.png.import delete mode 100644 source/Items_Final/Item_Sprites/candycane.png delete mode 100644 source/Items_Final/Item_Sprites/candycane.png.import delete mode 100644 source/Items_Final/Item_Sprites/fryingpan.png delete mode 100644 source/Items_Final/Item_Sprites/fryingpan.png.import delete mode 100644 source/Items_Final/Item_Sprites/hose.png delete mode 100644 source/Items_Final/Item_Sprites/hose.png.import delete mode 100644 source/Items_Final/Item_Sprites/juicebox.png delete mode 100644 source/Items_Final/Item_Sprites/juicebox.png.import delete mode 100644 source/Items_Final/Item_Sprites/magic8ball.png delete mode 100644 source/Items_Final/Item_Sprites/magic8ball.png.import delete mode 100644 source/Items_Final/Item_Sprites/marbles.png delete mode 100644 source/Items_Final/Item_Sprites/marbles.png.import delete mode 100644 source/Items_Final/Item_Sprites/mop.png delete mode 100644 source/Items_Final/Item_Sprites/mop.png.import delete mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png delete mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png.import delete mode 100644 source/Items_Final/Item_Sprites/piratehat.png delete mode 100644 source/Items_Final/Item_Sprites/piratehat.png.import delete mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png delete mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png.import delete mode 100644 source/Items_Final/Item_Sprites/propellerhat.png delete mode 100644 source/Items_Final/Item_Sprites/propellerhat.png.import delete mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png delete mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png.import delete mode 100644 source/Items_Final/Item_Sprites/rainboots.png delete mode 100644 source/Items_Final/Item_Sprites/rainboots.png.import delete mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png delete mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png.import delete mode 100644 source/Items_Final/Item_Sprites/rake.png delete mode 100644 source/Items_Final/Item_Sprites/rake.png.import delete mode 100644 source/Items_Final/Item_Sprites/rubberduck.png delete mode 100644 source/Items_Final/Item_Sprites/rubberduck.png.import delete mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png delete mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png.import delete mode 100644 source/Items_Final/Item_Sprites/soap.png delete mode 100644 source/Items_Final/Item_Sprites/soap.png.import delete mode 100644 source/Items_Final/Item_Sprites/soda.png delete mode 100644 source/Items_Final/Item_Sprites/soda.png.import delete mode 100644 source/Items_Final/Item_Sprites/spatula.png delete mode 100644 source/Items_Final/Item_Sprites/spatula.png.import delete mode 100644 source/Items_Final/Item_Sprites/spraypaint.png delete mode 100644 source/Items_Final/Item_Sprites/spraypaint.png.import delete mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png delete mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png.import delete mode 100644 source/Items_Final/Item_Sprites/toothbrush.png delete mode 100644 source/Items_Final/Item_Sprites/toothbrush.png.import delete mode 100644 source/Items_Final/Item_Sprites/toyraygun.png delete mode 100644 source/Items_Final/Item_Sprites/toyraygun.png.import delete mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png delete mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png.import delete mode 100644 source/Items_Final/Item_Sprites/trowel.png delete mode 100644 source/Items_Final/Item_Sprites/trowel.png.import delete mode 100644 source/Items_Final/Item_Sprites/winterhat.png delete mode 100644 source/Items_Final/Item_Sprites/winterhat.png.import delete mode 100644 source/Items_Final/Item_Sprites/yoyo.png delete mode 100644 source/Items_Final/Item_Sprites/yoyo.png.import delete mode 100644 source/scenes/IteE421.tmp delete mode 100644 source/scenes/IteEC4C.tmp create mode 100644 source/scripts/StatusEffect.gd rename source/{Items_Final/Item_Scripts/Status_Effect_Manager.gd => scripts/StatusEffectManager.gd} (94%) diff --git a/project.godot b/project.godot index 342d15e2..e4cf6675 100644 --- a/project.godot +++ b/project.godot @@ -23,8 +23,6 @@ ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" window/size/mode=2 window/stretch/mode="canvas_items" -ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" - [input] diff --git a/source/Items_Final/Item_Resources/BakingSoda.tres b/source/Items_Final/Item_Resources/BakingSoda.tres deleted file mode 100644 index 0d987ea0..00000000 --- a/source/Items_Final/Item_Resources/BakingSoda.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://bbebjdnx0jnqm"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_powpt"] -[ext_resource type="Texture2D" uid="uid://b7rs3tdjkmife" path="res://source/Items_Final/Item_Sprites/bakingsoda.png" id="2_pi18r"] - -[resource] -script = ExtResource("1_powpt") -sprite = ExtResource("2_pi18r") -name = "Baking Soda" -description = "Increases Speed" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 2.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballBat.tres b/source/Items_Final/Item_Resources/BaseballBat.tres deleted file mode 100644 index 9a25dccf..00000000 --- a/source/Items_Final/Item_Resources/BaseballBat.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://chya8oc2ch8i5"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_gvtxx"] -[ext_resource type="Texture2D" uid="uid://n8kc5ecpojp0" path="res://source/Items_Final/Item_Sprites/baseballbat.png" id="2_1p0jc"] - -[resource] -script = ExtResource("1_gvtxx") -sprite = ExtResource("2_1p0jc") -name = "Baseball Bat" -description = "Increases Damage" -rarity = 0 -cost = 0 -attackDamage = 2.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballCap.tres b/source/Items_Final/Item_Resources/BaseballCap.tres deleted file mode 100644 index 27bb6478..00000000 --- a/source/Items_Final/Item_Resources/BaseballCap.tres +++ /dev/null @@ -1,19 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=2 format=3 uid="uid://dxuc2aj1us8i2"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_2ncem"] - -[resource] -script = ExtResource("1_2ncem") -name = "Baseball cap" -description = "Slightly increases health and decreases cooldown" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 1.0 -speed = 0.0 -cooldownReduction = 1.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BoxingGloves.tres b/source/Items_Final/Item_Resources/BoxingGloves.tres deleted file mode 100644 index d355c9d7..00000000 --- a/source/Items_Final/Item_Resources/BoxingGloves.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://1lo3qihmupbe"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_dphqa"] -[ext_resource type="Texture2D" uid="uid://bxu2g1kcx6k20" path="res://source/Items_Final/Item_Sprites/boxinggloves.png" id="2_ky0rr"] - -[resource] -script = ExtResource("1_dphqa") -sprite = ExtResource("2_ky0rr") -name = "Boxing Gloves" -description = "Slightly increases attack and health" -rarity = 0 -cost = 0 -attackDamage = 1.0 -attackSpeed = 0.0 -maxHealth = 1.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/OvenMitts.tres b/source/Items_Final/Item_Resources/OvenMitts.tres deleted file mode 100644 index a74d5a92..00000000 --- a/source/Items_Final/Item_Resources/OvenMitts.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://21ntxjjt6dfa"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_ombo1"] -[ext_resource type="Texture2D" uid="uid://b781y2yilgedy" path="res://source/Items_Final/Item_Sprites/ovenmitts.png" id="2_f8fv4"] - -[resource] -script = ExtResource("1_ombo1") -sprite = ExtResource("2_f8fv4") -name = "Oven Mitts" -description = "Slightly increases tenacity" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 1.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Plunger.tres b/source/Items_Final/Item_Resources/Plunger.tres deleted file mode 100644 index 1d5a361b..00000000 --- a/source/Items_Final/Item_Resources/Plunger.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b2odg7j76fhrt"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_qfutt"] -[ext_resource type="Texture2D" uid="uid://6sjrjy3ts348" path="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" id="2_qfg8s"] - -[resource] -script = ExtResource("1_qfutt") -sprite = ExtResource("2_qfg8s") -name = "Plunger" -description = "Slightly increases damage and decreases cooldown" -rarity = 0 -cost = 0 -attackDamage = 1.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 1.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/RainBoots.tres b/source/Items_Final/Item_Resources/RainBoots.tres deleted file mode 100644 index ea00e265..00000000 --- a/source/Items_Final/Item_Resources/RainBoots.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://jdhh5df8llh8"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_aeuxc"] -[ext_resource type="Texture2D" uid="uid://bldr5242uuk63" path="res://source/Items_Final/Item_Sprites/rainboots.png" id="2_x8rcl"] - -[resource] -script = ExtResource("1_aeuxc") -sprite = ExtResource("2_x8rcl") -name = "Rain Boots" -description = "Slightly increases health and speed" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 1.0 -speed = 1.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/SafetyScissors.tres b/source/Items_Final/Item_Resources/SafetyScissors.tres deleted file mode 100644 index 8cc63a9a..00000000 --- a/source/Items_Final/Item_Resources/SafetyScissors.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://dal6qgym6pnyf"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_innlo"] -[ext_resource type="Texture2D" uid="uid://b4xjbdxvn3i2l" path="res://source/Items_Final/Item_Sprites/safetyscissors.png" id="2_h66q4"] - -[resource] -script = ExtResource("1_innlo") -sprite = ExtResource("2_h66q4") -name = "SafetyScissors" -description = "Slightly increases damage and speed" -rarity = 0 -cost = 0 -attackDamage = 1.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 1.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/ToiletPaper.tres b/source/Items_Final/Item_Resources/ToiletPaper.tres deleted file mode 100644 index 4b3663ea..00000000 --- a/source/Items_Final/Item_Resources/ToiletPaper.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://8uxqwbgx5io3"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_lp8ya"] -[ext_resource type="Texture2D" uid="uid://drouo1e7b67oo" path="res://source/Items_Final/Item_Sprites/toiletpaper.png" id="2_5pmre"] - -[resource] -script = ExtResource("1_lp8ya") -sprite = ExtResource("2_5pmre") -name = "Toilet Paper" -description = "Decreases Cooldown" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 2.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/TrenchCoat.tres b/source/Items_Final/Item_Resources/TrenchCoat.tres deleted file mode 100644 index 0cfffca9..00000000 --- a/source/Items_Final/Item_Resources/TrenchCoat.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://cc563lr5i06gw"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_7l3le"] -[ext_resource type="Texture2D" uid="uid://dna8nprqj1ifn" path="res://source/Items_Final/Item_Sprites/trenchcoat.png" id="2_rr3wv"] - -[resource] -script = ExtResource("1_7l3le") -sprite = ExtResource("2_rr3wv") -name = "Trench Coat" -description = "Increases Health" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 2.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Yo-Yo.tres b/source/Items_Final/Item_Resources/Yo-Yo.tres deleted file mode 100644 index fd5ca491..00000000 --- a/source/Items_Final/Item_Resources/Yo-Yo.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b1h7kigidl5t2"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_12rx8"] -[ext_resource type="Texture2D" uid="uid://dqmbec8uh8jaq" path="res://source/Items_Final/Item_Sprites/yoyo.png" id="2_ibfa5"] - -[resource] -script = ExtResource("1_12rx8") -sprite = ExtResource("2_ibfa5") -name = "Yo-Yo" -description = "Slightly increases speed and reduces cooldown" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 1.0 -cooldownReduction = 1.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/newItem.tres b/source/Items_Final/Item_Resources/newItem.tres deleted file mode 100644 index efa9c2fc..00000000 --- a/source/Items_Final/Item_Resources/newItem.tres +++ /dev/null @@ -1,3 +0,0 @@ -[gd_resource type="Resource" format=3 uid="uid://dgttm3uig5c5p"] - -[resource] diff --git a/source/Items_Final/Item_Scripts/Item.gd b/source/Items_Final/Item_Scripts/Item.gd deleted file mode 100644 index eac8354e..00000000 --- a/source/Items_Final/Item_Scripts/Item.gd +++ /dev/null @@ -1,42 +0,0 @@ -extends Resource -class_name Item - -enum Rarity { - COMMON, - UNCOMMON, - RARE, - LEGENDARY -} - -enum FunctionTypes -{ - OnStart, - OnFire, - OnHit, - OnGetHit -} - -#Info -@export_group("General Information") -@export var sprite : Texture -@export var name : String -@export_multiline var description : String -@export var rarity : Rarity -@export var cost : int - - -#Stats -@export_group("Stats") -@export var attackDamage: float -@export var attackSpeed: float -@export var maxHealth : float -@export var speed : float -@export var cooldownReduction : float -@export var tenacity : float -@export var luck : float - - -#Functions -@export_group("Functions") -@export var functionTypes : Array[FunctionTypes] -@export var functionNames : Array[String] diff --git a/source/Items_Final/Item_Scripts/Item_Functions.gd b/source/Items_Final/Item_Scripts/Item_Functions.gd deleted file mode 100644 index 648d8fff..00000000 --- a/source/Items_Final/Item_Scripts/Item_Functions.gd +++ /dev/null @@ -1,9 +0,0 @@ -class_name Item_Functions -#Needs to be a global script -extends Node -func fire_start(ps : Player_Test): - ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) -func fire_tick_end(ps : Player_Test): - ps.change_health(-2) - if(ps.statusEffects.hasStatus("Fire")): - ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png b/source/Items_Final/Item_Sprites/Plunger pixel art.png deleted file mode 100644 index b0b25d39f518b696ca3a611062a0a631b074f32c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ydu{YLn7Rh zQzQ}&cy#{lJ{g$J;NNqL$h3(|IPWGs@#8%qsNk^5xucBX z&Zk=W!m?#23RwdA96nl}sM4}(s$g%>DSf1VXR3;!ufTf-rCPpX#f_Pb8tek!%zkPy Y%&U|%@X+%r1v;F;)78&qol`;+01H7|TmS$7 diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png.import b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import deleted file mode 100644 index 68e45fc7..00000000 --- a/source/Items_Final/Item_Sprites/Plunger pixel art.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://6sjrjy3ts348" -path="res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" -dest_files=["res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.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/source/Items_Final/Item_Sprites/Stick Sprite.png b/source/Items_Final/Item_Sprites/Stick Sprite.png deleted file mode 100644 index 5a0a9b90c68691230e30d550d9cd343c66ea9dbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmV-e0jK_nP)Px$5=lfsR9HvtmN5##KoCWfS_JQ4VP|D6*o!yuG~Pt)1#27aL~J~PAl54*3=FdC z{F&^s7D%Bq5 zsU8AAx*Px#=Sf6CR9Hvtmf;PAAPj|N4i>w(l5q{=V$5-uUV^E$Ek!{z!GDJ8`}ztkZfN{C zi@x{%Yl)L$LI|SHVd1J62k{Po8kt8oOb#>$h_p38Ob&Dae0)lmA*%!cQW`)z4Qz+% z0L>k!wGYP6xEmGIJUMYn)o|f<01#Z(WuU^?hN2EoAu0~<_<{K60MMFiwrRH`oMrq6 z&HPXTZo{1c;Oec3LyP{G;3_~Av1AN-cs9HjfU7lRm$IDhAJKu-H5~5|=xC{UX?^=J zxASQ;J_qJG0NRbHRJNQmr)!sEvliO{nmh0VD6)}-Px&3rR#lR9J=WmrqC(Q5?rVnwW^YO}j$6{y|7xgu*n)1o6<#ONYcm*g?cYhoJBj z9zr~52Z_DfLA*qV@Dfos4<(2aN+ij;88W%6hU<=wi0)yhgU)kiXLg-wtqA(UrPgO{lA^f4#KX%c?HRQifCnAxBKG>-q3!ov17uRL?gT12x618~ z^N!wg3^11J9k67J;J-c>Mt+$tTKKs!u$h&HR@DB*`act7k%9 zS;XrPh@xvRo@c6a0vPg-3uAqz0K4&+fYFOlXSxLAfe?zaZ30o0Z2==mKCw59v(A>2FjD}ZC$0Z+{4Xx=9lX+#ihpN#9qKOpIL@Lb;5sxNP$Z^#+1Lus!RTr-fmR6QBJ-dY0cYM?B zC7GRG5PiLEj79x7Sxz=k`27RwfyPe0ME-t)=^a1vVKMSyF>hB_ZI6N_*mHMS0|>SR zMJzlUCfE|BrL9Ro=rMi#$INrf$1|B`1+atBWi$kscsY>sACprx_3>NAYb@K?ZPx%D@jB_R9J=Om%ne*P!xqf7sL>Wsl=p^?BoX#a+C#>t*{`FK!V9T6(b8>5CcQ_ z6U<&Qq!I`r7CLocLQMm0lpzyJic+hvAY~xKV=&jajU8g=nT0b&wv+qi+;iW1hW}kg z)QzTHRduTX!0MxSkoB4u&JuQf-765$M9)>;~fY7GM7JO_EsQ>;P zbmGp93!u@3DF>XLJ)^aC=tF>H!BfSmVU?D3)COj(1LaIkl`fsaDlH>Z5p?3&^S9`5 zAv6O3-SNl(`1!*Kb>hkTEiI!N2>`I!J}~wNN0AT@>?;dH%mfgK*4E)M2$7jDES!hG z0)W?!pc6qCZr;ASkPERwRLW)WKBPtL{6$?Nh zHeR`aw_-{=k_IyI9G5dWW#2Uc{C2pm%j@@FW3?i-10r!EI31>G#{Qke00JSIkPR$u zD;5F}h+rlFDur`%e_z|aE+Z=19~{k<1+Ax>awex5#VjlNKgK?N^J!*{nMbm?>W)VS zJrq4S2@<7Lj@#u-&JSUun8n%Ii>$M72*V^>IlxMOiM870$f-yLKp+~$EC3H5Ut`km zsHR<=0!a-3;G6mmcxQ;-uH&zm{|q1~*)dNl^>@DDs;K*=MvHy{@K^KexE)jW00000 LNkvXXu0mjfxyBU8 diff --git a/source/Items_Final/Item_Sprites/baseballbat.png.import b/source/Items_Final/Item_Sprites/baseballbat.png.import deleted file mode 100644 index 8480338a..00000000 --- a/source/Items_Final/Item_Sprites/baseballbat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://n8kc5ecpojp0" -path="res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/baseballbat.png" -dest_files=["res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.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/source/Items_Final/Item_Sprites/baseballcap.png b/source/Items_Final/Item_Sprites/baseballcap.png deleted file mode 100644 index e904fe88b64b0d5c613ba695e52ffd34292363f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)Px%JV``BR9J=WmN7^hQ5eVn7D)yVGE|dH2XcXf5(nWjr9(>xMJI{46tPQ*Md{$u z$wilT3KR+z2Z^YNn~Ugl8FVtxA)*|_!A!C05IBe4avj?5arf>ecP|l2A^+*#yLa#Z zd*8kHeGllXuYaro*$?9Bq)X3A!oY)dBt1u00MGR)W^A{r41mGJbllWR(lCQjjLDFU zlo1`aV<9(DWc@E*0_9c9m5oTp!L({6rUL+M$3iNTXYX(8XGmr8P_-qa zhG;u5o=&>yk+-aEI~J6fjv;l}H;y0xK-IF+5YM8RcTy^o$8G(LwJ%SBrLUX5%_+H56yB_3c43@F zB8sFVAkvjt!R7T245`ETw7iIwwfUz7@a6%L3ahVBE^R>7vN$>1!TP%ruFMLeL^3oH zMbUBj0*bBU{A2?Kv%>nDce|nAcJ&KH8?ov)r<1O?(%G#l_%@l6fykIdwZc3I zrs$5fz}qG>-khSs*9g+&!rwxrjROFdrVSrNXu%L=Gv1u!g`iyUd1g8=XT4ElzM-3t z51ALpb}S*t%Gx|LCbNt>=JMu17gsVb1SJ~2R6Di(fKfa3be|)TUan?60eB&R;P2|I cum3{70j$8}NTOV_@c;k-07*qoM6N<$f|V*Nl>h($ diff --git a/source/Items_Final/Item_Sprites/baseballcap.png.import b/source/Items_Final/Item_Sprites/baseballcap.png.import deleted file mode 100644 index bdce6f60..00000000 --- a/source/Items_Final/Item_Sprites/baseballcap.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dm5a1jhe6ojrw" -path="res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/baseballcap.png" -dest_files=["res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.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/source/Items_Final/Item_Sprites/boxinggloves.png b/source/Items_Final/Item_Sprites/boxinggloves.png deleted file mode 100644 index 1c0b93388a74208416b6207347299c0af8ff4e9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)Px%DoI2^R9J=Wl{;_RP#A_E2r8z=MJNqwAXOxfWU_>mKajb5FH^Qm{DDqYe?Tf# zVrrL4*(y=b3|)y(I}xc%l}LdSmdfE$C<1ptrucG>UFcA$yqo!szxUz09K%K%{qKtX zjU?riVT)p~etedCtPN038TR96*MYIu@9wi5Q=|}U0XXKZj|1VEPu+*qlNz;dBhX6- z5LVW5%CMW-7AKhtp)tVKI8NuD3J?g95E(C*HNEX-X}&GlP2kbsD`dpx)rkdhp#Pm0 zg*aJ3|I%mJTyn0x@WZX;%@ zdL)QeTcKhV=fk(6q(dlzXtfnuZ3R=+g{5^=Pij(t&^3(O4#&u8h4XySo6^*_RtFHt zyDbO3`2|+jG}m*O0s(5>MvPo(@d@Uj}IoJF(r|p6xYv zN-vv}NG&+YT!hYow`yU=e*_Supbdy(=#}(^BhNot*KDJIQojIt%I7|uO0hKn0000< KMNUMnLSTXp_#a&W diff --git a/source/Items_Final/Item_Sprites/boxinggloves.png.import b/source/Items_Final/Item_Sprites/boxinggloves.png.import deleted file mode 100644 index 773b8950..00000000 --- a/source/Items_Final/Item_Sprites/boxinggloves.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bxu2g1kcx6k20" -path="res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/boxinggloves.png" -dest_files=["res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.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/source/Items_Final/Item_Sprites/bubblegum.png b/source/Items_Final/Item_Sprites/bubblegum.png deleted file mode 100644 index 30438077f0c370ca04e06afdba12fd6aabeb310e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 812 zcmV+{1JnG8P)Px%=1D|BR9J=Wm0w6xQ5?rVi?m=dp}9R6DkwEH6%mY2=i%^#hrgZX+BI>Dvn}d>*0D&_wLTA)5m>Z?(dv? z&i#DP@0{PckXK%L<)G^3-c)sSZ|W$%bu8D3WtBA?g^A33WF|Urygkewkr`sHBCS z*~{=)w;>&_*5a36l=gJ9y|9k4HEJ;1no)A?5 zyJksrme+QsjAg|DB$n5B?|4V;#X{YLbhrYx)i&tH#$!f&uY2%byGb+{$#_;o6>KFX zSeE0ZP`|+ug5kL$-Kx^z6;JL0@CPXH1&POun5_u_@iduBFgZ)uN=m8pOlTTrTa#`; zCQY|lQl^bA&8p)uBc?}{6!?OoZMG&v7Dn%PvKe1Nni-Mb?{G9X;eO$n?gz6q!HM~w znzmY-@f85h|xM3E;eJT9xv2#bZVhM}rYLr~_$cL@YL|0i}%W z?W;RbS&7-Gi1&hTNNWIuyL>y9wMt+hfJ2hU=?s`{O)2GuJ5zTKlevV7Tazq$of;Db z>s30SMHMSx|CEQ;!8uXZfdM~`m#bo{_q;@^oL2yO52L{di(WY!Zy%loz;&sEB3m(* ztEZWN9uf2XQyu^T4-EJLH1Mnj)ETigwg7TDeVdpBV9~p(xunvSZPf=dpqQ|`+?qZm zBjGMz#yO#{NfGY`Kac?>w!7S-q~QPQR<=d~XM-NtK)ME2XOU_B^ZOJRI!{{HpuTk(>0J>fP00006P)Px$l1W5CR9J=Wmpx0vP!xtAgCL<>ODBse43TjzKrP)$!Ra_f{75Rav4Zw&`QSYFyzf1ibK$?oMA!)p-IVvw zJG*Or8IxgyYa6RftzQE0vNF$e$C2Zcz0eE&0`GO(((AUxs<*_dx5QRsZ|@5El6;?K zNVo?rt7)lJEh(#MsYRk<)mwcRF_Z;{ZpvnIfs1&G1Yj$Ilhts}_93U?ps@s8#Z%-I zfqW@EI}F{FS|s{G_Rm!o@+B#&X|dIq?{^qb0Yf)sd2gH9_ARH)4sJ0+BfE%SbxGx( z*{53`njPO<16%NLbPn+pt|EbOfa${~0CzXn;V!@}W^fe(;f8L?+`$%!MuRKhkr~Ko zgW|qMAzupI+1~!}TCq~Kezq0;;NBT9a=6#`-kC7+%560!wi=UKB>E3!AA3Ibe5CNP z=VRGN2LJQ22Tnw8F~bgk0!~&79Jz)K<+~sH&3j>lZ{qiI|M<1)x8oJ<0jssxVQlvR O0000Px$wn;=mR9J=WmOX32Kpcl3ONB0i5O5Mo5tJ-yhah4Klq)Xt23vfA~mcHbz)5F*!s3ahR?*faI^Jx-U13Eor0mor< z4BT(FPQxJK4goRxW8nACk90m>{Rsd&KeI#dW}|)-d`kdO8oeFf9xjPT!~O-l#ts*C zLbV2f;#mNY$QtDCZXNLHVy#sD>~YLMrCI}i3X2RZHe0h%XEIy)hJ&jV+iSl&Vwa2Q y27JS}1cZe9&s7Ene8Z&zLSo-TrvU%w*W?>?FCriV3SsU50000L diff --git a/source/Items_Final/Item_Sprites/fryingpan.png.import b/source/Items_Final/Item_Sprites/fryingpan.png.import deleted file mode 100644 index 1afdff0f..00000000 --- a/source/Items_Final/Item_Sprites/fryingpan.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bdh5om0n3ttan" -path="res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/fryingpan.png" -dest_files=["res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.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/source/Items_Final/Item_Sprites/hose.png b/source/Items_Final/Item_Sprites/hose.png deleted file mode 100644 index 821c0cec857e8b7614f06836e7cc48b50af7b5a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)Px%LPh{tdxP z>DVz8+RZpa;!a*taE4?G2#QISEvXR_KN%evDk9@@b_5S*+#{l0te-jiXe zrT($*<(X{QPN+NgdT^-q?gx2{w|2Ja9rppay(-MiDON_&_|=OBdl2e?WKtTo6K?Hn z1JFC};}3?Jz@}|QV}CGILTE*x(>JX5Z z{S#JJH>9BH5x9W>mrfU2%?3T>yAHf5kcgOg2f)he2Bl~6l*!M)x)V~?%l8b>=_L0F z)8N!iJp;-gH~_~}SuZh)kD9%E;1Ed)5cxX@ms^)b>l-)(P>Z{B|k zbs-i85WC)OZ?b=Oo_oC%pja6Zc-iLlmyZD0KRajed0Yv3Qjq#N7A0lc*4*DP!*)V( zJ#ByF==<;SPP|{a%|TWLlMX1#Fka)yzTgjrJim1BWG)3rgGic2%F*?50mLCvwV<&U iKm?JZMU9vGZ}b-!!~&?gamwES0000Px%B}qgEshyBce}~V-KG%oSHqjP z@Bik_>@cvS|4ARdtOZHe+@+hiyjl&OJ$=RUYBf=aE?x87!Xm|jm83VI(E({*{p9c@ zea(!N3qbDzjgN%13_(kWMPlSox(h8Rqi! zEdjLt0)W9If3*Q9>8EPn15tW0^RtuB0fP>N)qPJcv0shdiz7I~r8nDcR7<-9j&POv ziHQsV=k~4uP%C>ZUH)!tZUi8U*UBDm=Ibh6D|?ZkZ+~oz$4Pq&!tHG~Z3V5z&Ns{W z5SA(jV`GkRRR?rsbO;^c(l?!^biEa#Z#um(cP#__P8J}}tP^!~4@ga%Ke_z?lS6-E z=jI>22H--vVho_Y1->nq9LnO`g58I+Dt`a{9yNaOt7rQFBt+O;LV3eubS=G9@wvQy zP2)4*+X8QR3_!t1bKe&DwlJ!v-2uy52Vit`AF0PV{18Ccw2`-88^E{&5=0uenwzPu z->})pvew%&hc+*wD2Qf#Td8dM8UlkSnI@N#j`@xN{sF2l@6mIi3dsNf002ovPDHLk FV1m&P7%2b% diff --git a/source/Items_Final/Item_Sprites/juicebox.png.import b/source/Items_Final/Item_Sprites/juicebox.png.import deleted file mode 100644 index dd35366f..00000000 --- a/source/Items_Final/Item_Sprites/juicebox.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://eehdxpdnjdbn" -path="res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/juicebox.png" -dest_files=["res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.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/source/Items_Final/Item_Sprites/magic8ball.png b/source/Items_Final/Item_Sprites/magic8ball.png deleted file mode 100644 index 4b578a1d7086c4ca1d5705cf98a51f7a90220163..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmV;!0X+VRP)Px$eMv+?R9J=Wmc44jFcgJPe};mW4qZaPLn`PH{0gCcgDxFPr;QGwygiS?vR|xzLIr5UCGh~j`}0*7H$6D3?<2+PUo17XS+*WqQ|NAIdS)agztn--UK305Tp7=Kz4!GAXpr;tA62#t7mC zz`}?RhI6cz31;!c*gxHFtRSoa$o&1SXVcvXv0Jn`?E@o#$$T1*O0lQMt`UNy1z=&s zyRUs^%Jb%AN-p`aRsI&y4f<_Ar;9?e} z0Is^fz01x9dcI*-R^NI9e6D|t?Q|&VB;ACvC6En9vj%|P%R?bX@1n#d&;r=ZAP*tJ z>;+(S_LK;q{SE7o_8_X-%=sXyL&m$HDkJB+ph^hcZI~^As*1I(Y<$cC$BL+Gb3m~P tW!Z4egm+D-DxdT6t%|Kh5Jw$^egRW*$Px&mPtfGR9J=WmTzoRRT##9ZRZjicg|DQ5w0T zH1b04);vMED47H6cesT2z*Ah1Yw57P%qyoo1kXqSDDenie|S!pt0V%}?{Eq8${On1 zWjytrnz_T@p5&ijYkAOoS$8|ij0*eQlE%KZ-^qr8gJ&c>^)M9l^M1z=&+O?2YEj}5 zey2h=N4KC#+_rZ$04aMXqn@J$h17QM63@OEV9J}oys{<}SK<+NztP1|(9e`Np}P%v z4*1-XXxqD*l)V$hv(zZ>H#{ih0v{L=}E#@b!x-K+4JV$-Itf?2CjWhC5B@3fpEPe=m zZb_)5U+qgE+0q8Jejetx-PHhueC1TNSV%@p1w{bd_t*@8Avxr1!T2>n_1$jgq7v{I z0AJc`kZkGht6D7lF?ySj)sk0i=J-Jq-Ma+94gYljL-ITU+346T=R}fsyN9Y43!zK; zc{9fk{-;kn??sM^l8X7GA$} zLzC<3>DSyD=RV!OBq#E=Aok0nJnal4M^hOm%4lx3nk#^ z{Evf%LUbqlR@eoA#~IGVy=34oo0)AY7ILc>D}ftZ<(hts*K zf&GRebPu6Qz?fa=#tV=G1Y+7_Wp3!C8AKrwhW~e_DCj~_0+fKC zo?`<5nQpVOq3;y(LX@VB>i{sfI#B|C-C9Kn0O)`3Gt8~dy!idWS>%Q2lIs*Lz})IY z85u)bWz)n}a<%)P=B^pmDf&g!?C27Xw-0df#5bC_N}Nq@^eGnYfJ%@}m^-%=EbC3! z?C26@FTG~CX0eNC*^km@N0$J|6_Og*4^Z4yyc{7a79+j~6?Xsu(}omv%#vyV0000< KMNUMnLSTXgIN0g{ diff --git a/source/Items_Final/Item_Sprites/marbles.png.import b/source/Items_Final/Item_Sprites/marbles.png.import deleted file mode 100644 index d1a1e42c..00000000 --- a/source/Items_Final/Item_Sprites/marbles.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cam6hafwuwn0g" -path="res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/marbles.png" -dest_files=["res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.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/source/Items_Final/Item_Sprites/mop.png b/source/Items_Final/Item_Sprites/mop.png deleted file mode 100644 index c9d46a94bef731e51cab934786f0e826bbff5b72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)Px$>`6pHR9J=Wl`%*gQ5=WAScgs_i=ZHBmJS^pu2N6oC^$qg2qK7}L!nCvJxbvS zr9^P((nU%^P8`J{9aM^oLj(mIhzX(6wSx(P(qiFAZYXr=>rn2I!)oK*yL9nCy?gKA z``+*W9uID+$CVu&5t&pFT8x<+x-n3AQmH z31mk{#L#dbl~3(U;SkX+@OJ($I7E;@H?c=1&~5CI2n2yE69@`dA`k{1S|BVulz<9& zU;$O|YYSMWEq;`W**fNz7|-fEoL51Qz@Owxp*>x+iU^gHd{P<^%TG-5#~%t zfljz?XcvCe4Na~sZ|0@YAK9D;Dj{3oIBoJzUdV-bGJ$Sr92Aa-ClkJT55Bgt&feBL z#-=6$x27Lp{QkUXw;fJC?!<-$Q=(cdGd4AWZfK;JCOIe^kzSgVLIBlbxik8}=i<`X zI(PK-TZ7q0i|B^N+R8c*uJ3_rE|ZJo8vghC4KQ>a`wz&v(*OVf07*qoM6N<$f=6uq AqyPW_ diff --git a/source/Items_Final/Item_Sprites/mop.png.import b/source/Items_Final/Item_Sprites/mop.png.import deleted file mode 100644 index 04dddad6..00000000 --- a/source/Items_Final/Item_Sprites/mop.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c3o5u4wsuwtfj" -path="res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/mop.png" -dest_files=["res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.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/source/Items_Final/Item_Sprites/ovenmitts.png b/source/Items_Final/Item_Sprites/ovenmitts.png deleted file mode 100644 index 266d0f95a2769c2701e2a29d97b1c322851d7f9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmVPx%rb$FWR9J=WRzGjrKotKOVq%F90$9S57Y`K!Bg(>#Iz(M5AAliyzfFgHfQYr~ z#LiMNFm%Y|1<4=-F$82F;11Edp3i?%DzyV|Io+N8et+)Wvw?G*;~$6gH(`FeDN%!klEtmIul4td#mFm0HBcB zVl+FM{M$O-eqLF(W+PwT zqnUFeYal5iYk)|6x_${%|4&n9$-6Zh6(t*41Ak25b$LWH=LD*sLIeZ+%8BH}QetmH zfIx3JmcITd`zn~P{+4E=Z>g*yiOOlcZtQ(Gh-xae1AI3VYoKE+7zth}y+b5uUu;~7 z1bV}<^zfuIReWO62~jx^EZT~aMN6}BXBdHFi2YW#8@ku6*}hIFj*n&uEzM@{h+R^g z_bnCQO_Sj!c0#h4Pb79k5ln2^VMUzE0dk?4b68P@InlRNbc{u;a&n7T52W}b>J7&d z8oCG50kvb%3DK1>f&c>GsT`oVGYpSZMgg=m+ea`CIJEPx$dr3q=R9J=Wl&??2KorLxKg2Q;5R3#&#nQQ+!y`zj0!_07v%l*MNpt8;L4uga z4L5>7kpN;71hW*wYu>%PTYKxo67FNJz1#Zz+`HET1Ooq^ttNktBT>-%m$!-c^LCpA zizMYsg|CR001tlsnriDrsHiL9T>+7#Mlgc&e>wY#Uue*mm zm^|NC9>=y%I44)K4DDwFO~zHFl?0GhyJMB0BSj>sAsk1A80vp3GtvS$$rmC2j00000NkvXXu0mjf8?(Un diff --git a/source/Items_Final/Item_Sprites/piratehat.png.import b/source/Items_Final/Item_Sprites/piratehat.png.import deleted file mode 100644 index f82fe5e8..00000000 --- a/source/Items_Final/Item_Sprites/piratehat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bng36643tueog" -path="res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/piratehat.png" -dest_files=["res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.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/source/Items_Final/Item_Sprites/pocketwatch.png b/source/Items_Final/Item_Sprites/pocketwatch.png deleted file mode 100644 index 2a62e81650b35629762e1c896fb951d62b94d458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)Px%V@X6oR9J=WR=;c8Kp1_l+d-hxsU8c4Qc{YtXc1jPjkZE4G?2yMsX|LB=pQit z2M$V?l1_mvH7%6RBE?I|;zgn^m_VT5!SNJglEH}UAU^dZpX58&rAyvq-+lMJ_x;ix zaD)Ghnu<}>_c;JOc|6CDpC;%x0MxA`B_C@G2t9*GQN48k&4(8o5h6v@_c?P+US-1^ zlQYNUN!(ttOX9Y4T?wIQtRycA5y_Ic%_#tF5vw8(J%fjyv9vFeMSVZBsSxT400YZ2$6NCOsGTY+$RURE}FJ zDhX_Gj9{lFCGYO;>$qACS?Z^gQI>l8Kb?&JsuWroxO?wDfP5ypyZh*U{kU$N<#&My zA`|ORB8ucxiamP+0_gQ45{r;UPHS;bO@USkfIrPwHUYZO8pAR%Mf|fdyu6rgJOh;i z+=J`dd3cD1+rjtXK~4xDpM9O^0fi~}G<=9Xq#~%XtnN@w3}ocvMH4{0%Dvic=-U>5 zbmt5JAie{Npm)P~(Zu^Px%sYygZR9J=Wmd#64Q5c7xaiR;M2@Oos!jbUOBs5X!Mr2?FT{MbWi|8+C8?Fl4 zx~N4+>sqvE*-A8sD1rzHMqDVw#0)i8YfSuh>_fBDVmjCRIrqa_ zt4}KRrT9i~SJ(42Hh0?IJ+5{GkZe1HR+?o?Te3lTW}rMX8mVpdwN)rID8#DkKPws8Q@}w;rj`DQ~t>&4F z9|6e7;L9}6UYrIXetm_3zB$IpiOZ?8JbZMgE=WTV^WJ!;$eybZttdn*3ILa0H8cL? zn{Dhs-yA#131VG2+xZCv&>Qa*H{0KvV$q61=2sGcoz-b}R;T%Nx6JtS786K42wwnB z<^Xr!opM~gRReu<`j-+IAdI;+3kyq4uJilKz{cmFeug=!p1E%T2_ZrJrrv0ty`nm9 zL!hrff&lE6)*SnHOKYxuPV)Q@RI2k7PDDw4-E}l`Q}sh0&a0jPzB5ob67@UOQS;@+ z-~h2yPAs%s;NJI)4k1A%Cs+0bB;~pVu~bgTatiR6Zc0=4YYzM#nKjsGl_zf-?Kf}`pWq1Gp002ovPDHLkV1lA)R(1dY diff --git a/source/Items_Final/Item_Sprites/propellerhat.png.import b/source/Items_Final/Item_Sprites/propellerhat.png.import deleted file mode 100644 index c08d1f21..00000000 --- a/source/Items_Final/Item_Sprites/propellerhat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dghjg34gr46gq" -path="res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/propellerhat.png" -dest_files=["res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.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/source/Items_Final/Item_Sprites/puzzlecube.png b/source/Items_Final/Item_Sprites/puzzlecube.png deleted file mode 100644 index 29e0f53377fd273642911cf77698655b46426381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)Px%n@L1LR9J=WmQ7C+Q51%s0WD}#Cl$JA7u6KEqa+v?#uzaq`~Ve*ZVVWO4N*6& z6r(E=6I@n-gpC10ObBcZs8Kg1rlD%AA5buS2yIM(ifsdRQRdQVr&Bsx`zDjzd+x{k zOzt^%21+XFf0tx-;R&~r%8q?s2o$|vQ46w7ElP`MCj!H!VDe6K*j*{vR+SUCIz8Nf z)C0i7dtI8bXESd_`pcy?ynofmf-YPeCk#LfahyV;>pxpFfPoyJ3Gt+B;^JG;(WI@dv$y_62T`ac-_0z623Ong+_{Bf?zOO4!EYWQBPE z`_@n0xLTgc>N7cGK1snRDQrjAS)8n3@XZVJ0BRDB$QBXPE6q%EKpaaU^MU}Ii68*2 z_K<)WpYRHZ*g}}tLYT52FWHW+<8@2)DRNHo{r!_a8TXw7t@aR*zKGQO!It!6OZtUj zT~kFB+N~0;mu`s&~W29ruQa zr!OK)&V1GQ!%!%5y?KDlO?q*qAYxz`;n$FM&3;t$FOPx$u1Q2eR9J=Wma$6$Q5?s=mxmyd$gM7+)e;dRC=cB14`^s~agnxy{)gt;q6Qa7 zh1TF&N_Z7$gM(1%5V*x5g4A$&P480gz31s!6x?_F{eF-4{qVc@?)Ly+zUI`R6tg~W zx2$FDx3Y-Qu-(I;6k7^}5Fn6(sc2=#!qX@!F5GIOO;b#!1}%>)>>d!7tD1N^jn03YE00;o?n+#IFG?*IVc znq~8G=*5uhN$Ck7n~$Sb?s$T51t9wy&VrZ);%XQ%iRJoLn#jo4pVb#o^s9f+&omPN0000Px%?MXyIR9J=WmtROzVHn1L8zBv^hJOf&hzev75fj5T)<`HyL<%-yL`-Ty5e$}& zDf9=rSu%BH7opBdyx7GCg^3qI!a;0a?IHxxx`@yv=@>z#$k^A#I45yVchn-O2M&Da z{a(K3`JVUvKF)#v_}8IPlk9425o=?i7Y|jfu@-yO5cfX!12B>Z0#IAw0T9~}vY`N( z_|cOe09c;J0jREgOZz)F8Q#!+_%zx(X92`kMC29VYHSgw9ykCvH;_iM1UXSU1Axa> zOoBcfULOGALzlP@Oc-rqJRVggV$%}z45g{Ayob$a07e0D8x8|5DiP}nkayoRltxM}VCygd5N(^wCcL@=K=a8i+#Lqy>m5jzAeo6mX@5bRZ{qT| z0FosL7Y4HArZXfORscxU-%#=nHcgTa`LT|AvO99MQe(8`oR)mZalqBsBD$Mqly{qN zAM^DNtUwqrJC}hfpqDY+09ak6SrN1%B^NLk%D$ceK(W|bQc4+N03=Hgb11`D|6V1> z{IZuwN{e*$8fHLBE|7TE2l~PVUP~ z#^X_q8H6dY1V9X(LT(ByfvcEA!wMCHMF7fCB$U0RIzx-#)fFrtZxhOhq_o7mI%2C9 zb$ET4oy$a0TEc-gCEi}HC+5|m<{0KptTEce*v0FLy#RK7Mj4v|OWbx9D{;9u%+6(1 z0yeyeWOCW&NT7|1!6Kz3t6?4WkPi7(k;4Wh7>`Fac6~A9SymoC6Mt~ xl|l$1N-FE}y0EREib6!lPx$$w@>(R9J=Gl|5_1P!xvWTL?m+iWGzl)w>jNaIk`_>5%ql<(8z}dBvLzn)9 zu37BhA81qPAa2(dxezEK1tB=x4&jCvKbntgD1DbhE+OZ+=RM~H_>1Z_>msXMXW;{r zQcl;~BVQ&QhuL`$!Y+9%^>5!;<}h5%Vtq4}1%OwH z#xmzWKV9ju>_`nDB_a5tg>gGCMtUa_h!Oz1=mG$Yje-7pLMCrs92BbAEGyXuCZ+z( zgYlRxN-EG;=3r7PEXMo>@Sso?R*7vvb~Oi&n-YwT;h(1lkhc# diff --git a/source/Items_Final/Item_Sprites/rake.png.import b/source/Items_Final/Item_Sprites/rake.png.import deleted file mode 100644 index 3ee25a38..00000000 --- a/source/Items_Final/Item_Sprites/rake.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cv8o5xvrm3cm4" -path="res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/rake.png" -dest_files=["res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.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/source/Items_Final/Item_Sprites/rubberduck.png b/source/Items_Final/Item_Sprites/rubberduck.png deleted file mode 100644 index 0e3039ae7020cf8d9217fdc7e0a07b85988d6027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)Px%A4x<(R9J=WmcMHgVHn3h@tUYK)R4%?{YLhUfLVjW4HUNV{{!gAQF%A*Z16*?ZpySJ@FV8b5 z+d~Ic~iNoR$p>korK~G*i`bR%rTlkI;pt=R850p5xZS ze5l^;>^RTgdxq zS2iNqA>Eo4n>Q*MU+zishi~weX22bwI1xrAL$_ve^Zpen`R3-gP;IP$J^KdWSglG6 zToJ=@kUaSIkl+JrB||)aEcg4k>lMWEMw+^5jwS#cGjfgSZxKfh3PV^o&D8Qn+KXjg zFe*7H{*po1mQ{!WDfvhOfPx%uSrBfR9J=WmcMHgVI0Pv6JwUd&?_7q5~!s#QcXhb!3`Y~L4=x6>=1BBwu1fx z#{Iff=pg7Kbn6sImmm`DB;_Dh{E^tCwH{hXF2I z8_>wq!!B-eP2A2;08i~<%^H~jvr3A>ywEw^`t@}r3S(rlKZs|YIoGk-Mqq}R4@Jmi z>jbL{!>8kQzTdG{Ww0iY&~6m~>%@Av1LanQk^Mo4y)KfRFm!_V6Fu-cj~ibmhfb&Z z)DhFpj`N#q8$ntN3_+9>g((I!0Kj3>f2!$TE9@9xB!Y6Q!hjQq2o-6K2RMPy_R_sO z)B6Ah>vRqbu(Cf0G@Sw1_R2h96o5`W?S|OvPyb#k3|{8}z%&yc0Vo8}k3;pTp!31& zJWgU2l#Z^!3`s$q6dwy<2BF31NoVfvV*O1Nv?Fc`y8<{3ghF^J?i#=dV(y054vc*X ztwi4ontL&zA(4NCY({eZqvZ*JLc~^bCqNhE+dIjxv2RHzha?1cf zHn;MQqww4TmJMMsmB9S8h|R4$({6Y0cKbD!a?7rw@C1;}NMtdUK%-Xuvu1>dh!MvS zo&Z=jghs83?0z=dQ!9SY58Wj>56B8Hp5L?US{Qf~|R6Op$CxBA<_b zkZ};6Zb73~MP07j?thTC831JcG5YfW$@XTr0?1}0!m=Sp-%E-)ux-^00000NkvXXu0mjfrwv@? diff --git a/source/Items_Final/Item_Sprites/safetyscissors.png.import b/source/Items_Final/Item_Sprites/safetyscissors.png.import deleted file mode 100644 index f6088e3e..00000000 --- a/source/Items_Final/Item_Sprites/safetyscissors.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b4xjbdxvn3i2l" -path="res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/safetyscissors.png" -dest_files=["res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.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/source/Items_Final/Item_Sprites/soap.png b/source/Items_Final/Item_Sprites/soap.png deleted file mode 100644 index aadff60a19515e8dcd07e7f59204e0593a8705ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmV-$1CRWPP)Px&DoI2^R9J=WSI=u2K^T48M6j3A1QH6eWWkdw0ZVe&ix9kdu_s#)ym&9lrVu@e zHz_8x1U97o##K!5v@2Y4VI zj+^~kYb!=W2JsW&7_^2r%;4a#f$_~01H;~{$v0E z$W|+;U#O;_Y_)=;V%Z!Aj65i64U`Hw=DrIFn0IbXwsbfSrL7_+2}q?A$W|-1@uJo+ zlaz&J*AW+Tz;K$B5;!WBp|n*rwH5$l&QzMMtzW2!h6MD6I;I2X-hfX8Smgc50JM*i z9~H|8{4`DHQgUE+Os_8kiwmIS`{|U;IbbAIe=X2{B24 zTziG2l)$F2fiK@DCb<~oadqf}7eqj_K)_OnZo&usF!B$RbBq+onk8HJKb4~>>>YTzc zNyxk)&z{F!!)jDLFl)PC!m;3pfUeZI<3km_q3)PW!~M6&nF6dLy4p+x6~ub~`H>Ss zT;CV2myxd2xKn@thI6-LHXXp1-0O+wc^gs@0UqXUMsGd}FLF26RxI?rB66NwUj}gh z(bRFHE$SRFURsOr{Wh%sz*yUR=j`|3t)nvPx%F-b&0R9J=WmO)6{P#ng;$%X;Z9R`6}T!(`VR-_V&Vy}8_MHtp9=wKHi?7Tx! zaiy>xJc;13dQf+e&3Y?4D2zy@=%gw-SXqR0P@JGL=s|cp)MR#B^8SzJAm|4n5Az7UwY@PXYj=t_0WQ@9bq>SwdHL zKb98f9lhi6B<7|kpqI+n$*$B6&?5)fO7aJSvjKQz2_vs3@pXUCy8raKugY(RPx&)= z_tA$>r5qQ+(Ga`;jE(Gnh9}c*K{!b-m7$I1pry{S_T?cGr-xhsZVwzyKEe?IZ8XQT zVq@b3TIwFxCj@Z%VjE3~4rqtxgmPlx08qy>wD}(3EVgNT-@EYbpRu#zg?j)z2z~I$ zpWxVL#W%A>2H-w|s}T81h^9nGCGg5j+t&0dKNW!tU_t<}K->@)Aiww13jQ0!&hILK z9fWPTs$5>RkO25is49S}aA#H>PM6~fWa}GYl~fhvox0l$pV+5rH-C`#}& zm#agZq$)6q63{@(r}cnQto#E!A2b+!K?}$nuSG(yq0tv~E!Y(4ODL-EFXQe4h!g~X z$Eh)Q0qhEjg8fh24MUF{VBuc{p`z)AR?=>W1Rx3_5>5s%At*kP@LOFA{RZOe*`o6% Rsc8TJ002ovPDHLkV1myqAAkS= diff --git a/source/Items_Final/Item_Sprites/soda.png.import b/source/Items_Final/Item_Sprites/soda.png.import deleted file mode 100644 index 5da22444..00000000 --- a/source/Items_Final/Item_Sprites/soda.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dgtydwnlm8cga" -path="res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/soda.png" -dest_files=["res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.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/source/Items_Final/Item_Sprites/spatula.png b/source/Items_Final/Item_Sprites/spatula.png deleted file mode 100644 index f675b6ab805d62e6fe93d54269c1062fd765186b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)Px$nO22>J+oRcdE4qFr0IlTcOgXlv3RY1Ko+)IW9G$7K-c|*xsKR>NJpDi( zNJ6xtb9T3D?9^TX5cn=A_Cypp4!^p1mN=W!ho!Alt|);YNc#I9zS~6 zGgmBu+WQWH?^4=w4G2J|(P4RI6@X74-tcbsb_%UME`X08E{p7+O-th0v&VUyXL)HY1NAYOwY_3km;FOs+F<< zsaDFjew0M7p$19fD3iGuK)Cbq21FKf$k_`V+f!3>3udhEyH=K7Fp&qKTUn|Vm1BD< zthd$X%P?2NxzibNY)>scw@KpYuDSwRS$g<__E&^ txj78zhPVAjjU3?T$$rmxRMr0%z#lZ`6lR$8B8~t6002ovPDHLkV1g1K1aANU diff --git a/source/Items_Final/Item_Sprites/spatula.png.import b/source/Items_Final/Item_Sprites/spatula.png.import deleted file mode 100644 index c1e52018..00000000 --- a/source/Items_Final/Item_Sprites/spatula.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://n4gexuvjvwru" -path="res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/spatula.png" -dest_files=["res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.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/source/Items_Final/Item_Sprites/spraypaint.png b/source/Items_Final/Item_Sprites/spraypaint.png deleted file mode 100644 index 2395e8903426c690702709aa1ded3415de8bdcb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UEbP)Px$$w@>(R9J=WmcL5^VHn51NvWWTU}_|4kSGVCgNcYsVMY|{mSg`-dqYEO5Y-gb zQb}`#IVgfl23`%KQipM%IJ^yYrsm!0t73!S?cV3thxeZ6?g1v6Xo!kN;v^c0ld%;h zgb04}f2Wb;qc7WepLBoNvG00cyQ z3Z)uJKVC>ePyu-SG2&wwoSqy>`h`|D06-Fg3P8AGAHzVWu>t_9{A<(RdS*ANk(S6c zP!kG;I@JmzCn|tKsfI+VF6);_)&DeTr>L9I;&$SJ`+erP**3erp@7Bh1poXp8UT)a zhiz$D)UGoufX!zyBa??3pc_ypKrfmP{D zVqvceFshKujR-){=As?|P&IzGo$EB#p2l%#KOP)Px%_(?=TR9J=WmN7^hQ5eU6mXbgr1}|0;lchq;AYu;-2QjpT&_ba$Ag%3C3U&~| zO`YuQQnZ^(2OXS55Tu1dL25w@2bCyd;k48xF(P^r0|m2Ohs&M0++Ct}D24nX5Werd z_y4``eR(fXS6%;D4b_q(!_%6o=3VoG;OE`+aMd-g1TZo@tpSMlZ*#*RptBaMyPqej}FY9}Joc#n)vl4R)YZ^d$Wy2h6tHA5g=Ky4K1rF6yW~S!384aSUdGm8K z8U$c>|A-c$k)iQ^s`bj;!kVUOn)dQ(+?Kmu8JK+Yo>!wU0EmQq42}2eiD!2m7gv5B z@jI^{k=s!i#=HAR)d5sB&)CEu>2-xn_5c#12~w%8?PGR+Yy%)AL}F45DIp@SrjZgN zEkYw6uST@B+11{601@h{vmMS}w(;67)r7 z127;!Z#1J3)9VUSyd5dtPVuY(k5?m;J2k7L$ckBk-X}V+G568{PB67%04Hj(reURQ zzk*Dz;5blTU7qGQ+1*8J}H;cgck<5ipr~2*@Ty_fZGvdvInk< zL_$6@FR!L;`Dzdr073A(n}mZ^Ar)Bx^a>oRr+|C2mdkb#>7A?_L_$6?xdM@pkMOO~ zIZUZfj7O?T@R&K{BC3>I4>|q}Pt+n!g2!>EnOuPrwP-%k#`u^Nb2KoF(<>Whto+e( zy$1{kL)pEY88<-6rN|1AaF9qiNOmu0jyH_mUP=o<`j-r|nD6}g#Zn-XJ+K^u)1@;x z`4)iWorjLQtqHIxFEs#~u%tI*Pbz6Kt28wpBLluPpG|qGnx{pMbX`(PE8hiR{s$Px$c}YY;R9J=WmA^{EP!z_0ijEE@*tsG_>?Tfmg*-x@z)7JExaj8U;wHGb)~SNN zLKllp0g+O0l1Ssw!ST5CCTY^t{>i;M_)V9?<^I0&otqo@mmyU>Uw#eVXthN|q|s`d zH&OL`5fOO|BM}iXnuO|H!LPe-=2FOZuHbu(<1quPx(u8)kLZ4Ua8tDY}G?}?xX&pZ2Z{pRcntnt0t5~!!Z04LrdSTN{3tQawHesLMERp(haK(0`R z>|Ix|fM`@GfR}E-cHHEKM@fC~G8qmfT|xz}I5omfa?7WIm6lGxc3i1AH2}We*8v#z zgTly5HIRi5`vFiq?@3ztD=31eXFrP;N?;m%mbouwpiDT-If6nsi@{-z1j_DwE(5yY zFvAFR#GcmF19Wz-RG5J7&Xpz}WTJDWTmrV^%Eorx2s~%Nc3e?UX$+6_!6ExQ9>KHk px-NL$K*oq}IQ;Mq=!X9ZeFHqN1sM@5UgrP+002ovPDHLkV1jgH%*6lz diff --git a/source/Items_Final/Item_Sprites/toothbrush.png.import b/source/Items_Final/Item_Sprites/toothbrush.png.import deleted file mode 100644 index c02978ff..00000000 --- a/source/Items_Final/Item_Sprites/toothbrush.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://jn1r45u8tnmk" -path="res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/toothbrush.png" -dest_files=["res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.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/source/Items_Final/Item_Sprites/toyraygun.png b/source/Items_Final/Item_Sprites/toyraygun.png deleted file mode 100644 index 316bc9b590c56e5743a3fcda5bb963b2b3212b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmV+v1MB>WP)Px%&PhZ;R9J=Wl|e|8VHn4MpL0%hqr-CbEfNXALmILccHCi%A&3%2ciFi*7duJU zQ0XWgqFWKpK*!j@F2R^aVnV|m#A2U17KzI?r+ppf`}uuyn{#59_JPsYxu3KfKuW_+;yq|%+*E4 zrZ)(L0e=TG)~q%HQ#o=^ze3m5EQz>_OiC_WFc41j>2v6xz_I%Uw7~0dt0P$}idn%ooYD&XnpA0jR7~q0yu$d<0Wph>pg%z* z&(vQd9u8Frmt(0P`hd~As&EtZ@M+&Oe#+#Y;hSP~@m1 zLWH$t4=A=fyWhsD&BWl1uYg3*pCJ0GUivDRk+?Jf^y3j7if%7T&+l4Q0H3F|uJ%KP z?||MD`mqQxBKCP&0qQ2NC_s-=bFSJ}hsc})TYtSx(F_uGKtiO)+c zaH2rDzoal>%wjv2HmpPx%)Ja4^R9J=WmOo5dK^(`wk2cjXN^?c}`k0zjki@`bNbCe#2a=aA&t2l;;9v(j zI=DIz-E~nDciBi7AtY94!la zvj1$#v=fS%lGMGniLHC>YC# zk)OaOOc{tkfMO-~24b=o6j z->bsd`c~HWzy<=a14nyZP)hmuyc$BaG8B9n)XCu$bVCC$&V~$xZw3eH19`P~z zO0A|F8ukyG99Raz6`+_&nQSG%c!kzyKU-T}!s*$KG=u}dD$auR%>hmhuegtHXsA|( zyd143e*d7!51QT&Fe0mhzNUZ1+j_)z;WYRu|w#F=Ey=wRvZ}LcIiX}r)M{U7<-PZGibE> zz7Y1U2m#}J`{eK{P~6K3`4}3lJ_sRLTU`>~*&(Wxq0lGzRlHX}SNi5_lTBjd_69Uw zr4zy`Jjo{S1(SG=*aCptOEY3CH8IbGbsQxtmyVxkzg{)c4^9)QN9MoQc+=Qp`|7VsAM@_GEKbf2T Y0c%H?_82T|^Z)<=07*qoM6N<$f?%V7q5uE@ diff --git a/source/Items_Final/Item_Sprites/trenchcoat.png.import b/source/Items_Final/Item_Sprites/trenchcoat.png.import deleted file mode 100644 index 82b59c2d..00000000 --- a/source/Items_Final/Item_Sprites/trenchcoat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dna8nprqj1ifn" -path="res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/trenchcoat.png" -dest_files=["res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.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/source/Items_Final/Item_Sprites/trowel.png b/source/Items_Final/Item_Sprites/trowel.png deleted file mode 100644 index 8d5d4e03736cfec6bfdbd6b8c0ea817a99196e25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP)Px%4oO5oR9J=Wl)q~eVI0Ok=MPkH2_44vs>diqIheDWXH^+=PNRSQ?5MqL9*XrA{h{=-Z)vk4wy(r1v9JpY85AzMuDb zp6?6iQfO`>BjzSDBJMetI=!4VhsFKrtEW#H@%qz_HZXu$b6A+;LjdTyj$HsCHi!$| zKDw?8fL$0Nt~j~^_!Sq#e-RX&eGL#W#O+&Ga9tN&*Q1`R2IvN17e*lBK6C^aB!m)R zP!K&!SakL^r+UP<#&4i?GqR=~x|CfV@I%n%MDgynXeiZ-6s(K&6A`SJqe8_)^^kV0mSMc1Kj|YYkP(nzqPU zdElg!QaigxEUzrU3q&s`LOYNgJGl%D!(e-(?71KzdN~nE1X4jDLIbR?u6Zs5fe6(B z-~Nl4XHUJ0NkRbLW~g*A41iSQpt|(a{kLd7wD|S?2LOpgg3S-_N#4A{U#?SlK22j! zEbi5|mi+%l)`5ys(%R$5S^1Xr?4(c;bb{bC4uHd2(}Pe&5h;Kl0zmd6XXTYHL=NDC iK!N~Jj$_ifBG54m9P_&vMCz;n0000Px%ElET{R9J=Wl`&`&Q5eU6id&!@NywmZ9U=`$6DQ-G8w6?0);(EVg&N4>9Eyct z$AXB>p17nsxTJ#!rB3a&dchP7G+<4n1YKOtLEm|{m)v(z6e0iRKJLBm`~BZ{@7{x% z{#UK8H|^E+rv1<0=Fz}5j|P9=gd5&`@%Fb(T%0D!dN=qbwsx#(`N0iXI~IwnQO88< z$2*!#ogPm+aj$CzHX)v@ z;C>2fLbM0wGbn>5?t@pJ?*U4ch8V2m z`>p0PD|XVzF&g%ni(Gbq`v*e+9&K5ShJDIKgIc}K=Gro)N`vFQ4)6CL`qme9U^MJI z&sx2IZd}33MT1hMLAhvfuiTN8mLEjrq5;6>+VZ(E1$Uc~N@T!mg>F-7ymNR!t=^`P zjfoA2_P~{E3ly?37E+4Xi_AxB)Z?F(3xg(>lPx%I7vi7R9J=WRliFcQ5^qVX$%Nb&}(sMHw?+kK~oeG*>mNxXAa*2G)1AIfj(h^Z$EywC4w7hlScxkFhQ}dwk3iY z)GT=?MBHvQzzZwMj59Oi6Jz-D`3TEP^IT!KM9Cf~bx%UK&q^{wXGRqV`F$MZ_mN7Z zF+MSNMbvdLD^RBP6meV*FoPEt@8HdPzY}w2RAHJXwsLFk9h1Jjishvi z1oZTtqg0VG9BPQLG5J__zHRbSC5Zbob1ZTIz}_K$mbewr!Ug0`M*#p?L>ybzX!w;X zK>)CPKk3;0{>Sd}SNg3R5=v^eS8t9buG=L!&(Z1!H1hC`Pk7bZCok-l@{{Leoc`pyYHCO3t`ZM5}}xQVZmvQ7gFzHdSzqP;^Cb5Gy4OxiYxh%)&C z#k9Eass3jWk<(u^o6C0#Smh=nvRgt#BuSEION5UR54;I?U%8^|*A3qlc>QvNo-I59 z08B^25&)zUX}o&(0>6INkV>SR%Hw-#V_KY4RmI(r!7J;W7qRmKY!R&W|8^X^=%N$& Y13@_gzp~jW0RR9107*qoM6N<$g19Cg#Q*>R diff --git a/source/Items_Final/Item_Sprites/yoyo.png.import b/source/Items_Final/Item_Sprites/yoyo.png.import deleted file mode 100644 index 7faaddd3..00000000 --- a/source/Items_Final/Item_Sprites/yoyo.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dqmbec8uh8jaq" -path="res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/yoyo.png" -dest_files=["res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.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/source/item/stats_and_item_handler.gd b/source/item/stats_and_item_handler.gd index 69cae725..e6f7ae02 100644 --- a/source/item/stats_and_item_handler.gd +++ b/source/item/stats_and_item_handler.gd @@ -36,3 +36,4 @@ func handle_drop(item : Item, destroy : bool) : #(queue_free() is temporary, will change later when we know whats actually going to happen with the item) if destroy : item.queue_free() pass + diff --git a/source/scenes/IteE421.tmp b/source/scenes/IteE421.tmp deleted file mode 100644 index 9b5a0f2a..00000000 --- a/source/scenes/IteE421.tmp +++ /dev/null @@ -1,19 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] - -[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] - -[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] - -[node name="Node2D" type="Node2D"] - -[node name="Player" type="Node2D" parent="."] -script = ExtResource("1_rryau") - -[node name="Area2D" type="Area2D" parent="Player"] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] -shape = SubResource("CircleShape2D_f54gc") - -[node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("4_t3y7h") diff --git a/source/scenes/IteEC4C.tmp b/source/scenes/IteEC4C.tmp deleted file mode 100644 index 9b5a0f2a..00000000 --- a/source/scenes/IteEC4C.tmp +++ /dev/null @@ -1,19 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] - -[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] - -[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] - -[node name="Node2D" type="Node2D"] - -[node name="Player" type="Node2D" parent="."] -script = ExtResource("1_rryau") - -[node name="Area2D" type="Area2D" parent="Player"] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] -shape = SubResource("CircleShape2D_f54gc") - -[node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("4_t3y7h") diff --git a/source/scenes/ItemTestingScene.tscn b/source/scenes/ItemTestingScene.tscn index b7ff2b9b..54ce9bd5 100644 --- a/source/scenes/ItemTestingScene.tscn +++ b/source/scenes/ItemTestingScene.tscn @@ -1,7 +1,10 @@ -[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] +[gd_scene load_steps=7 format=3 uid="uid://csmmvcufjnsl2"] [ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Status_Effect_Manager.gd" id="2_evv0p"] +[ext_resource type="Resource" uid="uid://6ukslotnk4y3" path="res://DmgBuffItem.tres" id="2_blmat"] +[ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://DamageWhenOnFire.tres" id="3_h0kxt"] +[ext_resource type="Resource" uid="uid://bfaht58ucl5e2" path="res://DamageBuffWhenLowHp.tres" id="4_s3syo"] +[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] [sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] @@ -9,6 +12,7 @@ [node name="Player" type="Node2D" parent="."] script = ExtResource("1_rryau") +items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt"), ExtResource("4_s3syo")]) [node name="Area2D" type="Area2D" parent="Player"] @@ -16,4 +20,4 @@ script = ExtResource("1_rryau") shape = SubResource("CircleShape2D_f54gc") [node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("2_evv0p") +script = ExtResource("4_t3y7h") diff --git a/source/scripts/Item_Advanced_Functions.gd b/source/scripts/Item_Advanced_Functions.gd index 66ec5a20..d40e0a71 100644 --- a/source/scripts/Item_Advanced_Functions.gd +++ b/source/scripts/Item_Advanced_Functions.gd @@ -1,6 +1,3 @@ -#THIS IS THE TESTING VERIONS -#DELETE LATER - #class_name Item_Advanced_Functions extends Node#extend node to allow global script #THIS NEEDS TO BE SET AS A GLOBAL SCRIPT diff --git a/source/scripts/Item_Test.gd b/source/scripts/Item_Test.gd index 3611965f..c2c95086 100644 --- a/source/scripts/Item_Test.gd +++ b/source/scripts/Item_Test.gd @@ -1,6 +1,4 @@ -#LEGACY TESTING CODE -#CAN BE DELETED -#class_name Item_Test +class_name Item_Test extends Resource #basic stats diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index 1ad005b5..842c59f5 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -6,17 +6,11 @@ extends Node var maxHealth : int = 12 var damage :int = 0 - - -var health :int = 0 -#signal onAttack(player)#This signals will emit every attack -#signal onGetHit(player)#This signal will emit every time the player gets hit +var health :int = 12 +signal onAttack(player)#This signals will emit every attack +signal onGetHit(player)#This signal will emit every time the player gets hit #more signals to tell items when to trigger their effects -var onAttackFunctions : Array[Callable] -var onFireFunctions : Array[Callable] -var onHitFunctions : Array[Callable] -var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter @onready var statusEffects : StatusEffectManager = $StatusEffectManager @@ -32,50 +26,37 @@ func _process(_delta: float) -> void: print("damage is " + str(damage)) func manage_test_input(): - pass #Press enter to get item (currently only the DmgBuffItem) - #if Input.is_action_just_pressed("1"): - #print("Gave Item " + str(items[0].resource_path)) - #get_item(items[0]) - #if Input.is_action_just_pressed("2"): - #print("Gave Item " + str(items[1].resource_path)) - #get_item(items[1]) - #if Input.is_action_just_pressed("3"): - #print("Gave Item " + str(items[2].resource_path)) - #get_item(items[2]) - ##press left mouse to "fire" - #if Input.is_action_just_pressed("mouse_0"): - #print("Just Fired") - ##onAttack.emit(self) - #call_functions(onAttackFunctions) - ##change_health(1) - ##press right mouse to check damage stat - #if Input.is_action_just_pressed("mouse_1"): - #testToggle = !testToggle - #if Input.is_action_just_pressed("ui_accept"): - #statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) + if Input.is_action_just_pressed("1"): + print("Gave Item " + str(items[0].resource_path)) + get_item(items[0]) + if Input.is_action_just_pressed("2"): + print("Gave Item " + str(items[1].resource_path)) + get_item(items[1]) + if Input.is_action_just_pressed("3"): + print("Gave Item " + str(items[2].resource_path)) + get_item(items[2]) + #press left mouse to "fire" + if Input.is_action_just_pressed("mouse_0"): + print("Just Fired") + onAttack.emit(self) + #change_health(1) + #press right mouse to check damage stat + if Input.is_action_just_pressed("mouse_1"): + testToggle = !testToggle + if Input.is_action_just_pressed("ui_accept"): + statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) -func get_item(item : Item): +func get_item(item : Item_Test): damage += item.damage health += item.health - - for i in range(item.FunctionTypes.size()): - match item.functionTypes[i]: - Item.FunctionTypes.OnStart: - Callable(Item_Functions, item.functionNames[i]).bind(self).call() - Item.FunctionTypes.OnFire: - onFireFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) - Item.FunctionTypes.OnHit: - onHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) - Item.FunctionTypes.OnGetHit: - onGetHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) - #if(item.onStartFunctions != ""): - #Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME - #if(item.onFireFunctions != ""): - #onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) - #if(item.onGetHitFunctions != ""): - #print("new on get hit function: " + item.onGetHitFunctions) - #onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) + if(item.onStartFunctions != ""): + Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME + if(item.onFireFunctions != ""): + onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) + if(item.onGetHitFunctions != ""): + print("new on get hit function: " + item.onGetHitFunctions) + onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) func hit_object(ps: Player_Test): pass @@ -83,13 +64,8 @@ func hit_object(ps: Player_Test): func change_health(deltaHealth : float): print("Player took " + str(-deltaHealth) + " damage") health += deltaHealth - #onGetHit.emit(self); - call_functions(onGetHitFunctions) + onGetHit.emit(self); if(health < 0): print("You died fool") - -func call_functions(arr : Array[Callable]): - for i in arr: - i.call() #func give_status_effect(effect : StatusEffect, duration : float): #statusEffects.giveStatus(effect, duration) diff --git a/source/scripts/StatusEffect.gd b/source/scripts/StatusEffect.gd new file mode 100644 index 00000000..e69de29b diff --git a/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd b/source/scripts/StatusEffectManager.gd similarity index 94% rename from source/Items_Final/Item_Scripts/Status_Effect_Manager.gd rename to source/scripts/StatusEffectManager.gd index 8bdaa11e..8c2a370e 100644 --- a/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd +++ b/source/scripts/StatusEffectManager.gd @@ -19,8 +19,8 @@ func _ready() -> void: func setStartingStatusFunctions(ps : Player_Test): #Temperary. StatusEffect behavior should be stored elsewhere - addStatusStartFunction("Fire", Callable(Item,"fire_start").bind(ps)) - addStatusEndFunction("FireTick", Callable(Item_Functions,"fire_tick_end").bind(ps)) + addStatusStartFunction("Fire", Callable(ItemAdvancedFunctions,"fire_start").bind(ps)) + addStatusEndFunction("FireTick", Callable(ItemAdvancedFunctions,"fire_tick_end").bind(ps)) addStatusStartFunction("Damage Buff 2", (func(x : Player_Test): x.damage += 3).bind(ps)) addStatusEndFunction("Damage Buff 2", (func(x : Player_Test): x.damage -= 3).bind(ps)) From 7613a7bd3d50bf28a10f03a80a04583b2989e470 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 16:46:02 -0400 Subject: [PATCH 064/110] Reapply "Reapply "Merge pull request #13 from UVASGD/develop"" This reverts commit cb6533c880b9006fb5610d0ab053fbb9efff6490. --- project.godot | 2 + .../Item_Resources/BakingSoda.tres | 21 +++++ .../Item_Resources/BaseballBat.tres | 21 +++++ .../Item_Resources/BaseballCap.tres | 19 ++++ .../Item_Resources/BoxingGloves.tres | 21 +++++ .../Items_Final/Item_Resources/OvenMitts.tres | 21 +++++ .../Items_Final/Item_Resources/Plunger.tres | 21 +++++ .../Items_Final/Item_Resources/RainBoots.tres | 21 +++++ .../Item_Resources/SafetyScissors.tres | 21 +++++ .../Item_Resources/ToiletPaper.tres | 21 +++++ .../Item_Resources/TrenchCoat.tres | 21 +++++ source/Items_Final/Item_Resources/Yo-Yo.tres | 21 +++++ .../Items_Final/Item_Resources/newItem.tres | 3 + source/Items_Final/Item_Scripts/Item.gd | 42 +++++++++ .../Item_Scripts/Item_Functions.gd | 9 ++ .../Item_Scripts/Status_Effect_Manager.gd} | 4 +- .../Item_Sprites/Plunger pixel art.png | Bin 0 -> 243 bytes .../Item_Sprites/Plunger pixel art.png.import | 34 +++++++ .../Items_Final/Item_Sprites/Stick Sprite.png | Bin 0 -> 344 bytes .../Item_Sprites/Stick Sprite.png.import | 34 +++++++ .../Item_Sprites/Top hat pixel art.png | Bin 0 -> 301 bytes .../Item_Sprites/Top hat pixel art.png.import | 34 +++++++ .../Items_Final/Item_Sprites/bakingsoda.png | Bin 0 -> 849 bytes .../Item_Sprites/bakingsoda.png.import | 34 +++++++ .../Items_Final/Item_Sprites/baseballbat.png | Bin 0 -> 625 bytes .../Item_Sprites/baseballbat.png.import | 34 +++++++ .../Items_Final/Item_Sprites/baseballcap.png | Bin 0 -> 642 bytes .../Item_Sprites/baseballcap.png.import | 34 +++++++ .../Items_Final/Item_Sprites/boxinggloves.png | Bin 0 -> 624 bytes .../Item_Sprites/boxinggloves.png.import | 34 +++++++ source/Items_Final/Item_Sprites/bubblegum.png | Bin 0 -> 812 bytes .../Item_Sprites/bubblegum.png.import | 34 +++++++ source/Items_Final/Item_Sprites/candycane.png | Bin 0 -> 472 bytes .../Item_Sprites/candycane.png.import | 34 +++++++ source/Items_Final/Item_Sprites/fryingpan.png | Bin 0 -> 508 bytes .../Item_Sprites/fryingpan.png.import | 34 +++++++ source/Items_Final/Item_Sprites/hose.png | Bin 0 -> 648 bytes .../Items_Final/Item_Sprites/hose.png.import | 34 +++++++ source/Items_Final/Item_Sprites/juicebox.png | Bin 0 -> 619 bytes .../Item_Sprites/juicebox.png.import | 34 +++++++ .../Items_Final/Item_Sprites/magic8ball.png | Bin 0 -> 451 bytes .../Item_Sprites/magic8ball.png.import | 34 +++++++ source/Items_Final/Item_Sprites/marbles.png | Bin 0 -> 988 bytes .../Item_Sprites/marbles.png.import | 34 +++++++ source/Items_Final/Item_Sprites/mop.png | Bin 0 -> 562 bytes .../Items_Final/Item_Sprites/mop.png.import | 34 +++++++ source/Items_Final/Item_Sprites/ovenmitts.png | Bin 0 -> 748 bytes .../Item_Sprites/ovenmitts.png.import | 34 +++++++ source/Items_Final/Item_Sprites/piratehat.png | Bin 0 -> 449 bytes .../Item_Sprites/piratehat.png.import | 34 +++++++ .../Items_Final/Item_Sprites/pocketwatch.png | Bin 0 -> 681 bytes .../Item_Sprites/pocketwatch.png.import | 34 +++++++ .../Items_Final/Item_Sprites/propellerhat.png | Bin 0 -> 751 bytes .../Item_Sprites/propellerhat.png.import | 34 +++++++ .../Items_Final/Item_Sprites/puzzlecube.png | Bin 0 -> 737 bytes .../Item_Sprites/puzzlecube.png.import | 34 +++++++ source/Items_Final/Item_Sprites/rainboots.png | Bin 0 -> 500 bytes .../Item_Sprites/rainboots.png.import | 34 +++++++ .../Item_Sprites/rainbowlollipop.png | Bin 0 -> 819 bytes .../Item_Sprites/rainbowlollipop.png.import | 34 +++++++ source/Items_Final/Item_Sprites/rake.png | Bin 0 -> 527 bytes .../Items_Final/Item_Sprites/rake.png.import | 34 +++++++ .../Items_Final/Item_Sprites/rubberduck.png | Bin 0 -> 613 bytes .../Item_Sprites/rubberduck.png.import | 34 +++++++ .../Item_Sprites/safetyscissors.png | Bin 0 -> 757 bytes .../Item_Sprites/safetyscissors.png.import | 34 +++++++ source/Items_Final/Item_Sprites/soap.png | Bin 0 -> 880 bytes .../Items_Final/Item_Sprites/soap.png.import | 34 +++++++ source/Items_Final/Item_Sprites/soda.png | Bin 0 -> 631 bytes .../Items_Final/Item_Sprites/soda.png.import | 34 +++++++ source/Items_Final/Item_Sprites/spatula.png | Bin 0 -> 555 bytes .../Item_Sprites/spatula.png.import | 34 +++++++ .../Items_Final/Item_Sprites/spraypaint.png | Bin 0 -> 527 bytes .../Item_Sprites/spraypaint.png.import | 34 +++++++ .../Items_Final/Item_Sprites/toiletpaper.png | Bin 0 -> 830 bytes .../Item_Sprites/toiletpaper.png.import | 34 +++++++ .../Items_Final/Item_Sprites/toothbrush.png | Bin 0 -> 447 bytes .../Item_Sprites/toothbrush.png.import | 34 +++++++ source/Items_Final/Item_Sprites/toyraygun.png | Bin 0 -> 788 bytes .../Item_Sprites/toyraygun.png.import | 34 +++++++ .../Items_Final/Item_Sprites/trenchcoat.png | Bin 0 -> 794 bytes .../Item_Sprites/trenchcoat.png.import | 34 +++++++ source/Items_Final/Item_Sprites/trowel.png | Bin 0 -> 596 bytes .../Item_Sprites/trowel.png.import | 34 +++++++ source/Items_Final/Item_Sprites/winterhat.png | Bin 0 -> 627 bytes .../Item_Sprites/winterhat.png.import | 34 +++++++ source/Items_Final/Item_Sprites/yoyo.png | Bin 0 -> 638 bytes .../Items_Final/Item_Sprites/yoyo.png.import | 34 +++++++ source/item/stats_and_item_handler.gd | 1 - source/scenes/IteE421.tmp | 19 ++++ source/scenes/IteEC4C.tmp | 19 ++++ source/scenes/ItemTestingScene.tscn | 10 +- source/scripts/Item_Advanced_Functions.gd | 3 + source/scripts/Item_Test.gd | 4 +- source/scripts/Player_Test.gd | 86 +++++++++++------- source/scripts/StatusEffect.gd | 0 96 files changed, 1613 insertions(+), 42 deletions(-) create mode 100644 source/Items_Final/Item_Resources/BakingSoda.tres create mode 100644 source/Items_Final/Item_Resources/BaseballBat.tres create mode 100644 source/Items_Final/Item_Resources/BaseballCap.tres create mode 100644 source/Items_Final/Item_Resources/BoxingGloves.tres create mode 100644 source/Items_Final/Item_Resources/OvenMitts.tres create mode 100644 source/Items_Final/Item_Resources/Plunger.tres create mode 100644 source/Items_Final/Item_Resources/RainBoots.tres create mode 100644 source/Items_Final/Item_Resources/SafetyScissors.tres create mode 100644 source/Items_Final/Item_Resources/ToiletPaper.tres create mode 100644 source/Items_Final/Item_Resources/TrenchCoat.tres create mode 100644 source/Items_Final/Item_Resources/Yo-Yo.tres create mode 100644 source/Items_Final/Item_Resources/newItem.tres create mode 100644 source/Items_Final/Item_Scripts/Item.gd create mode 100644 source/Items_Final/Item_Scripts/Item_Functions.gd rename source/{scripts/StatusEffectManager.gd => Items_Final/Item_Scripts/Status_Effect_Manager.gd} (94%) create mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png create mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png.import create mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png create mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png.import create mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png create mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png.import create mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png create mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png.import create mode 100644 source/Items_Final/Item_Sprites/baseballbat.png create mode 100644 source/Items_Final/Item_Sprites/baseballbat.png.import create mode 100644 source/Items_Final/Item_Sprites/baseballcap.png create mode 100644 source/Items_Final/Item_Sprites/baseballcap.png.import create mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png create mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png.import create mode 100644 source/Items_Final/Item_Sprites/bubblegum.png create mode 100644 source/Items_Final/Item_Sprites/bubblegum.png.import create mode 100644 source/Items_Final/Item_Sprites/candycane.png create mode 100644 source/Items_Final/Item_Sprites/candycane.png.import create mode 100644 source/Items_Final/Item_Sprites/fryingpan.png create mode 100644 source/Items_Final/Item_Sprites/fryingpan.png.import create mode 100644 source/Items_Final/Item_Sprites/hose.png create mode 100644 source/Items_Final/Item_Sprites/hose.png.import create mode 100644 source/Items_Final/Item_Sprites/juicebox.png create mode 100644 source/Items_Final/Item_Sprites/juicebox.png.import create mode 100644 source/Items_Final/Item_Sprites/magic8ball.png create mode 100644 source/Items_Final/Item_Sprites/magic8ball.png.import create mode 100644 source/Items_Final/Item_Sprites/marbles.png create mode 100644 source/Items_Final/Item_Sprites/marbles.png.import create mode 100644 source/Items_Final/Item_Sprites/mop.png create mode 100644 source/Items_Final/Item_Sprites/mop.png.import create mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png create mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png.import create mode 100644 source/Items_Final/Item_Sprites/piratehat.png create mode 100644 source/Items_Final/Item_Sprites/piratehat.png.import create mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png create mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png.import create mode 100644 source/Items_Final/Item_Sprites/propellerhat.png create mode 100644 source/Items_Final/Item_Sprites/propellerhat.png.import create mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png create mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png.import create mode 100644 source/Items_Final/Item_Sprites/rainboots.png create mode 100644 source/Items_Final/Item_Sprites/rainboots.png.import create mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png create mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png.import create mode 100644 source/Items_Final/Item_Sprites/rake.png create mode 100644 source/Items_Final/Item_Sprites/rake.png.import create mode 100644 source/Items_Final/Item_Sprites/rubberduck.png create mode 100644 source/Items_Final/Item_Sprites/rubberduck.png.import create mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png create mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png.import create mode 100644 source/Items_Final/Item_Sprites/soap.png create mode 100644 source/Items_Final/Item_Sprites/soap.png.import create mode 100644 source/Items_Final/Item_Sprites/soda.png create mode 100644 source/Items_Final/Item_Sprites/soda.png.import create mode 100644 source/Items_Final/Item_Sprites/spatula.png create mode 100644 source/Items_Final/Item_Sprites/spatula.png.import create mode 100644 source/Items_Final/Item_Sprites/spraypaint.png create mode 100644 source/Items_Final/Item_Sprites/spraypaint.png.import create mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png create mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png.import create mode 100644 source/Items_Final/Item_Sprites/toothbrush.png create mode 100644 source/Items_Final/Item_Sprites/toothbrush.png.import create mode 100644 source/Items_Final/Item_Sprites/toyraygun.png create mode 100644 source/Items_Final/Item_Sprites/toyraygun.png.import create mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png create mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png.import create mode 100644 source/Items_Final/Item_Sprites/trowel.png create mode 100644 source/Items_Final/Item_Sprites/trowel.png.import create mode 100644 source/Items_Final/Item_Sprites/winterhat.png create mode 100644 source/Items_Final/Item_Sprites/winterhat.png.import create mode 100644 source/Items_Final/Item_Sprites/yoyo.png create mode 100644 source/Items_Final/Item_Sprites/yoyo.png.import create mode 100644 source/scenes/IteE421.tmp create mode 100644 source/scenes/IteEC4C.tmp delete mode 100644 source/scripts/StatusEffect.gd diff --git a/project.godot b/project.godot index e4cf6675..342d15e2 100644 --- a/project.godot +++ b/project.godot @@ -23,6 +23,8 @@ ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" window/size/mode=2 window/stretch/mode="canvas_items" +ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" + [input] diff --git a/source/Items_Final/Item_Resources/BakingSoda.tres b/source/Items_Final/Item_Resources/BakingSoda.tres new file mode 100644 index 00000000..0d987ea0 --- /dev/null +++ b/source/Items_Final/Item_Resources/BakingSoda.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://bbebjdnx0jnqm"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_powpt"] +[ext_resource type="Texture2D" uid="uid://b7rs3tdjkmife" path="res://source/Items_Final/Item_Sprites/bakingsoda.png" id="2_pi18r"] + +[resource] +script = ExtResource("1_powpt") +sprite = ExtResource("2_pi18r") +name = "Baking Soda" +description = "Increases Speed" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 2.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballBat.tres b/source/Items_Final/Item_Resources/BaseballBat.tres new file mode 100644 index 00000000..9a25dccf --- /dev/null +++ b/source/Items_Final/Item_Resources/BaseballBat.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://chya8oc2ch8i5"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_gvtxx"] +[ext_resource type="Texture2D" uid="uid://n8kc5ecpojp0" path="res://source/Items_Final/Item_Sprites/baseballbat.png" id="2_1p0jc"] + +[resource] +script = ExtResource("1_gvtxx") +sprite = ExtResource("2_1p0jc") +name = "Baseball Bat" +description = "Increases Damage" +rarity = 0 +cost = 0 +attackDamage = 2.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballCap.tres b/source/Items_Final/Item_Resources/BaseballCap.tres new file mode 100644 index 00000000..27bb6478 --- /dev/null +++ b/source/Items_Final/Item_Resources/BaseballCap.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Item" load_steps=2 format=3 uid="uid://dxuc2aj1us8i2"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_2ncem"] + +[resource] +script = ExtResource("1_2ncem") +name = "Baseball cap" +description = "Slightly increases health and decreases cooldown" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 0.0 +cooldownReduction = 1.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BoxingGloves.tres b/source/Items_Final/Item_Resources/BoxingGloves.tres new file mode 100644 index 00000000..d355c9d7 --- /dev/null +++ b/source/Items_Final/Item_Resources/BoxingGloves.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://1lo3qihmupbe"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_dphqa"] +[ext_resource type="Texture2D" uid="uid://bxu2g1kcx6k20" path="res://source/Items_Final/Item_Sprites/boxinggloves.png" id="2_ky0rr"] + +[resource] +script = ExtResource("1_dphqa") +sprite = ExtResource("2_ky0rr") +name = "Boxing Gloves" +description = "Slightly increases attack and health" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/OvenMitts.tres b/source/Items_Final/Item_Resources/OvenMitts.tres new file mode 100644 index 00000000..a74d5a92 --- /dev/null +++ b/source/Items_Final/Item_Resources/OvenMitts.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://21ntxjjt6dfa"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_ombo1"] +[ext_resource type="Texture2D" uid="uid://b781y2yilgedy" path="res://source/Items_Final/Item_Sprites/ovenmitts.png" id="2_f8fv4"] + +[resource] +script = ExtResource("1_ombo1") +sprite = ExtResource("2_f8fv4") +name = "Oven Mitts" +description = "Slightly increases tenacity" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 1.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Plunger.tres b/source/Items_Final/Item_Resources/Plunger.tres new file mode 100644 index 00000000..1d5a361b --- /dev/null +++ b/source/Items_Final/Item_Resources/Plunger.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b2odg7j76fhrt"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_qfutt"] +[ext_resource type="Texture2D" uid="uid://6sjrjy3ts348" path="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" id="2_qfg8s"] + +[resource] +script = ExtResource("1_qfutt") +sprite = ExtResource("2_qfg8s") +name = "Plunger" +description = "Slightly increases damage and decreases cooldown" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 1.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/RainBoots.tres b/source/Items_Final/Item_Resources/RainBoots.tres new file mode 100644 index 00000000..ea00e265 --- /dev/null +++ b/source/Items_Final/Item_Resources/RainBoots.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://jdhh5df8llh8"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_aeuxc"] +[ext_resource type="Texture2D" uid="uid://bldr5242uuk63" path="res://source/Items_Final/Item_Sprites/rainboots.png" id="2_x8rcl"] + +[resource] +script = ExtResource("1_aeuxc") +sprite = ExtResource("2_x8rcl") +name = "Rain Boots" +description = "Slightly increases health and speed" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/SafetyScissors.tres b/source/Items_Final/Item_Resources/SafetyScissors.tres new file mode 100644 index 00000000..8cc63a9a --- /dev/null +++ b/source/Items_Final/Item_Resources/SafetyScissors.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://dal6qgym6pnyf"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_innlo"] +[ext_resource type="Texture2D" uid="uid://b4xjbdxvn3i2l" path="res://source/Items_Final/Item_Sprites/safetyscissors.png" id="2_h66q4"] + +[resource] +script = ExtResource("1_innlo") +sprite = ExtResource("2_h66q4") +name = "SafetyScissors" +description = "Slightly increases damage and speed" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/ToiletPaper.tres b/source/Items_Final/Item_Resources/ToiletPaper.tres new file mode 100644 index 00000000..4b3663ea --- /dev/null +++ b/source/Items_Final/Item_Resources/ToiletPaper.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://8uxqwbgx5io3"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_lp8ya"] +[ext_resource type="Texture2D" uid="uid://drouo1e7b67oo" path="res://source/Items_Final/Item_Sprites/toiletpaper.png" id="2_5pmre"] + +[resource] +script = ExtResource("1_lp8ya") +sprite = ExtResource("2_5pmre") +name = "Toilet Paper" +description = "Decreases Cooldown" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 2.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/TrenchCoat.tres b/source/Items_Final/Item_Resources/TrenchCoat.tres new file mode 100644 index 00000000..0cfffca9 --- /dev/null +++ b/source/Items_Final/Item_Resources/TrenchCoat.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://cc563lr5i06gw"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_7l3le"] +[ext_resource type="Texture2D" uid="uid://dna8nprqj1ifn" path="res://source/Items_Final/Item_Sprites/trenchcoat.png" id="2_rr3wv"] + +[resource] +script = ExtResource("1_7l3le") +sprite = ExtResource("2_rr3wv") +name = "Trench Coat" +description = "Increases Health" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 2.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Yo-Yo.tres b/source/Items_Final/Item_Resources/Yo-Yo.tres new file mode 100644 index 00000000..fd5ca491 --- /dev/null +++ b/source/Items_Final/Item_Resources/Yo-Yo.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b1h7kigidl5t2"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_12rx8"] +[ext_resource type="Texture2D" uid="uid://dqmbec8uh8jaq" path="res://source/Items_Final/Item_Sprites/yoyo.png" id="2_ibfa5"] + +[resource] +script = ExtResource("1_12rx8") +sprite = ExtResource("2_ibfa5") +name = "Yo-Yo" +description = "Slightly increases speed and reduces cooldown" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 1.0 +cooldownReduction = 1.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/newItem.tres b/source/Items_Final/Item_Resources/newItem.tres new file mode 100644 index 00000000..efa9c2fc --- /dev/null +++ b/source/Items_Final/Item_Resources/newItem.tres @@ -0,0 +1,3 @@ +[gd_resource type="Resource" format=3 uid="uid://dgttm3uig5c5p"] + +[resource] diff --git a/source/Items_Final/Item_Scripts/Item.gd b/source/Items_Final/Item_Scripts/Item.gd new file mode 100644 index 00000000..eac8354e --- /dev/null +++ b/source/Items_Final/Item_Scripts/Item.gd @@ -0,0 +1,42 @@ +extends Resource +class_name Item + +enum Rarity { + COMMON, + UNCOMMON, + RARE, + LEGENDARY +} + +enum FunctionTypes +{ + OnStart, + OnFire, + OnHit, + OnGetHit +} + +#Info +@export_group("General Information") +@export var sprite : Texture +@export var name : String +@export_multiline var description : String +@export var rarity : Rarity +@export var cost : int + + +#Stats +@export_group("Stats") +@export var attackDamage: float +@export var attackSpeed: float +@export var maxHealth : float +@export var speed : float +@export var cooldownReduction : float +@export var tenacity : float +@export var luck : float + + +#Functions +@export_group("Functions") +@export var functionTypes : Array[FunctionTypes] +@export var functionNames : Array[String] diff --git a/source/Items_Final/Item_Scripts/Item_Functions.gd b/source/Items_Final/Item_Scripts/Item_Functions.gd new file mode 100644 index 00000000..648d8fff --- /dev/null +++ b/source/Items_Final/Item_Scripts/Item_Functions.gd @@ -0,0 +1,9 @@ +class_name Item_Functions +#Needs to be a global script +extends Node +func fire_start(ps : Player_Test): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) +func fire_tick_end(ps : Player_Test): + ps.change_health(-2) + if(ps.statusEffects.hasStatus("Fire")): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.STACK) diff --git a/source/scripts/StatusEffectManager.gd b/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd similarity index 94% rename from source/scripts/StatusEffectManager.gd rename to source/Items_Final/Item_Scripts/Status_Effect_Manager.gd index 8c2a370e..8bdaa11e 100644 --- a/source/scripts/StatusEffectManager.gd +++ b/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd @@ -19,8 +19,8 @@ func _ready() -> void: func setStartingStatusFunctions(ps : Player_Test): #Temperary. StatusEffect behavior should be stored elsewhere - addStatusStartFunction("Fire", Callable(ItemAdvancedFunctions,"fire_start").bind(ps)) - addStatusEndFunction("FireTick", Callable(ItemAdvancedFunctions,"fire_tick_end").bind(ps)) + addStatusStartFunction("Fire", Callable(Item,"fire_start").bind(ps)) + addStatusEndFunction("FireTick", Callable(Item_Functions,"fire_tick_end").bind(ps)) addStatusStartFunction("Damage Buff 2", (func(x : Player_Test): x.damage += 3).bind(ps)) addStatusEndFunction("Damage Buff 2", (func(x : Player_Test): x.damage -= 3).bind(ps)) diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png b/source/Items_Final/Item_Sprites/Plunger pixel art.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b25d39f518b696ca3a611062a0a631b074f32c GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ydu{YLn7Rh zQzQ}&cy#{lJ{g$J;NNqL$h3(|IPWGs@#8%qsNk^5xucBX z&Zk=W!m?#23RwdA96nl}sM4}(s$g%>DSf1VXR3;!ufTf-rCPpX#f_Pb8tek!%zkPy Y%&U|%@X+%r1v;F;)78&qol`;+01H7|TmS$7 literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png.import b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import new file mode 100644 index 00000000..68e45fc7 --- /dev/null +++ b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6sjrjy3ts348" +path="res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" +dest_files=["res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.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/source/Items_Final/Item_Sprites/Stick Sprite.png b/source/Items_Final/Item_Sprites/Stick Sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0a9b90c68691230e30d550d9cd343c66ea9dbb GIT binary patch literal 344 zcmV-e0jK_nP)Px$5=lfsR9HvtmN5##KoCWfS_JQ4VP|D6*o!yuG~Pt)1#27aL~J~PAl54*3=FdC z{F&^s7D%Bq5 zsU8AAx*Px#=Sf6CR9Hvtmf;PAAPj|N4i>w(l5q{=V$5-uUV^E$Ek!{z!GDJ8`}ztkZfN{C zi@x{%Yl)L$LI|SHVd1J62k{Po8kt8oOb#>$h_p38Ob&Dae0)lmA*%!cQW`)z4Qz+% z0L>k!wGYP6xEmGIJUMYn)o|f<01#Z(WuU^?hN2EoAu0~<_<{K60MMFiwrRH`oMrq6 z&HPXTZo{1c;Oec3LyP{G;3_~Av1AN-cs9HjfU7lRm$IDhAJKu-H5~5|=xC{UX?^=J zxASQ;J_qJG0NRbHRJNQmr)!sEvliO{nmh0VD6)}-Px&3rR#lR9J=WmrqC(Q5?rVnwW^YO}j$6{y|7xgu*n)1o6<#ONYcm*g?cYhoJBj z9zr~52Z_DfLA*qV@Dfos4<(2aN+ij;88W%6hU<=wi0)yhgU)kiXLg-wtqA(UrPgO{lA^f4#KX%c?HRQifCnAxBKG>-q3!ov17uRL?gT12x618~ z^N!wg3^11J9k67J;J-c>Mt+$tTKKs!u$h&HR@DB*`act7k%9 zS;XrPh@xvRo@c6a0vPg-3uAqz0K4&+fYFOlXSxLAfe?zaZ30o0Z2==mKCw59v(A>2FjD}ZC$0Z+{4Xx=9lX+#ihpN#9qKOpIL@Lb;5sxNP$Z^#+1Lus!RTr-fmR6QBJ-dY0cYM?B zC7GRG5PiLEj79x7Sxz=k`27RwfyPe0ME-t)=^a1vVKMSyF>hB_ZI6N_*mHMS0|>SR zMJzlUCfE|BrL9Ro=rMi#$INrf$1|B`1+atBWi$kscsY>sACprx_3>NAYb@K?ZPx%D@jB_R9J=Om%ne*P!xqf7sL>Wsl=p^?BoX#a+C#>t*{`FK!V9T6(b8>5CcQ_ z6U<&Qq!I`r7CLocLQMm0lpzyJic+hvAY~xKV=&jajU8g=nT0b&wv+qi+;iW1hW}kg z)QzTHRduTX!0MxSkoB4u&JuQf-765$M9)>;~fY7GM7JO_EsQ>;P zbmGp93!u@3DF>XLJ)^aC=tF>H!BfSmVU?D3)COj(1LaIkl`fsaDlH>Z5p?3&^S9`5 zAv6O3-SNl(`1!*Kb>hkTEiI!N2>`I!J}~wNN0AT@>?;dH%mfgK*4E)M2$7jDES!hG z0)W?!pc6qCZr;ASkPERwRLW)WKBPtL{6$?Nh zHeR`aw_-{=k_IyI9G5dWW#2Uc{C2pm%j@@FW3?i-10r!EI31>G#{Qke00JSIkPR$u zD;5F}h+rlFDur`%e_z|aE+Z=19~{k<1+Ax>awex5#VjlNKgK?N^J!*{nMbm?>W)VS zJrq4S2@<7Lj@#u-&JSUun8n%Ii>$M72*V^>IlxMOiM870$f-yLKp+~$EC3H5Ut`km zsHR<=0!a-3;G6mmcxQ;-uH&zm{|q1~*)dNl^>@DDs;K*=MvHy{@K^KexE)jW00000 LNkvXXu0mjfxyBU8 literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/baseballbat.png.import b/source/Items_Final/Item_Sprites/baseballbat.png.import new file mode 100644 index 00000000..8480338a --- /dev/null +++ b/source/Items_Final/Item_Sprites/baseballbat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n8kc5ecpojp0" +path="res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/baseballbat.png" +dest_files=["res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.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/source/Items_Final/Item_Sprites/baseballcap.png b/source/Items_Final/Item_Sprites/baseballcap.png new file mode 100644 index 0000000000000000000000000000000000000000..e904fe88b64b0d5c613ba695e52ffd34292363f4 GIT binary patch literal 642 zcmV-|0)737P)Px%JV``BR9J=WmN7^hQ5eVn7D)yVGE|dH2XcXf5(nWjr9(>xMJI{46tPQ*Md{$u z$wilT3KR+z2Z^YNn~Ugl8FVtxA)*|_!A!C05IBe4avj?5arf>ecP|l2A^+*#yLa#Z zd*8kHeGllXuYaro*$?9Bq)X3A!oY)dBt1u00MGR)W^A{r41mGJbllWR(lCQjjLDFU zlo1`aV<9(DWc@E*0_9c9m5oTp!L({6rUL+M$3iNTXYX(8XGmr8P_-qa zhG;u5o=&>yk+-aEI~J6fjv;l}H;y0xK-IF+5YM8RcTy^o$8G(LwJ%SBrLUX5%_+H56yB_3c43@F zB8sFVAkvjt!R7T245`ETw7iIwwfUz7@a6%L3ahVBE^R>7vN$>1!TP%ruFMLeL^3oH zMbUBj0*bBU{A2?Kv%>nDce|nAcJ&KH8?ov)r<1O?(%G#l_%@l6fykIdwZc3I zrs$5fz}qG>-khSs*9g+&!rwxrjROFdrVSrNXu%L=Gv1u!g`iyUd1g8=XT4ElzM-3t z51ALpb}S*t%Gx|LCbNt>=JMu17gsVb1SJ~2R6Di(fKfa3be|)TUan?60eB&R;P2|I cum3{70j$8}NTOV_@c;k-07*qoM6N<$f|V*Nl>h($ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/baseballcap.png.import b/source/Items_Final/Item_Sprites/baseballcap.png.import new file mode 100644 index 00000000..bdce6f60 --- /dev/null +++ b/source/Items_Final/Item_Sprites/baseballcap.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm5a1jhe6ojrw" +path="res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/baseballcap.png" +dest_files=["res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.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/source/Items_Final/Item_Sprites/boxinggloves.png b/source/Items_Final/Item_Sprites/boxinggloves.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0b93388a74208416b6207347299c0af8ff4e9f GIT binary patch literal 624 zcmV-$0+0QPP)Px%DoI2^R9J=Wl{;_RP#A_E2r8z=MJNqwAXOxfWU_>mKajb5FH^Qm{DDqYe?Tf# zVrrL4*(y=b3|)y(I}xc%l}LdSmdfE$C<1ptrucG>UFcA$yqo!szxUz09K%K%{qKtX zjU?riVT)p~etedCtPN038TR96*MYIu@9wi5Q=|}U0XXKZj|1VEPu+*qlNz;dBhX6- z5LVW5%CMW-7AKhtp)tVKI8NuD3J?g95E(C*HNEX-X}&GlP2kbsD`dpx)rkdhp#Pm0 zg*aJ3|I%mJTyn0x@WZX;%@ zdL)QeTcKhV=fk(6q(dlzXtfnuZ3R=+g{5^=Pij(t&^3(O4#&u8h4XySo6^*_RtFHt zyDbO3`2|+jG}m*O0s(5>MvPo(@d@Uj}IoJF(r|p6xYv zN-vv}NG&+YT!hYow`yU=e*_Supbdy(=#}(^BhNot*KDJIQojIt%I7|uO0hKn0000< KMNUMnLSTXp_#a&W literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/boxinggloves.png.import b/source/Items_Final/Item_Sprites/boxinggloves.png.import new file mode 100644 index 00000000..773b8950 --- /dev/null +++ b/source/Items_Final/Item_Sprites/boxinggloves.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxu2g1kcx6k20" +path="res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/boxinggloves.png" +dest_files=["res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.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/source/Items_Final/Item_Sprites/bubblegum.png b/source/Items_Final/Item_Sprites/bubblegum.png new file mode 100644 index 0000000000000000000000000000000000000000..30438077f0c370ca04e06afdba12fd6aabeb310e GIT binary patch literal 812 zcmV+{1JnG8P)Px%=1D|BR9J=Wm0w6xQ5?rVi?m=dp}9R6DkwEH6%mY2=i%^#hrgZX+BI>Dvn}d>*0D&_wLTA)5m>Z?(dv? z&i#DP@0{PckXK%L<)G^3-c)sSZ|W$%bu8D3WtBA?g^A33WF|Urygkewkr`sHBCS z*~{=)w;>&_*5a36l=gJ9y|9k4HEJ;1no)A?5 zyJksrme+QsjAg|DB$n5B?|4V;#X{YLbhrYx)i&tH#$!f&uY2%byGb+{$#_;o6>KFX zSeE0ZP`|+ug5kL$-Kx^z6;JL0@CPXH1&POun5_u_@iduBFgZ)uN=m8pOlTTrTa#`; zCQY|lQl^bA&8p)uBc?}{6!?OoZMG&v7Dn%PvKe1Nni-Mb?{G9X;eO$n?gz6q!HM~w znzmY-@f85h|xM3E;eJT9xv2#bZVhM}rYLr~_$cL@YL|0i}%W z?W;RbS&7-Gi1&hTNNWIuyL>y9wMt+hfJ2hU=?s`{O)2GuJ5zTKlevV7Tazq$of;Db z>s30SMHMSx|CEQ;!8uXZfdM~`m#bo{_q;@^oL2yO52L{di(WY!Zy%loz;&sEB3m(* ztEZWN9uf2XQyu^T4-EJLH1Mnj)ETigwg7TDeVdpBV9~p(xunvSZPf=dpqQ|`+?qZm zBjGMz#yO#{NfGY`Kac?>w!7S-q~QPQR<=d~XM-NtK)ME2XOU_B^ZOJRI!{{HpuTk(>0J>fP00006P)Px$l1W5CR9J=Wmpx0vP!xtAgCL<>ODBse43TjzKrP)$!Ra_f{75Rav4Zw&`QSYFyzf1ibK$?oMA!)p-IVvw zJG*Or8IxgyYa6RftzQE0vNF$e$C2Zcz0eE&0`GO(((AUxs<*_dx5QRsZ|@5El6;?K zNVo?rt7)lJEh(#MsYRk<)mwcRF_Z;{ZpvnIfs1&G1Yj$Ilhts}_93U?ps@s8#Z%-I zfqW@EI}F{FS|s{G_Rm!o@+B#&X|dIq?{^qb0Yf)sd2gH9_ARH)4sJ0+BfE%SbxGx( z*{53`njPO<16%NLbPn+pt|EbOfa${~0CzXn;V!@}W^fe(;f8L?+`$%!MuRKhkr~Ko zgW|qMAzupI+1~!}TCq~Kezq0;;NBT9a=6#`-kC7+%560!wi=UKB>E3!AA3Ibe5CNP z=VRGN2LJQ22Tnw8F~bgk0!~&79Jz)K<+~sH&3j>lZ{qiI|M<1)x8oJ<0jssxVQlvR O0000Px$wn;=mR9J=WmOX32Kpcl3ONB0i5O5Mo5tJ-yhah4Klq)Xt23vfA~mcHbz)5F*!s3ahR?*faI^Jx-U13Eor0mor< z4BT(FPQxJK4goRxW8nACk90m>{Rsd&KeI#dW}|)-d`kdO8oeFf9xjPT!~O-l#ts*C zLbV2f;#mNY$QtDCZXNLHVy#sD>~YLMrCI}i3X2RZHe0h%XEIy)hJ&jV+iSl&Vwa2Q y27JS}1cZe9&s7Ene8Z&zLSo-TrvU%w*W?>?FCriV3SsU50000L literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/fryingpan.png.import b/source/Items_Final/Item_Sprites/fryingpan.png.import new file mode 100644 index 00000000..1afdff0f --- /dev/null +++ b/source/Items_Final/Item_Sprites/fryingpan.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdh5om0n3ttan" +path="res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/fryingpan.png" +dest_files=["res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.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/source/Items_Final/Item_Sprites/hose.png b/source/Items_Final/Item_Sprites/hose.png new file mode 100644 index 0000000000000000000000000000000000000000..821c0cec857e8b7614f06836e7cc48b50af7b5a6 GIT binary patch literal 648 zcmV;30(bq1P)Px%LPh{tdxP z>DVz8+RZpa;!a*taE4?G2#QISEvXR_KN%evDk9@@b_5S*+#{l0te-jiXe zrT($*<(X{QPN+NgdT^-q?gx2{w|2Ja9rppay(-MiDON_&_|=OBdl2e?WKtTo6K?Hn z1JFC};}3?Jz@}|QV}CGILTE*x(>JX5Z z{S#JJH>9BH5x9W>mrfU2%?3T>yAHf5kcgOg2f)he2Bl~6l*!M)x)V~?%l8b>=_L0F z)8N!iJp;-gH~_~}SuZh)kD9%E;1Ed)5cxX@ms^)b>l-)(P>Z{B|k zbs-i85WC)OZ?b=Oo_oC%pja6Zc-iLlmyZD0KRajed0Yv3Qjq#N7A0lc*4*DP!*)V( zJ#ByF==<;SPP|{a%|TWLlMX1#Fka)yzTgjrJim1BWG)3rgGic2%F*?50mLCvwV<&U iKm?JZMU9vGZ}b-!!~&?gamwES0000Px%B}qgEshyBce}~V-KG%oSHqjP z@Bik_>@cvS|4ARdtOZHe+@+hiyjl&OJ$=RUYBf=aE?x87!Xm|jm83VI(E({*{p9c@ zea(!N3qbDzjgN%13_(kWMPlSox(h8Rqi! zEdjLt0)W9If3*Q9>8EPn15tW0^RtuB0fP>N)qPJcv0shdiz7I~r8nDcR7<-9j&POv ziHQsV=k~4uP%C>ZUH)!tZUi8U*UBDm=Ibh6D|?ZkZ+~oz$4Pq&!tHG~Z3V5z&Ns{W z5SA(jV`GkRRR?rsbO;^c(l?!^biEa#Z#um(cP#__P8J}}tP^!~4@ga%Ke_z?lS6-E z=jI>22H--vVho_Y1->nq9LnO`g58I+Dt`a{9yNaOt7rQFBt+O;LV3eubS=G9@wvQy zP2)4*+X8QR3_!t1bKe&DwlJ!v-2uy52Vit`AF0PV{18Ccw2`-88^E{&5=0uenwzPu z->})pvew%&hc+*wD2Qf#Td8dM8UlkSnI@N#j`@xN{sF2l@6mIi3dsNf002ovPDHLk FV1m&P7%2b% literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/juicebox.png.import b/source/Items_Final/Item_Sprites/juicebox.png.import new file mode 100644 index 00000000..dd35366f --- /dev/null +++ b/source/Items_Final/Item_Sprites/juicebox.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://eehdxpdnjdbn" +path="res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/juicebox.png" +dest_files=["res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.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/source/Items_Final/Item_Sprites/magic8ball.png b/source/Items_Final/Item_Sprites/magic8ball.png new file mode 100644 index 0000000000000000000000000000000000000000..4b578a1d7086c4ca1d5705cf98a51f7a90220163 GIT binary patch literal 451 zcmV;!0X+VRP)Px$eMv+?R9J=Wmc44jFcgJPe};mW4qZaPLn`PH{0gCcgDxFPr;QGwygiS?vR|xzLIr5UCGh~j`}0*7H$6D3?<2+PUo17XS+*WqQ|NAIdS)agztn--UK305Tp7=Kz4!GAXpr;tA62#t7mC zz`}?RhI6cz31;!c*gxHFtRSoa$o&1SXVcvXv0Jn`?E@o#$$T1*O0lQMt`UNy1z=&s zyRUs^%Jb%AN-p`aRsI&y4f<_Ar;9?e} z0Is^fz01x9dcI*-R^NI9e6D|t?Q|&VB;ACvC6En9vj%|P%R?bX@1n#d&;r=ZAP*tJ z>;+(S_LK;q{SE7o_8_X-%=sXyL&m$HDkJB+ph^hcZI~^As*1I(Y<$cC$BL+Gb3m~P tW!Z4egm+D-DxdT6t%|Kh5Jw$^egRW*$Px&mPtfGR9J=WmTzoRRT##9ZRZjicg|DQ5w0T zH1b04);vMED47H6cesT2z*Ah1Yw57P%qyoo1kXqSDDenie|S!pt0V%}?{Eq8${On1 zWjytrnz_T@p5&ijYkAOoS$8|ij0*eQlE%KZ-^qr8gJ&c>^)M9l^M1z=&+O?2YEj}5 zey2h=N4KC#+_rZ$04aMXqn@J$h17QM63@OEV9J}oys{<}SK<+NztP1|(9e`Np}P%v z4*1-XXxqD*l)V$hv(zZ>H#{ih0v{L=}E#@b!x-K+4JV$-Itf?2CjWhC5B@3fpEPe=m zZb_)5U+qgE+0q8Jejetx-PHhueC1TNSV%@p1w{bd_t*@8Avxr1!T2>n_1$jgq7v{I z0AJc`kZkGht6D7lF?ySj)sk0i=J-Jq-Ma+94gYljL-ITU+346T=R}fsyN9Y43!zK; zc{9fk{-;kn??sM^l8X7GA$} zLzC<3>DSyD=RV!OBq#E=Aok0nJnal4M^hOm%4lx3nk#^ z{Evf%LUbqlR@eoA#~IGVy=34oo0)AY7ILc>D}ftZ<(hts*K zf&GRebPu6Qz?fa=#tV=G1Y+7_Wp3!C8AKrwhW~e_DCj~_0+fKC zo?`<5nQpVOq3;y(LX@VB>i{sfI#B|C-C9Kn0O)`3Gt8~dy!idWS>%Q2lIs*Lz})IY z85u)bWz)n}a<%)P=B^pmDf&g!?C27Xw-0df#5bC_N}Nq@^eGnYfJ%@}m^-%=EbC3! z?C26@FTG~CX0eNC*^km@N0$J|6_Og*4^Z4yyc{7a79+j~6?Xsu(}omv%#vyV0000< KMNUMnLSTXgIN0g{ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/marbles.png.import b/source/Items_Final/Item_Sprites/marbles.png.import new file mode 100644 index 00000000..d1a1e42c --- /dev/null +++ b/source/Items_Final/Item_Sprites/marbles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cam6hafwuwn0g" +path="res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/marbles.png" +dest_files=["res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.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/source/Items_Final/Item_Sprites/mop.png b/source/Items_Final/Item_Sprites/mop.png new file mode 100644 index 0000000000000000000000000000000000000000..c9d46a94bef731e51cab934786f0e826bbff5b72 GIT binary patch literal 562 zcmV-20?qx2P)Px$>`6pHR9J=Wl`%*gQ5=WAScgs_i=ZHBmJS^pu2N6oC^$qg2qK7}L!nCvJxbvS zr9^P((nU%^P8`J{9aM^oLj(mIhzX(6wSx(P(qiFAZYXr=>rn2I!)oK*yL9nCy?gKA z``+*W9uID+$CVu&5t&pFT8x<+x-n3AQmH z31mk{#L#dbl~3(U;SkX+@OJ($I7E;@H?c=1&~5CI2n2yE69@`dA`k{1S|BVulz<9& zU;$O|YYSMWEq;`W**fNz7|-fEoL51Qz@Owxp*>x+iU^gHd{P<^%TG-5#~%t zfljz?XcvCe4Na~sZ|0@YAK9D;Dj{3oIBoJzUdV-bGJ$Sr92Aa-ClkJT55Bgt&feBL z#-=6$x27Lp{QkUXw;fJC?!<-$Q=(cdGd4AWZfK;JCOIe^kzSgVLIBlbxik8}=i<`X zI(PK-TZ7q0i|B^N+R8c*uJ3_rE|ZJo8vghC4KQ>a`wz&v(*OVf07*qoM6N<$f=6uq AqyPW_ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/mop.png.import b/source/Items_Final/Item_Sprites/mop.png.import new file mode 100644 index 00000000..04dddad6 --- /dev/null +++ b/source/Items_Final/Item_Sprites/mop.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3o5u4wsuwtfj" +path="res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/mop.png" +dest_files=["res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.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/source/Items_Final/Item_Sprites/ovenmitts.png b/source/Items_Final/Item_Sprites/ovenmitts.png new file mode 100644 index 0000000000000000000000000000000000000000..266d0f95a2769c2701e2a29d97b1c322851d7f9f GIT binary patch literal 748 zcmVPx%rb$FWR9J=WRzGjrKotKOVq%F90$9S57Y`K!Bg(>#Iz(M5AAliyzfFgHfQYr~ z#LiMNFm%Y|1<4=-F$82F;11Edp3i?%DzyV|Io+N8et+)Wvw?G*;~$6gH(`FeDN%!klEtmIul4td#mFm0HBcB zVl+FM{M$O-eqLF(W+PwT zqnUFeYal5iYk)|6x_${%|4&n9$-6Zh6(t*41Ak25b$LWH=LD*sLIeZ+%8BH}QetmH zfIx3JmcITd`zn~P{+4E=Z>g*yiOOlcZtQ(Gh-xae1AI3VYoKE+7zth}y+b5uUu;~7 z1bV}<^zfuIReWO62~jx^EZT~aMN6}BXBdHFi2YW#8@ku6*}hIFj*n&uEzM@{h+R^g z_bnCQO_Sj!c0#h4Pb79k5ln2^VMUzE0dk?4b68P@InlRNbc{u;a&n7T52W}b>J7&d z8oCG50kvb%3DK1>f&c>GsT`oVGYpSZMgg=m+ea`CIJEPx$dr3q=R9J=Wl&??2KorLxKg2Q;5R3#&#nQQ+!y`zj0!_07v%l*MNpt8;L4uga z4L5>7kpN;71hW*wYu>%PTYKxo67FNJz1#Zz+`HET1Ooq^ttNktBT>-%m$!-c^LCpA zizMYsg|CR001tlsnriDrsHiL9T>+7#Mlgc&e>wY#Uue*mm zm^|NC9>=y%I44)K4DDwFO~zHFl?0GhyJMB0BSj>sAsk1A80vp3GtvS$$rmC2j00000NkvXXu0mjf8?(Un literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/piratehat.png.import b/source/Items_Final/Item_Sprites/piratehat.png.import new file mode 100644 index 00000000..f82fe5e8 --- /dev/null +++ b/source/Items_Final/Item_Sprites/piratehat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bng36643tueog" +path="res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/piratehat.png" +dest_files=["res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.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/source/Items_Final/Item_Sprites/pocketwatch.png b/source/Items_Final/Item_Sprites/pocketwatch.png new file mode 100644 index 0000000000000000000000000000000000000000..2a62e81650b35629762e1c896fb951d62b94d458 GIT binary patch literal 681 zcmV;a0#^NrP)Px%V@X6oR9J=WR=;c8Kp1_l+d-hxsU8c4Qc{YtXc1jPjkZE4G?2yMsX|LB=pQit z2M$V?l1_mvH7%6RBE?I|;zgn^m_VT5!SNJglEH}UAU^dZpX58&rAyvq-+lMJ_x;ix zaD)Ghnu<}>_c;JOc|6CDpC;%x0MxA`B_C@G2t9*GQN48k&4(8o5h6v@_c?P+US-1^ zlQYNUN!(ttOX9Y4T?wIQtRycA5y_Ic%_#tF5vw8(J%fjyv9vFeMSVZBsSxT400YZ2$6NCOsGTY+$RURE}FJ zDhX_Gj9{lFCGYO;>$qACS?Z^gQI>l8Kb?&JsuWroxO?wDfP5ypyZh*U{kU$N<#&My zA`|ORB8ucxiamP+0_gQ45{r;UPHS;bO@USkfIrPwHUYZO8pAR%Mf|fdyu6rgJOh;i z+=J`dd3cD1+rjtXK~4xDpM9O^0fi~}G<=9Xq#~%XtnN@w3}ocvMH4{0%Dvic=-U>5 zbmt5JAie{Npm)P~(Zu^Px%sYygZR9J=Wmd#64Q5c7xaiR;M2@Oos!jbUOBs5X!Mr2?FT{MbWi|8+C8?Fl4 zx~N4+>sqvE*-A8sD1rzHMqDVw#0)i8YfSuh>_fBDVmjCRIrqa_ zt4}KRrT9i~SJ(42Hh0?IJ+5{GkZe1HR+?o?Te3lTW}rMX8mVpdwN)rID8#DkKPws8Q@}w;rj`DQ~t>&4F z9|6e7;L9}6UYrIXetm_3zB$IpiOZ?8JbZMgE=WTV^WJ!;$eybZttdn*3ILa0H8cL? zn{Dhs-yA#131VG2+xZCv&>Qa*H{0KvV$q61=2sGcoz-b}R;T%Nx6JtS786K42wwnB z<^Xr!opM~gRReu<`j-+IAdI;+3kyq4uJilKz{cmFeug=!p1E%T2_ZrJrrv0ty`nm9 zL!hrff&lE6)*SnHOKYxuPV)Q@RI2k7PDDw4-E}l`Q}sh0&a0jPzB5ob67@UOQS;@+ z-~h2yPAs%s;NJI)4k1A%Cs+0bB;~pVu~bgTatiR6Zc0=4YYzM#nKjsGl_zf-?Kf}`pWq1Gp002ovPDHLkV1lA)R(1dY literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/propellerhat.png.import b/source/Items_Final/Item_Sprites/propellerhat.png.import new file mode 100644 index 00000000..c08d1f21 --- /dev/null +++ b/source/Items_Final/Item_Sprites/propellerhat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dghjg34gr46gq" +path="res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/propellerhat.png" +dest_files=["res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.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/source/Items_Final/Item_Sprites/puzzlecube.png b/source/Items_Final/Item_Sprites/puzzlecube.png new file mode 100644 index 0000000000000000000000000000000000000000..29e0f53377fd273642911cf77698655b46426381 GIT binary patch literal 737 zcmV<70v`Q|P)Px%n@L1LR9J=WmQ7C+Q51%s0WD}#Cl$JA7u6KEqa+v?#uzaq`~Ve*ZVVWO4N*6& z6r(E=6I@n-gpC10ObBcZs8Kg1rlD%AA5buS2yIM(ifsdRQRdQVr&Bsx`zDjzd+x{k zOzt^%21+XFf0tx-;R&~r%8q?s2o$|vQ46w7ElP`MCj!H!VDe6K*j*{vR+SUCIz8Nf z)C0i7dtI8bXESd_`pcy?ynofmf-YPeCk#LfahyV;>pxpFfPoyJ3Gt+B;^JG;(WI@dv$y_62T`ac-_0z623Ong+_{Bf?zOO4!EYWQBPE z`_@n0xLTgc>N7cGK1snRDQrjAS)8n3@XZVJ0BRDB$QBXPE6q%EKpaaU^MU}Ii68*2 z_K<)WpYRHZ*g}}tLYT52FWHW+<8@2)DRNHo{r!_a8TXw7t@aR*zKGQO!It!6OZtUj zT~kFB+N~0;mu`s&~W29ruQa zr!OK)&V1GQ!%!%5y?KDlO?q*qAYxz`;n$FM&3;t$FOPx$u1Q2eR9J=Wma$6$Q5?s=mxmyd$gM7+)e;dRC=cB14`^s~agnxy{)gt;q6Qa7 zh1TF&N_Z7$gM(1%5V*x5g4A$&P480gz31s!6x?_F{eF-4{qVc@?)Ly+zUI`R6tg~W zx2$FDx3Y-Qu-(I;6k7^}5Fn6(sc2=#!qX@!F5GIOO;b#!1}%>)>>d!7tD1N^jn03YE00;o?n+#IFG?*IVc znq~8G=*5uhN$Ck7n~$Sb?s$T51t9wy&VrZ);%XQ%iRJoLn#jo4pVb#o^s9f+&omPN0000Px%?MXyIR9J=WmtROzVHn1L8zBv^hJOf&hzev75fj5T)<`HyL<%-yL`-Ty5e$}& zDf9=rSu%BH7opBdyx7GCg^3qI!a;0a?IHxxx`@yv=@>z#$k^A#I45yVchn-O2M&Da z{a(K3`JVUvKF)#v_}8IPlk9425o=?i7Y|jfu@-yO5cfX!12B>Z0#IAw0T9~}vY`N( z_|cOe09c;J0jREgOZz)F8Q#!+_%zx(X92`kMC29VYHSgw9ykCvH;_iM1UXSU1Axa> zOoBcfULOGALzlP@Oc-rqJRVggV$%}z45g{Ayob$a07e0D8x8|5DiP}nkayoRltxM}VCygd5N(^wCcL@=K=a8i+#Lqy>m5jzAeo6mX@5bRZ{qT| z0FosL7Y4HArZXfORscxU-%#=nHcgTa`LT|AvO99MQe(8`oR)mZalqBsBD$Mqly{qN zAM^DNtUwqrJC}hfpqDY+09ak6SrN1%B^NLk%D$ceK(W|bQc4+N03=Hgb11`D|6V1> z{IZuwN{e*$8fHLBE|7TE2l~PVUP~ z#^X_q8H6dY1V9X(LT(ByfvcEA!wMCHMF7fCB$U0RIzx-#)fFrtZxhOhq_o7mI%2C9 zb$ET4oy$a0TEc-gCEi}HC+5|m<{0KptTEce*v0FLy#RK7Mj4v|OWbx9D{;9u%+6(1 z0yeyeWOCW&NT7|1!6Kz3t6?4WkPi7(k;4Wh7>`Fac6~A9SymoC6Mt~ xl|l$1N-FE}y0EREib6!lPx$$w@>(R9J=Gl|5_1P!xvWTL?m+iWGzl)w>jNaIk`_>5%ql<(8z}dBvLzn)9 zu37BhA81qPAa2(dxezEK1tB=x4&jCvKbntgD1DbhE+OZ+=RM~H_>1Z_>msXMXW;{r zQcl;~BVQ&QhuL`$!Y+9%^>5!;<}h5%Vtq4}1%OwH z#xmzWKV9ju>_`nDB_a5tg>gGCMtUa_h!Oz1=mG$Yje-7pLMCrs92BbAEGyXuCZ+z( zgYlRxN-EG;=3r7PEXMo>@Sso?R*7vvb~Oi&n-YwT;h(1lkhc# literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/rake.png.import b/source/Items_Final/Item_Sprites/rake.png.import new file mode 100644 index 00000000..3ee25a38 --- /dev/null +++ b/source/Items_Final/Item_Sprites/rake.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv8o5xvrm3cm4" +path="res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/rake.png" +dest_files=["res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.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/source/Items_Final/Item_Sprites/rubberduck.png b/source/Items_Final/Item_Sprites/rubberduck.png new file mode 100644 index 0000000000000000000000000000000000000000..0e3039ae7020cf8d9217fdc7e0a07b85988d6027 GIT binary patch literal 613 zcmV-r0-F7aP)Px%A4x<(R9J=WmcMHgVHn3h@tUYK)R4%?{YLhUfLVjW4HUNV{{!gAQF%A*Z16*?ZpySJ@FV8b5 z+d~Ic~iNoR$p>korK~G*i`bR%rTlkI;pt=R850p5xZS ze5l^;>^RTgdxq zS2iNqA>Eo4n>Q*MU+zishi~weX22bwI1xrAL$_ve^Zpen`R3-gP;IP$J^KdWSglG6 zToJ=@kUaSIkl+JrB||)aEcg4k>lMWEMw+^5jwS#cGjfgSZxKfh3PV^o&D8Qn+KXjg zFe*7H{*po1mQ{!WDfvhOfPx%uSrBfR9J=WmcMHgVI0Pv6JwUd&?_7q5~!s#QcXhb!3`Y~L4=x6>=1BBwu1fx z#{Iff=pg7Kbn6sImmm`DB;_Dh{E^tCwH{hXF2I z8_>wq!!B-eP2A2;08i~<%^H~jvr3A>ywEw^`t@}r3S(rlKZs|YIoGk-Mqq}R4@Jmi z>jbL{!>8kQzTdG{Ww0iY&~6m~>%@Av1LanQk^Mo4y)KfRFm!_V6Fu-cj~ibmhfb&Z z)DhFpj`N#q8$ntN3_+9>g((I!0Kj3>f2!$TE9@9xB!Y6Q!hjQq2o-6K2RMPy_R_sO z)B6Ah>vRqbu(Cf0G@Sw1_R2h96o5`W?S|OvPyb#k3|{8}z%&yc0Vo8}k3;pTp!31& zJWgU2l#Z^!3`s$q6dwy<2BF31NoVfvV*O1Nv?Fc`y8<{3ghF^J?i#=dV(y054vc*X ztwi4ontL&zA(4NCY({eZqvZ*JLc~^bCqNhE+dIjxv2RHzha?1cf zHn;MQqww4TmJMMsmB9S8h|R4$({6Y0cKbD!a?7rw@C1;}NMtdUK%-Xuvu1>dh!MvS zo&Z=jghs83?0z=dQ!9SY58Wj>56B8Hp5L?US{Qf~|R6Op$CxBA<_b zkZ};6Zb73~MP07j?thTC831JcG5YfW$@XTr0?1}0!m=Sp-%E-)ux-^00000NkvXXu0mjfrwv@? literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/safetyscissors.png.import b/source/Items_Final/Item_Sprites/safetyscissors.png.import new file mode 100644 index 00000000..f6088e3e --- /dev/null +++ b/source/Items_Final/Item_Sprites/safetyscissors.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4xjbdxvn3i2l" +path="res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/safetyscissors.png" +dest_files=["res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.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/source/Items_Final/Item_Sprites/soap.png b/source/Items_Final/Item_Sprites/soap.png new file mode 100644 index 0000000000000000000000000000000000000000..aadff60a19515e8dcd07e7f59204e0593a8705ac GIT binary patch literal 880 zcmV-$1CRWPP)Px&DoI2^R9J=WSI=u2K^T48M6j3A1QH6eWWkdw0ZVe&ix9kdu_s#)ym&9lrVu@e zHz_8x1U97o##K!5v@2Y4VI zj+^~kYb!=W2JsW&7_^2r%;4a#f$_~01H;~{$v0E z$W|+;U#O;_Y_)=;V%Z!Aj65i64U`Hw=DrIFn0IbXwsbfSrL7_+2}q?A$W|-1@uJo+ zlaz&J*AW+Tz;K$B5;!WBp|n*rwH5$l&QzMMtzW2!h6MD6I;I2X-hfX8Smgc50JM*i z9~H|8{4`DHQgUE+Os_8kiwmIS`{|U;IbbAIe=X2{B24 zTziG2l)$F2fiK@DCb<~oadqf}7eqj_K)_OnZo&usF!B$RbBq+onk8HJKb4~>>>YTzc zNyxk)&z{F!!)jDLFl)PC!m;3pfUeZI<3km_q3)PW!~M6&nF6dLy4p+x6~ub~`H>Ss zT;CV2myxd2xKn@thI6-LHXXp1-0O+wc^gs@0UqXUMsGd}FLF26RxI?rB66NwUj}gh z(bRFHE$SRFURsOr{Wh%sz*yUR=j`|3t)nvPx%F-b&0R9J=WmO)6{P#ng;$%X;Z9R`6}T!(`VR-_V&Vy}8_MHtp9=wKHi?7Tx! zaiy>xJc;13dQf+e&3Y?4D2zy@=%gw-SXqR0P@JGL=s|cp)MR#B^8SzJAm|4n5Az7UwY@PXYj=t_0WQ@9bq>SwdHL zKb98f9lhi6B<7|kpqI+n$*$B6&?5)fO7aJSvjKQz2_vs3@pXUCy8raKugY(RPx&)= z_tA$>r5qQ+(Ga`;jE(Gnh9}c*K{!b-m7$I1pry{S_T?cGr-xhsZVwzyKEe?IZ8XQT zVq@b3TIwFxCj@Z%VjE3~4rqtxgmPlx08qy>wD}(3EVgNT-@EYbpRu#zg?j)z2z~I$ zpWxVL#W%A>2H-w|s}T81h^9nGCGg5j+t&0dKNW!tU_t<}K->@)Aiww13jQ0!&hILK z9fWPTs$5>RkO25is49S}aA#H>PM6~fWa}GYl~fhvox0l$pV+5rH-C`#}& zm#agZq$)6q63{@(r}cnQto#E!A2b+!K?}$nuSG(yq0tv~E!Y(4ODL-EFXQe4h!g~X z$Eh)Q0qhEjg8fh24MUF{VBuc{p`z)AR?=>W1Rx3_5>5s%At*kP@LOFA{RZOe*`o6% Rsc8TJ002ovPDHLkV1myqAAkS= literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/soda.png.import b/source/Items_Final/Item_Sprites/soda.png.import new file mode 100644 index 00000000..5da22444 --- /dev/null +++ b/source/Items_Final/Item_Sprites/soda.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgtydwnlm8cga" +path="res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/soda.png" +dest_files=["res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.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/source/Items_Final/Item_Sprites/spatula.png b/source/Items_Final/Item_Sprites/spatula.png new file mode 100644 index 0000000000000000000000000000000000000000..f675b6ab805d62e6fe93d54269c1062fd765186b GIT binary patch literal 555 zcmV+`0@VG9P)Px$nO22>J+oRcdE4qFr0IlTcOgXlv3RY1Ko+)IW9G$7K-c|*xsKR>NJpDi( zNJ6xtb9T3D?9^TX5cn=A_Cypp4!^p1mN=W!ho!Alt|);YNc#I9zS~6 zGgmBu+WQWH?^4=w4G2J|(P4RI6@X74-tcbsb_%UME`X08E{p7+O-th0v&VUyXL)HY1NAYOwY_3km;FOs+F<< zsaDFjew0M7p$19fD3iGuK)Cbq21FKf$k_`V+f!3>3udhEyH=K7Fp&qKTUn|Vm1BD< zthd$X%P?2NxzibNY)>scw@KpYuDSwRS$g<__E&^ txj78zhPVAjjU3?T$$rmxRMr0%z#lZ`6lR$8B8~t6002ovPDHLkV1g1K1aANU literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/spatula.png.import b/source/Items_Final/Item_Sprites/spatula.png.import new file mode 100644 index 00000000..c1e52018 --- /dev/null +++ b/source/Items_Final/Item_Sprites/spatula.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n4gexuvjvwru" +path="res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/spatula.png" +dest_files=["res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.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/source/Items_Final/Item_Sprites/spraypaint.png b/source/Items_Final/Item_Sprites/spraypaint.png new file mode 100644 index 0000000000000000000000000000000000000000..2395e8903426c690702709aa1ded3415de8bdcb1 GIT binary patch literal 527 zcmV+q0`UEbP)Px$$w@>(R9J=WmcL5^VHn51NvWWTU}_|4kSGVCgNcYsVMY|{mSg`-dqYEO5Y-gb zQb}`#IVgfl23`%KQipM%IJ^yYrsm!0t73!S?cV3thxeZ6?g1v6Xo!kN;v^c0ld%;h zgb04}f2Wb;qc7WepLBoNvG00cyQ z3Z)uJKVC>ePyu-SG2&wwoSqy>`h`|D06-Fg3P8AGAHzVWu>t_9{A<(RdS*ANk(S6c zP!kG;I@JmzCn|tKsfI+VF6);_)&DeTr>L9I;&$SJ`+erP**3erp@7Bh1poXp8UT)a zhiz$D)UGoufX!zyBa??3pc_ypKrfmP{D zVqvceFshKujR-){=As?|P&IzGo$EB#p2l%#KOP)Px%_(?=TR9J=WmN7^hQ5eU6mXbgr1}|0;lchq;AYu;-2QjpT&_ba$Ag%3C3U&~| zO`YuQQnZ^(2OXS55Tu1dL25w@2bCyd;k48xF(P^r0|m2Ohs&M0++Ct}D24nX5Werd z_y4``eR(fXS6%;D4b_q(!_%6o=3VoG;OE`+aMd-g1TZo@tpSMlZ*#*RptBaMyPqej}FY9}Joc#n)vl4R)YZ^d$Wy2h6tHA5g=Ky4K1rF6yW~S!384aSUdGm8K z8U$c>|A-c$k)iQ^s`bj;!kVUOn)dQ(+?Kmu8JK+Yo>!wU0EmQq42}2eiD!2m7gv5B z@jI^{k=s!i#=HAR)d5sB&)CEu>2-xn_5c#12~w%8?PGR+Yy%)AL}F45DIp@SrjZgN zEkYw6uST@B+11{601@h{vmMS}w(;67)r7 z127;!Z#1J3)9VUSyd5dtPVuY(k5?m;J2k7L$ckBk-X}V+G568{PB67%04Hj(reURQ zzk*Dz;5blTU7qGQ+1*8J}H;cgck<5ipr~2*@Ty_fZGvdvInk< zL_$6@FR!L;`Dzdr073A(n}mZ^Ar)Bx^a>oRr+|C2mdkb#>7A?_L_$6?xdM@pkMOO~ zIZUZfj7O?T@R&K{BC3>I4>|q}Pt+n!g2!>EnOuPrwP-%k#`u^Nb2KoF(<>Whto+e( zy$1{kL)pEY88<-6rN|1AaF9qiNOmu0jyH_mUP=o<`j-r|nD6}g#Zn-XJ+K^u)1@;x z`4)iWorjLQtqHIxFEs#~u%tI*Pbz6Kt28wpBLluPpG|qGnx{pMbX`(PE8hiR{s$Px$c}YY;R9J=WmA^{EP!z_0ijEE@*tsG_>?Tfmg*-x@z)7JExaj8U;wHGb)~SNN zLKllp0g+O0l1Ssw!ST5CCTY^t{>i;M_)V9?<^I0&otqo@mmyU>Uw#eVXthN|q|s`d zH&OL`5fOO|BM}iXnuO|H!LPe-=2FOZuHbu(<1quPx(u8)kLZ4Ua8tDY}G?}?xX&pZ2Z{pRcntnt0t5~!!Z04LrdSTN{3tQawHesLMERp(haK(0`R z>|Ix|fM`@GfR}E-cHHEKM@fC~G8qmfT|xz}I5omfa?7WIm6lGxc3i1AH2}We*8v#z zgTly5HIRi5`vFiq?@3ztD=31eXFrP;N?;m%mbouwpiDT-If6nsi@{-z1j_DwE(5yY zFvAFR#GcmF19Wz-RG5J7&Xpz}WTJDWTmrV^%Eorx2s~%Nc3e?UX$+6_!6ExQ9>KHk px-NL$K*oq}IQ;Mq=!X9ZeFHqN1sM@5UgrP+002ovPDHLkV1jgH%*6lz literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/toothbrush.png.import b/source/Items_Final/Item_Sprites/toothbrush.png.import new file mode 100644 index 00000000..c02978ff --- /dev/null +++ b/source/Items_Final/Item_Sprites/toothbrush.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jn1r45u8tnmk" +path="res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/toothbrush.png" +dest_files=["res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.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/source/Items_Final/Item_Sprites/toyraygun.png b/source/Items_Final/Item_Sprites/toyraygun.png new file mode 100644 index 0000000000000000000000000000000000000000..316bc9b590c56e5743a3fcda5bb963b2b3212b4e GIT binary patch literal 788 zcmV+v1MB>WP)Px%&PhZ;R9J=Wl|e|8VHn4MpL0%hqr-CbEfNXALmILccHCi%A&3%2ciFi*7duJU zQ0XWgqFWKpK*!j@F2R^aVnV|m#A2U17KzI?r+ppf`}uuyn{#59_JPsYxu3KfKuW_+;yq|%+*E4 zrZ)(L0e=TG)~q%HQ#o=^ze3m5EQz>_OiC_WFc41j>2v6xz_I%Uw7~0dt0P$}idn%ooYD&XnpA0jR7~q0yu$d<0Wph>pg%z* z&(vQd9u8Frmt(0P`hd~As&EtZ@M+&Oe#+#Y;hSP~@m1 zLWH$t4=A=fyWhsD&BWl1uYg3*pCJ0GUivDRk+?Jf^y3j7if%7T&+l4Q0H3F|uJ%KP z?||MD`mqQxBKCP&0qQ2NC_s-=bFSJ}hsc})TYtSx(F_uGKtiO)+c zaH2rDzoal>%wjv2HmpPx%)Ja4^R9J=WmOo5dK^(`wk2cjXN^?c}`k0zjki@`bNbCe#2a=aA&t2l;;9v(j zI=DIz-E~nDciBi7AtY94!la zvj1$#v=fS%lGMGniLHC>YC# zk)OaOOc{tkfMO-~24b=o6j z->bsd`c~HWzy<=a14nyZP)hmuyc$BaG8B9n)XCu$bVCC$&V~$xZw3eH19`P~z zO0A|F8ukyG99Raz6`+_&nQSG%c!kzyKU-T}!s*$KG=u}dD$auR%>hmhuegtHXsA|( zyd143e*d7!51QT&Fe0mhzNUZ1+j_)z;WYRu|w#F=Ey=wRvZ}LcIiX}r)M{U7<-PZGibE> zz7Y1U2m#}J`{eK{P~6K3`4}3lJ_sRLTU`>~*&(Wxq0lGzRlHX}SNi5_lTBjd_69Uw zr4zy`Jjo{S1(SG=*aCptOEY3CH8IbGbsQxtmyVxkzg{)c4^9)QN9MoQc+=Qp`|7VsAM@_GEKbf2T Y0c%H?_82T|^Z)<=07*qoM6N<$f?%V7q5uE@ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/trenchcoat.png.import b/source/Items_Final/Item_Sprites/trenchcoat.png.import new file mode 100644 index 00000000..82b59c2d --- /dev/null +++ b/source/Items_Final/Item_Sprites/trenchcoat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dna8nprqj1ifn" +path="res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/trenchcoat.png" +dest_files=["res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.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/source/Items_Final/Item_Sprites/trowel.png b/source/Items_Final/Item_Sprites/trowel.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5d4e03736cfec6bfdbd6b8c0ea817a99196e25 GIT binary patch literal 596 zcmV-a0;~OrP)Px%4oO5oR9J=Wl)q~eVI0Ok=MPkH2_44vs>diqIheDWXH^+=PNRSQ?5MqL9*XrA{h{=-Z)vk4wy(r1v9JpY85AzMuDb zp6?6iQfO`>BjzSDBJMetI=!4VhsFKrtEW#H@%qz_HZXu$b6A+;LjdTyj$HsCHi!$| zKDw?8fL$0Nt~j~^_!Sq#e-RX&eGL#W#O+&Ga9tN&*Q1`R2IvN17e*lBK6C^aB!m)R zP!K&!SakL^r+UP<#&4i?GqR=~x|CfV@I%n%MDgynXeiZ-6s(K&6A`SJqe8_)^^kV0mSMc1Kj|YYkP(nzqPU zdElg!QaigxEUzrU3q&s`LOYNgJGl%D!(e-(?71KzdN~nE1X4jDLIbR?u6Zs5fe6(B z-~Nl4XHUJ0NkRbLW~g*A41iSQpt|(a{kLd7wD|S?2LOpgg3S-_N#4A{U#?SlK22j! zEbi5|mi+%l)`5ys(%R$5S^1Xr?4(c;bb{bC4uHd2(}Pe&5h;Kl0zmd6XXTYHL=NDC iK!N~Jj$_ifBG54m9P_&vMCz;n0000Px%ElET{R9J=Wl`&`&Q5eU6id&!@NywmZ9U=`$6DQ-G8w6?0);(EVg&N4>9Eyct z$AXB>p17nsxTJ#!rB3a&dchP7G+<4n1YKOtLEm|{m)v(z6e0iRKJLBm`~BZ{@7{x% z{#UK8H|^E+rv1<0=Fz}5j|P9=gd5&`@%Fb(T%0D!dN=qbwsx#(`N0iXI~IwnQO88< z$2*!#ogPm+aj$CzHX)v@ z;C>2fLbM0wGbn>5?t@pJ?*U4ch8V2m z`>p0PD|XVzF&g%ni(Gbq`v*e+9&K5ShJDIKgIc}K=Gro)N`vFQ4)6CL`qme9U^MJI z&sx2IZd}33MT1hMLAhvfuiTN8mLEjrq5;6>+VZ(E1$Uc~N@T!mg>F-7ymNR!t=^`P zjfoA2_P~{E3ly?37E+4Xi_AxB)Z?F(3xg(>lPx%I7vi7R9J=WRliFcQ5^qVX$%Nb&}(sMHw?+kK~oeG*>mNxXAa*2G)1AIfj(h^Z$EywC4w7hlScxkFhQ}dwk3iY z)GT=?MBHvQzzZwMj59Oi6Jz-D`3TEP^IT!KM9Cf~bx%UK&q^{wXGRqV`F$MZ_mN7Z zF+MSNMbvdLD^RBP6meV*FoPEt@8HdPzY}w2RAHJXwsLFk9h1Jjishvi z1oZTtqg0VG9BPQLG5J__zHRbSC5Zbob1ZTIz}_K$mbewr!Ug0`M*#p?L>ybzX!w;X zK>)CPKk3;0{>Sd}SNg3R5=v^eS8t9buG=L!&(Z1!H1hC`Pk7bZCok-l@{{Leoc`pyYHCO3t`ZM5}}xQVZmvQ7gFzHdSzqP;^Cb5Gy4OxiYxh%)&C z#k9Eass3jWk<(u^o6C0#Smh=nvRgt#BuSEION5UR54;I?U%8^|*A3qlc>QvNo-I59 z08B^25&)zUX}o&(0>6INkV>SR%Hw-#V_KY4RmI(r!7J;W7qRmKY!R&W|8^X^=%N$& Y13@_gzp~jW0RR9107*qoM6N<$g19Cg#Q*>R literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/yoyo.png.import b/source/Items_Final/Item_Sprites/yoyo.png.import new file mode 100644 index 00000000..7faaddd3 --- /dev/null +++ b/source/Items_Final/Item_Sprites/yoyo.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqmbec8uh8jaq" +path="res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/yoyo.png" +dest_files=["res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.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/source/item/stats_and_item_handler.gd b/source/item/stats_and_item_handler.gd index e6f7ae02..69cae725 100644 --- a/source/item/stats_and_item_handler.gd +++ b/source/item/stats_and_item_handler.gd @@ -36,4 +36,3 @@ func handle_drop(item : Item, destroy : bool) : #(queue_free() is temporary, will change later when we know whats actually going to happen with the item) if destroy : item.queue_free() pass - diff --git a/source/scenes/IteE421.tmp b/source/scenes/IteE421.tmp new file mode 100644 index 00000000..9b5a0f2a --- /dev/null +++ b/source/scenes/IteE421.tmp @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] + +[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] +[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] +script = ExtResource("1_rryau") + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") + +[node name="StatusEffectManager" type="Node2D" parent="Player"] +script = ExtResource("4_t3y7h") diff --git a/source/scenes/IteEC4C.tmp b/source/scenes/IteEC4C.tmp new file mode 100644 index 00000000..9b5a0f2a --- /dev/null +++ b/source/scenes/IteEC4C.tmp @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] + +[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] +[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] +script = ExtResource("1_rryau") + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") + +[node name="StatusEffectManager" type="Node2D" parent="Player"] +script = ExtResource("4_t3y7h") diff --git a/source/scenes/ItemTestingScene.tscn b/source/scenes/ItemTestingScene.tscn index 54ce9bd5..b7ff2b9b 100644 --- a/source/scenes/ItemTestingScene.tscn +++ b/source/scenes/ItemTestingScene.tscn @@ -1,10 +1,7 @@ -[gd_scene load_steps=7 format=3 uid="uid://csmmvcufjnsl2"] +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] [ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Resource" uid="uid://6ukslotnk4y3" path="res://DmgBuffItem.tres" id="2_blmat"] -[ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://DamageWhenOnFire.tres" id="3_h0kxt"] -[ext_resource type="Resource" uid="uid://bfaht58ucl5e2" path="res://DamageBuffWhenLowHp.tres" id="4_s3syo"] -[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Status_Effect_Manager.gd" id="2_evv0p"] [sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] @@ -12,7 +9,6 @@ [node name="Player" type="Node2D" parent="."] script = ExtResource("1_rryau") -items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt"), ExtResource("4_s3syo")]) [node name="Area2D" type="Area2D" parent="Player"] @@ -20,4 +16,4 @@ items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_h0kxt"), ExtReso shape = SubResource("CircleShape2D_f54gc") [node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("4_t3y7h") +script = ExtResource("2_evv0p") diff --git a/source/scripts/Item_Advanced_Functions.gd b/source/scripts/Item_Advanced_Functions.gd index d40e0a71..66ec5a20 100644 --- a/source/scripts/Item_Advanced_Functions.gd +++ b/source/scripts/Item_Advanced_Functions.gd @@ -1,3 +1,6 @@ +#THIS IS THE TESTING VERIONS +#DELETE LATER + #class_name Item_Advanced_Functions extends Node#extend node to allow global script #THIS NEEDS TO BE SET AS A GLOBAL SCRIPT diff --git a/source/scripts/Item_Test.gd b/source/scripts/Item_Test.gd index c2c95086..3611965f 100644 --- a/source/scripts/Item_Test.gd +++ b/source/scripts/Item_Test.gd @@ -1,4 +1,6 @@ -class_name Item_Test +#LEGACY TESTING CODE +#CAN BE DELETED +#class_name Item_Test extends Resource #basic stats diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index 842c59f5..1ad005b5 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -6,11 +6,17 @@ extends Node var maxHealth : int = 12 var damage :int = 0 -var health :int = 12 -signal onAttack(player)#This signals will emit every attack -signal onGetHit(player)#This signal will emit every time the player gets hit + + +var health :int = 0 +#signal onAttack(player)#This signals will emit every attack +#signal onGetHit(player)#This signal will emit every time the player gets hit #more signals to tell items when to trigger their effects +var onAttackFunctions : Array[Callable] +var onFireFunctions : Array[Callable] +var onHitFunctions : Array[Callable] +var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter @onready var statusEffects : StatusEffectManager = $StatusEffectManager @@ -26,37 +32,50 @@ func _process(_delta: float) -> void: print("damage is " + str(damage)) func manage_test_input(): + pass #Press enter to get item (currently only the DmgBuffItem) - if Input.is_action_just_pressed("1"): - print("Gave Item " + str(items[0].resource_path)) - get_item(items[0]) - if Input.is_action_just_pressed("2"): - print("Gave Item " + str(items[1].resource_path)) - get_item(items[1]) - if Input.is_action_just_pressed("3"): - print("Gave Item " + str(items[2].resource_path)) - get_item(items[2]) - #press left mouse to "fire" - if Input.is_action_just_pressed("mouse_0"): - print("Just Fired") - onAttack.emit(self) - #change_health(1) - #press right mouse to check damage stat - if Input.is_action_just_pressed("mouse_1"): - testToggle = !testToggle - if Input.is_action_just_pressed("ui_accept"): - statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) + #if Input.is_action_just_pressed("1"): + #print("Gave Item " + str(items[0].resource_path)) + #get_item(items[0]) + #if Input.is_action_just_pressed("2"): + #print("Gave Item " + str(items[1].resource_path)) + #get_item(items[1]) + #if Input.is_action_just_pressed("3"): + #print("Gave Item " + str(items[2].resource_path)) + #get_item(items[2]) + ##press left mouse to "fire" + #if Input.is_action_just_pressed("mouse_0"): + #print("Just Fired") + ##onAttack.emit(self) + #call_functions(onAttackFunctions) + ##change_health(1) + ##press right mouse to check damage stat + #if Input.is_action_just_pressed("mouse_1"): + #testToggle = !testToggle + #if Input.is_action_just_pressed("ui_accept"): + #statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) -func get_item(item : Item_Test): +func get_item(item : Item): damage += item.damage health += item.health - if(item.onStartFunctions != ""): - Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME - if(item.onFireFunctions != ""): - onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) - if(item.onGetHitFunctions != ""): - print("new on get hit function: " + item.onGetHitFunctions) - onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) + + for i in range(item.FunctionTypes.size()): + match item.functionTypes[i]: + Item.FunctionTypes.OnStart: + Callable(Item_Functions, item.functionNames[i]).bind(self).call() + Item.FunctionTypes.OnFire: + onFireFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnHit: + onHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnGetHit: + onGetHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + #if(item.onStartFunctions != ""): + #Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME + #if(item.onFireFunctions != ""): + #onAttack.connect(Callable(ItemAdvancedFunctions,item.onFireFunctions)) + #if(item.onGetHitFunctions != ""): + #print("new on get hit function: " + item.onGetHitFunctions) + #onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) func hit_object(ps: Player_Test): pass @@ -64,8 +83,13 @@ func hit_object(ps: Player_Test): func change_health(deltaHealth : float): print("Player took " + str(-deltaHealth) + " damage") health += deltaHealth - onGetHit.emit(self); + #onGetHit.emit(self); + call_functions(onGetHitFunctions) if(health < 0): print("You died fool") + +func call_functions(arr : Array[Callable]): + for i in arr: + i.call() #func give_status_effect(effect : StatusEffect, duration : float): #statusEffects.giveStatus(effect, duration) diff --git a/source/scripts/StatusEffect.gd b/source/scripts/StatusEffect.gd deleted file mode 100644 index e69de29b..00000000 From 3c730299d6eb3e45874b3adb976be99df814e2c5 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 16:56:37 -0400 Subject: [PATCH 065/110] new item system bug fixes --- project.godot | 1 - .../Items_Final/Item_Resources/newItem.tres | 3 - source/item/Stats.gd | 38 ------------ source/item/base_player_stats.tres | 12 ---- source/item/item.gd | 8 --- source/item/item_resource.gd | 57 ----------------- source/item/item_resources/test.png | Bin 266 -> 0 bytes source/item/item_resources/test.png.import | 34 ---------- source/item/item_resources/test_item.tres | 19 ------ source/item/items/tophat.tres | 17 ----- source/item/stats_and_item_handler.gd | 38 ------------ source/scenes/itemSelector/item_button.gd | 16 ++--- source/scenes/itemSelector/item_selector.gd | 4 +- source/scenes/player.tscn | 22 +------ source/scripts/player.gd | 58 ++++++++++++++---- 15 files changed, 55 insertions(+), 272 deletions(-) delete mode 100644 source/Items_Final/Item_Resources/newItem.tres delete mode 100644 source/item/Stats.gd delete mode 100644 source/item/base_player_stats.tres delete mode 100644 source/item/item.gd delete mode 100644 source/item/item_resource.gd delete mode 100644 source/item/item_resources/test.png delete mode 100644 source/item/item_resources/test.png.import delete mode 100644 source/item/item_resources/test_item.tres delete mode 100644 source/item/items/tophat.tres delete mode 100644 source/item/stats_and_item_handler.gd diff --git a/project.godot b/project.godot index 342d15e2..34b65f5d 100644 --- a/project.godot +++ b/project.godot @@ -25,7 +25,6 @@ window/size/mode=2 window/stretch/mode="canvas_items" ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" - [input] Left1={ diff --git a/source/Items_Final/Item_Resources/newItem.tres b/source/Items_Final/Item_Resources/newItem.tres deleted file mode 100644 index efa9c2fc..00000000 --- a/source/Items_Final/Item_Resources/newItem.tres +++ /dev/null @@ -1,3 +0,0 @@ -[gd_resource type="Resource" format=3 uid="uid://dgttm3uig5c5p"] - -[resource] diff --git a/source/item/Stats.gd b/source/item/Stats.gd deleted file mode 100644 index e2411e6a..00000000 --- a/source/item/Stats.gd +++ /dev/null @@ -1,38 +0,0 @@ -class_name Stats - -var health : float = 0 -var topSpeed : float = 0 -var attackSpeed : float = 0 -var attackDamage : float = 0 -var dashCooldown : float = 0 -var abilityCooldown : float = 0 -var cost : int = 0 - -func add_stats(s : Stats) : - health += s.health - topSpeed += s.topSpeed - attackSpeed += s.attackSpeed - attackDamage += s.attackDamage - dashCooldown += s.dashCooldown - abilityCooldown += s.abilityCooldown - cost += s.cost - -func subtract_stats(s : Stats) : - health -= s.health - topSpeed -= s.topSpeed - attackSpeed -= s.attackSpeed - attackDamage -= s.attackDamage - dashCooldown -= s.dashCooldown - abilityCooldown -= s.abilityCooldown - cost -= s.cost - -func copy() -> Stats : - var s = Stats.new() - s.health = health - s.topSpeed = topSpeed - s.attackSpeed = attackSpeed - s.attackDamage = attackDamage - s.dashCooldown = dashCooldown - s.abilityCooldown = abilityCooldown - s.cost = cost - return s diff --git a/source/item/base_player_stats.tres b/source/item/base_player_stats.tres deleted file mode 100644 index a41d113a..00000000 --- a/source/item/base_player_stats.tres +++ /dev/null @@ -1,12 +0,0 @@ -[gd_resource type="Resource" script_class="Item_Res" load_steps=2 format=3 uid="uid://1qjff6n2w5m"] - -[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_3dkj6"] - -[resource] -script = ExtResource("1_3dkj6") -damage = 5.0 -dmg_mult = 1.0 -max_health = 100.0 -strength = 2.0 -top_speed = 0.0 -func_name = "" diff --git a/source/item/item.gd b/source/item/item.gd deleted file mode 100644 index 0b8101d7..00000000 --- a/source/item/item.gd +++ /dev/null @@ -1,8 +0,0 @@ -extends Node2D - -class_name Item - -@export var item_res : Item_Res - -func get_stats() -> Stats : - return item_res.get_stats() diff --git a/source/item/item_resource.gd b/source/item/item_resource.gd deleted file mode 100644 index 832187a8..00000000 --- a/source/item/item_resource.gd +++ /dev/null @@ -1,57 +0,0 @@ -extends Resource -class_name Item_Res - -enum Rarity { - COMMON, - UNCOMMON, - RARE, - LEGENDARY -} - -#Info -@export var sprite : Texture -@export var name : String -@export var description : String -@export var rarity : Rarity - -#Functions -@export var func_names : Array[String] - -#Stats -@export var health : float -@export var topSpeed : float -@export var attackSpeed : float -@export var attackDamage : float -@export var dashCooldown : float -@export var abilityCooldown : float -@export var cost : int - - -#note that when adding a stat, a few lines need to be added in stats.gd and in get_stats() in this class - -func get_stats() -> Stats : - var s = Stats.new() - s.health = health - s.topSpeed = topSpeed - s.attackSpeed = attackSpeed - s.attackDamage = attackDamage - s.dashCooldown = dashCooldown - s.abilityCooldown = abilityCooldown - s.cost = cost - return s - -#################################################################### -###### ITEM SPECIFIC FUNCTIONS ######################################## - -#EXAMPLE -""" -static func amulet_of_fear(player : Player) : - if (player.is_scared) : - player.stats.top_speed += 10 -""" - -#TESTING -static func do_nothing(player : Player) : - player.stats.top_speed += 10 - print("nothing") - pass diff --git a/source/item/item_resources/test.png b/source/item/item_resources/test.png deleted file mode 100644 index df3604e30b64834d02999a33a0e0c436a20304af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!;CxRP$B+p3w^MWZ8WcDjHeN3If4M}unRj-c zW`vXdqug_8TKe`JO%Jk#uCG7Io>JGc<@NKsJL0@_l@pa5GE~p7aP+z;H|+iF^Dxm_ zh4ZqgMvqDiOUJyH*$jp17dak0^(}q)jQizZ;X7dslPx%1jLxO4EZ78t)?lB~3Po(OM9{r<>DJS`3%${GCrO)`wQd2Kt$KMbC(elF{r G5}E*}EMR>A diff --git a/source/item/item_resources/test.png.import b/source/item/item_resources/test.png.import deleted file mode 100644 index 08cf15ee..00000000 --- a/source/item/item_resources/test.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bnvrku1kj1soe" -path="res://.godot/imported/test.png-e3f880dca7c409c89ee48538dfd20de0.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/item/item_resources/test.png" -dest_files=["res://.godot/imported/test.png-e3f880dca7c409c89ee48538dfd20de0.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/source/item/item_resources/test_item.tres b/source/item/item_resources/test_item.tres deleted file mode 100644 index 1eb57d1b..00000000 --- a/source/item/item_resources/test_item.tres +++ /dev/null @@ -1,19 +0,0 @@ -[gd_resource type="Resource" script_class="Item_Res" load_steps=3 format=3 uid="uid://rrec8arslhxj"] - -[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_80a0i"] -[ext_resource type="Texture2D" uid="uid://bnvrku1kj1soe" path="res://source/item/item_resources/test.png" id="2_w0275"] - -[resource] -script = ExtResource("1_80a0i") -sprite = ExtResource("2_w0275") -name = "test_item" -description = "" -rarity = 0 -func_names = Array[String]([]) -health = 0.0 -topSpeed = 0.0 -attackSpeed = 0.0 -attackDamage = 0.0 -dashCooldown = 0.0 -abilityCooldown = 0.0 -cost = 0 diff --git a/source/item/items/tophat.tres b/source/item/items/tophat.tres deleted file mode 100644 index b4af7813..00000000 --- a/source/item/items/tophat.tres +++ /dev/null @@ -1,17 +0,0 @@ -[gd_resource type="Resource" script_class="Item_Res" load_steps=2 format=3 uid="uid://ddfc2l76phcr5"] - -[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_rpq0y"] - -[resource] -script = ExtResource("1_rpq0y") -name = "" -description = "" -rarity = 0 -func_names = Array[String]([]) -health = 0.0 -topSpeed = 0.0 -attackSpeed = 0.0 -attackDamage = 0.0 -dashCooldown = 0.0 -abilityCooldown = 0.0 -cost = 0 diff --git a/source/item/stats_and_item_handler.gd b/source/item/stats_and_item_handler.gd deleted file mode 100644 index 69cae725..00000000 --- a/source/item/stats_and_item_handler.gd +++ /dev/null @@ -1,38 +0,0 @@ -extends Node2D - -@onready var player := get_parent() -@onready var unconditional_stats : Stats = player.base_stats.get_stats().copy() #player base stats + unconditional stats from items (updated when a new item is picked up) - - -func _process(delta): - handle_process_effects() - pass - -func handle_process_effects() : - #reset the stats to the non-conditional values - player.stats = unconditional_stats.copy() - #add any conditional values - for item in get_children() : - #calls the item specific functions, passes the player - for func_name in item.item_res.func_names : - if func_name == "" : continue - item.item_res.call(func_name, player) #this line calls a one of the static functions in the Item_Res class - pass - -func handle_pickup(item : Item) : - #add the item node as a child of this node, the children of this node is the list of items the player has - item.reparent(self) - #change the unconditional stats (eg if the item has damage +2, the player unconditional_stats damage will increase by 2) - unconditional_stats.add_stats(item.get_stats()) - #here we could also add something for a special on_pickup() for each item if need be - pass - -func handle_drop(item : Item, destroy : bool) : - #if destroy is false, the item should be reparented - #change the unconditional stats (eg if the item has damage +2, the player unconditional_stats damage will decrease by 2) - unconditional_stats.subtract_stats(item.get_stats()) - #here we could also add something for a special on_drop() for each item if need be - #remove the item from the list of player items - #(queue_free() is temporary, will change later when we know whats actually going to happen with the item) - if destroy : item.queue_free() - pass diff --git a/source/scenes/itemSelector/item_button.gd b/source/scenes/itemSelector/item_button.gd index f38ec729..d0fe6b83 100644 --- a/source/scenes/itemSelector/item_button.gd +++ b/source/scenes/itemSelector/item_button.gd @@ -1,7 +1,7 @@ extends Button class_name Item_Button -var resource: Item_Res +var item: Item var player: Player # Called when the node enters the scene tree for the first time. @@ -13,8 +13,8 @@ func _ready() -> void: func _process(delta: float) -> void: pass -func setItem(resource: Item_Res): - self.resource = resource +func setItem(resource: Item): + self.item = resource set_text(resource.name) set_button_icon(resource.sprite) @@ -22,18 +22,12 @@ func setPlayer(p: Player): player = p func _button_pressed(): - if (resource == null): - print("This button has no resource associated with it!") - return - var item: Item = Item.new() - item.item_res = resource - var baseScene = get_tree().current_scene if (baseScene.name == "DemoRoom"): if (player == null): print("I couldn't get the Player node!") return - player.pickup_item(item) - print("Gave " + player.name + " a " + item.item_res.name) + player.items.append(item) + print("Gave " + player.name + " a " + item.name) else: print("The current scene is not DemoRoom, so I can't give you items.") diff --git a/source/scenes/itemSelector/item_selector.gd b/source/scenes/itemSelector/item_selector.gd index b36dbb8f..0d07a94c 100644 --- a/source/scenes/itemSelector/item_selector.gd +++ b/source/scenes/itemSelector/item_selector.gd @@ -1,7 +1,7 @@ extends Control class_name Item_Selector -const resourcePath = "res://source/item/item_resources" +const resourcePath = "res://source/Items_Final/Item_Resources" var buttonScene: PackedScene = preload("res://source/scenes/itemSelector/item_button.tscn") var player: Player @onready var container: FlowContainer = $MarginContainer/VBoxContainer/ScrollContainer/FlowContainer @@ -36,7 +36,7 @@ func getPlayer(): func addButton(file_name: String): # We'll just assume it's a resource of the correct type for now - var resource: Item_Res = load(resourcePath + "/" + file_name) + var resource: Item = load(resourcePath + "/" + file_name) as Item var button: Item_Button = buttonScene.instantiate() container.add_child(button) button.setItem(resource) diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index 529e164b..ec67b5cf 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -1,22 +1,6 @@ -[gd_scene load_steps=7 format=3 uid="uid://rgfnpcsvv534"] +[gd_scene load_steps=4 format=3 uid="uid://rgfnpcsvv534"] [ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] -[ext_resource type="Script" path="res://source/item/stats_and_item_handler.gd" id="3_3yyiq"] -[ext_resource type="Script" path="res://source/item/item_resource.gd" id="5_qrgxk"] - -[sub_resource type="Resource" id="Resource_t33mb"] -script = ExtResource("5_qrgxk") -name = "" -description = "" -rarity = 0 -func_names = Array[String]([]) -health = 0.0 -topSpeed = 10.0 -attackSpeed = 0.0 -attackDamage = 0.0 -dashCooldown = 0.0 -abilityCooldown = 0.0 -cost = 0 [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] @@ -24,7 +8,6 @@ cost = 0 [node name="Player" type="CharacterBody2D"] script = ExtResource("1_ws1a7") -base_stats = SubResource("Resource_t33mb") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CapsuleShape2D_1d7hi") @@ -33,6 +16,3 @@ shape = SubResource("CapsuleShape2D_1d7hi") position = Vector2(1.07288e-06, 1.90735e-06) scale = Vector2(20, 15) mesh = SubResource("CapsuleMesh_tx0kn") - -[node name="StatsAndItemHandler" type="Node2D" parent="."] -script = ExtResource("3_3yyiq") diff --git a/source/scripts/player.gd b/source/scripts/player.gd index eec672d2..1a0abaff 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -8,6 +8,26 @@ var movement := Vector2.ZERO const TOP_SPEED_FACTOR := 15.0 const ACCELERATION := 15.0 +#this is just a test repleca of the player +@export var items: Array[Resource] + +var maxHealth : int = 12 +var damage : int = 0 +var topSpeed : int = 10 + + +var health :int = 0 +#signal onAttack(player)#This signals will emit every attack +#signal onGetHit(player)#This signal will emit every time the player gets hit +#more signals to tell items when to trigger their effects + +var onAttackFunctions : Array[Callable] +var onFireFunctions : Array[Callable] +var onHitFunctions : Array[Callable] +var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter + +#@onready var statusEffects : StatusEffectManager = $StatusEffectManager + func _ready() -> void: pass @@ -19,7 +39,7 @@ func handle_move() -> void: movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() if movement.length() : - Speed = move_toward(Speed, stats.topSpeed * TOP_SPEED_FACTOR, ACCELERATION) + Speed = move_toward(Speed, topSpeed * TOP_SPEED_FACTOR, ACCELERATION) if movement.x : velocity.x = movement.x * Speed @@ -33,16 +53,32 @@ func handle_move() -> void: move_and_slide() -#### item and stats handling (everything else is implemented in the stats_and_item_handler) -@onready var stats_and_item_handler : Node2D = $StatsAndItemHandler -@export var base_stats : Item_Res -var stats : Stats = Stats.new() +func get_item(item : Item): + damage += item.damage + health += item.health + + for i in range(item.FunctionTypes.size()): + match item.functionTypes[i]: + Item.FunctionTypes.OnStart: + Callable(Item_Functions, item.functionNames[i]).bind(self).call() + Item.FunctionTypes.OnFire: + onFireFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnHit: + onHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnGetHit: + onGetHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) -func pickup_item(item : Item) : - stats_and_item_handler.handle_pickup(item) +func hit_object(ps: Player_Test): pass -func drop_item(item : Item, destroy : bool) : - #if destroy is false, you should be reparenting the item - stats_and_item_handler.handle_drop(item, destroy) - pass +func change_health(deltaHealth : float): + print("Player took " + str(-deltaHealth) + " damage") + health += deltaHealth + #onGetHit.emit(self); + call_functions(onGetHitFunctions) + if(health < 0): + print("You died fool") + +func call_functions(arr : Array[Callable]): + for i in arr: + i.call() From 240ccc7e188c90ddcb985132a6e8c1618ededa94 Mon Sep 17 00:00:00 2001 From: Kuthan Kukrer Date: Thu, 7 Nov 2024 14:40:56 -0500 Subject: [PATCH 066/110] made player dodge mechanics --- project.godot | 6 +-- source/item/item.gd | 2 +- source/scenes/demCB7D.tmp | 22 ++++++++ source/scenes/demo_room.tscn | 5 +- source/scripts/Characters/Mage/Mage.gd | 54 +++---------------- .../Characters/Mage/Mage_Projectile.gd | 10 +++- source/scripts/player.gd | 49 ++++++----------- 7 files changed, 57 insertions(+), 91 deletions(-) create mode 100644 source/scenes/demCB7D.tmp diff --git a/project.godot b/project.godot index 24d7013c..1419945f 100644 --- a/project.godot +++ b/project.godot @@ -25,7 +25,6 @@ window/size/mode=2 window/stretch/mode="canvas_items" ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" - [input] Left1={ @@ -118,9 +117,10 @@ esc={ , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] } -Attack={ +Dash={ "deadzone": 0.5, -"events": [] +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] } [layer_names] diff --git a/source/item/item.gd b/source/item/item.gd index 0b8101d7..21c41db6 100644 --- a/source/item/item.gd +++ b/source/item/item.gd @@ -1,6 +1,6 @@ extends Node2D -class_name Item +#class_name Item @export var item_res : Item_Res diff --git a/source/scenes/demCB7D.tmp b/source/scenes/demCB7D.tmp new file mode 100644 index 00000000..25fd6ba5 --- /dev/null +++ b/source/scenes/demCB7D.tmp @@ -0,0 +1,22 @@ +[gd_scene load_steps=3 format=3 uid="uid://diprigu67ubnb"] + +[ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] +[ext_resource type="PackedScene" uid="uid://b5bt1g0wd5co0" path="res://source/scenes/mage.tscn" id="3_h5nu7"] + +[node name="DemoRoom" type="Node2D"] + +[node name="Camera2D" type="Camera2D" parent="."] + +[node name="ColorRect" type="ColorRect" parent="."] +offset_right = 40.0 +offset_bottom = 40.0 +color = Color(1, 0, 1, 1) + +[node name="quit" type="Node2D" parent="."] +script = ExtResource("2_c3313") + +[node name="Mage" parent="." instance=ExtResource("3_h5nu7")] +position = Vector2(-225, 107) + +[node name="Mage2" parent="." instance=ExtResource("3_h5nu7")] +position = Vector2(294, 110) diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 62fe5873..25fd6ba5 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=5 format=3 uid="uid://diprigu67ubnb"] +[gd_scene load_steps=3 format=3 uid="uid://diprigu67ubnb"] [ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] [ext_resource type="PackedScene" uid="uid://b5bt1g0wd5co0" path="res://source/scenes/mage.tscn" id="3_h5nu7"] @@ -7,9 +7,6 @@ [node name="Camera2D" type="Camera2D" parent="."] -[node name="ItemSelectorPortal" parent="." instance=ExtResource("4_nji7u")] -position = Vector2(86, -110) - [node name="ColorRect" type="ColorRect" parent="."] offset_right = 40.0 offset_bottom = 40.0 diff --git a/source/scripts/Characters/Mage/Mage.gd b/source/scripts/Characters/Mage/Mage.gd index 1db9ec5f..ad84813c 100644 --- a/source/scripts/Characters/Mage/Mage.gd +++ b/source/scripts/Characters/Mage/Mage.gd @@ -1,8 +1,10 @@ extends Player +class_name Mage + const SPEED = 300.0 var projectile_speed = 500.0 # Speed of the projectile -var attack_cooldown = 1.0 # Cooldown between attacks +var attack_cooldown = 2.0 # Cooldown between attacks var can_attack = true var life_time_projectile = 3.0 # how long projectile lasts until it despawns (seconds) var size_of_projectile = 10 # how big projectile is @@ -15,28 +17,6 @@ var move_vector = Vector2.ZERO # Add this at the class level func _ready() -> void: create_character() -func _process(delta) -> void: - handle_move() -func handle_move() -> void: - movement = Vector2(Input.get_axis("Left", "Right"), Input.get_axis("Up", "Down")).normalized() - - if movement.length(): - Speed = move_toward(Speed, 10 * TOP_SPEED_FACTOR, ACCELERATION) - shot_direction = movement - else: - Speed = move_toward(Speed, 0, DECELERATION) # Gradually decrease speed to zero - - if movement.x: - velocity.x = movement.x * Speed - else: - velocity.x = move_toward(velocity.x, 0, DECELERATION) # Gradually decrease horizontal velocity to zero - - if movement.y: - velocity.y = movement.y * Speed - else: - velocity.y = move_toward(velocity.y, 0, DECELERATION) # Gradually decrease vertical velocity to zero - - move_and_slide() # Ensure velocity is passed to move_and_slide func update_position() -> void: global_position = position # Ensure global_position is updated to the current position @@ -54,7 +34,9 @@ func attack(): func spawn_projectile(direction: Vector2): var projectile = MageProjectileScene.instantiate() projectile.initialize(direction.normalized(), projectile_speed, projectile_damage) - add_child(projectile) # Add to scene before setting properties + self.add_sibling(projectile) + projectile.parent = self + projectile.position = self.global_position # Debugging the position print("Spawning projectile at: ", global_position) @@ -75,27 +57,3 @@ func play_hit_animation(): func die(): #$AnimationPlayer.play("mage_die") # Implement these pass - -func shoot(): - if can_attack: - var projectile = MageProjectileScene.instantiate() - - # Set the projectile's position to the Mage's position - projectile.global_position = global_position - - # Calculate direction from Mage to mouse cursor - var direction = (get_global_mouse_position() - global_position).normalized() - - # Set projectile properties - projectile.direction = direction - projectile.speed = projectile_speed - projectile.life_time = life_time_projectile - projectile.size = size_of_projectile - projectile.damage = projectile_damage - - # Add the projectile to the scene - - # Start cooldown - can_attack = false - await get_tree().create_timer(attack_cooldown).timeout - can_attack = true diff --git a/source/scripts/Characters/Mage/Mage_Projectile.gd b/source/scripts/Characters/Mage/Mage_Projectile.gd index a70e5b02..8fea5709 100644 --- a/source/scripts/Characters/Mage/Mage_Projectile.gd +++ b/source/scripts/Characters/Mage/Mage_Projectile.gd @@ -1,15 +1,19 @@ extends Area2D # Change from Node2D to Area2D -var direction: Vector2 +var direction := Vector2.ZERO var speed: float var life_time: float = 3.0 # Default projectile lifetime (in seconds) var damage: int = 10 # Projectile damage +var parent: Player +var size #var sprite_texture = preload("add path to sprite here") preload sprite texture # Set up projectile with direction and speed func initialize(_direction: Vector2, _speed: float, _damage: int): - direction = _direction.normalized() + direction.x = _direction.x + direction.y = _direction.y speed = _speed damage = _damage # Set up collision shape + handle_move() func handle_move() -> void: # Set a timer to queue_free the projectile after its lifetime @@ -33,6 +37,7 @@ func _physics_process(delta: float) -> void: # Handle collision detection func body_shape_entered(body): + print("HIT DETECTED") print(body.instance_id()) print(get_parent().instance_id()) if body is Player and body.instance_id() != get_parent().instance_id(): # Ensure it doesn't hit the mage who shot it @@ -40,6 +45,7 @@ func body_shape_entered(body): queue_free() # Destroy projectile on hit func _on_area_entered(area): + print("HIT DETECTED") if area is Player and area.get_instance_id() != get_parent().get_instance_id(): # Ensure it doesn't hit the mage who shot it area.apply_damage(damage) queue_free() # Destroy projectile on hit diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 3b8679c0..4d6aab07 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -8,47 +8,23 @@ var movement := Vector2.ZERO var TOP_SPEED_FACTOR := 15.0 var ACCELERATION := 15.0 var DECELERATION := 15.0 -var dash_timer := Timer.new() -var dash_cooldown := Timer.new() var dash: bool func _ready() -> void: pass -func _process(delta) -> void: - var movement2 = Vector2.ZERO - if Input.is_action_pressed('Left'): - movement2.x -= 1 - print("Moving left") - if Input.is_action_pressed('Right'): - movement2.x += 1 - print("Moving right") - if Input.is_action_pressed('Up'): - movement2.y -= 1 - print("Moving up") - if Input.is_action_pressed('Down'): - movement2.y += 1 - print("Moving down") - if Input.is_action_just_pressed('Dash') and dash_cooldown.time_left == 0: - #dash time - Speed = 500 - dash_timer.wait_time = 0.5 - dash_timer.start() - dash_cooldown.wait_time = 1 - dash_cooldown.start() - print("Dashing") - movement = movement2.normalized() - print("Movement vector:", movement2) - # Apply movement logic here +func _process(delta: float) -> void: handle_move() func handle_move() -> void: - var player_num = str(get_meta("player_num")) - movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() - - if movement.length(): - Speed = move_toward(Speed, stats.topSpeed * TOP_SPEED_FACTOR, ACCELERATION) - + #var player_num = str(get_meta("player_num")) + movement = Vector2(Input.get_axis("Left1", "Right1"), Input.get_axis("Up1", "Down1")).normalized() + TOP_SPEED_FACTOR = 15 + ACCELERATION = 15 + DECELERATION = 15 + if not dash and Input.is_action_just_pressed("Dash"): + print("ENTERING DASH") + dashing() if movement.length(): # stats.topSpeed = 10 Speed = move_toward(Speed, 10 * TOP_SPEED_FACTOR, ACCELERATION) else: @@ -112,3 +88,10 @@ func attack(): #add this in child Classes print("Player Attacked!") pass +func dashing(): + # dash values, please + dash = true + Speed = 750 + await get_tree().create_timer(2).timeout + dash = false + #Speed = move_toward(Speed, 0, DECELERATION) From 23b9b44273d325edb74baae50a6042db73d7a630 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:15:02 -0400 Subject: [PATCH 067/110] Item Selector bugfixes Revert "Update project.godot" This reverts commit 44cf3e069abb3755794d0568a02006c8055a86dc. Update project.godot Revert "Update project.godot" This reverts commit 249acdb5daec56014a60a349379df2c86d87a06b. Revert "Merge pull request #13 from UVASGD/develop" This reverts commit ced76dc57175cef621f2bd3fd44163f1bcaea691, reversing changes made to 04cc65e34777f81d94956539e28f3685f1bf8b74. Reapply "Merge pull request #13 from UVASGD/develop" This reverts commit 1231d6e4b2c8b74586f72f51912d1f87c507c849. Revert "Reapply "Merge pull request #13 from UVASGD/develop"" This reverts commit 1a544ee9e68538386b5e3daf6f5409b6d036a65b. Reapply "Reapply "Merge pull request #13 from UVASGD/develop"" This reverts commit cb6533c880b9006fb5610d0ab053fbb9efff6490. new item system bug fixes --- project.godot | 1 - .../Items_Final/Item_Resources/newItem.tres | 3 - source/item/Stats.gd | 38 ------------ source/item/base_player_stats.tres | 12 ---- source/item/item.gd | 8 --- source/item/item_resource.gd | 57 ----------------- source/item/item_resources/test.png | Bin 266 -> 0 bytes source/item/item_resources/test.png.import | 34 ---------- source/item/item_resources/test_item.tres | 19 ------ source/item/items/tophat.tres | 17 ----- source/item/stats_and_item_handler.gd | 38 ------------ source/scenes/itemSelector/item_button.gd | 16 ++--- source/scenes/itemSelector/item_selector.gd | 4 +- source/scenes/player.tscn | 22 +------ source/scripts/player.gd | 58 ++++++++++++++---- 15 files changed, 55 insertions(+), 272 deletions(-) delete mode 100644 source/Items_Final/Item_Resources/newItem.tres delete mode 100644 source/item/Stats.gd delete mode 100644 source/item/base_player_stats.tres delete mode 100644 source/item/item.gd delete mode 100644 source/item/item_resource.gd delete mode 100644 source/item/item_resources/test.png delete mode 100644 source/item/item_resources/test.png.import delete mode 100644 source/item/item_resources/test_item.tres delete mode 100644 source/item/items/tophat.tres delete mode 100644 source/item/stats_and_item_handler.gd diff --git a/project.godot b/project.godot index 342d15e2..34b65f5d 100644 --- a/project.godot +++ b/project.godot @@ -25,7 +25,6 @@ window/size/mode=2 window/stretch/mode="canvas_items" ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" - [input] Left1={ diff --git a/source/Items_Final/Item_Resources/newItem.tres b/source/Items_Final/Item_Resources/newItem.tres deleted file mode 100644 index efa9c2fc..00000000 --- a/source/Items_Final/Item_Resources/newItem.tres +++ /dev/null @@ -1,3 +0,0 @@ -[gd_resource type="Resource" format=3 uid="uid://dgttm3uig5c5p"] - -[resource] diff --git a/source/item/Stats.gd b/source/item/Stats.gd deleted file mode 100644 index e2411e6a..00000000 --- a/source/item/Stats.gd +++ /dev/null @@ -1,38 +0,0 @@ -class_name Stats - -var health : float = 0 -var topSpeed : float = 0 -var attackSpeed : float = 0 -var attackDamage : float = 0 -var dashCooldown : float = 0 -var abilityCooldown : float = 0 -var cost : int = 0 - -func add_stats(s : Stats) : - health += s.health - topSpeed += s.topSpeed - attackSpeed += s.attackSpeed - attackDamage += s.attackDamage - dashCooldown += s.dashCooldown - abilityCooldown += s.abilityCooldown - cost += s.cost - -func subtract_stats(s : Stats) : - health -= s.health - topSpeed -= s.topSpeed - attackSpeed -= s.attackSpeed - attackDamage -= s.attackDamage - dashCooldown -= s.dashCooldown - abilityCooldown -= s.abilityCooldown - cost -= s.cost - -func copy() -> Stats : - var s = Stats.new() - s.health = health - s.topSpeed = topSpeed - s.attackSpeed = attackSpeed - s.attackDamage = attackDamage - s.dashCooldown = dashCooldown - s.abilityCooldown = abilityCooldown - s.cost = cost - return s diff --git a/source/item/base_player_stats.tres b/source/item/base_player_stats.tres deleted file mode 100644 index a41d113a..00000000 --- a/source/item/base_player_stats.tres +++ /dev/null @@ -1,12 +0,0 @@ -[gd_resource type="Resource" script_class="Item_Res" load_steps=2 format=3 uid="uid://1qjff6n2w5m"] - -[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_3dkj6"] - -[resource] -script = ExtResource("1_3dkj6") -damage = 5.0 -dmg_mult = 1.0 -max_health = 100.0 -strength = 2.0 -top_speed = 0.0 -func_name = "" diff --git a/source/item/item.gd b/source/item/item.gd deleted file mode 100644 index 0b8101d7..00000000 --- a/source/item/item.gd +++ /dev/null @@ -1,8 +0,0 @@ -extends Node2D - -class_name Item - -@export var item_res : Item_Res - -func get_stats() -> Stats : - return item_res.get_stats() diff --git a/source/item/item_resource.gd b/source/item/item_resource.gd deleted file mode 100644 index 832187a8..00000000 --- a/source/item/item_resource.gd +++ /dev/null @@ -1,57 +0,0 @@ -extends Resource -class_name Item_Res - -enum Rarity { - COMMON, - UNCOMMON, - RARE, - LEGENDARY -} - -#Info -@export var sprite : Texture -@export var name : String -@export var description : String -@export var rarity : Rarity - -#Functions -@export var func_names : Array[String] - -#Stats -@export var health : float -@export var topSpeed : float -@export var attackSpeed : float -@export var attackDamage : float -@export var dashCooldown : float -@export var abilityCooldown : float -@export var cost : int - - -#note that when adding a stat, a few lines need to be added in stats.gd and in get_stats() in this class - -func get_stats() -> Stats : - var s = Stats.new() - s.health = health - s.topSpeed = topSpeed - s.attackSpeed = attackSpeed - s.attackDamage = attackDamage - s.dashCooldown = dashCooldown - s.abilityCooldown = abilityCooldown - s.cost = cost - return s - -#################################################################### -###### ITEM SPECIFIC FUNCTIONS ######################################## - -#EXAMPLE -""" -static func amulet_of_fear(player : Player) : - if (player.is_scared) : - player.stats.top_speed += 10 -""" - -#TESTING -static func do_nothing(player : Player) : - player.stats.top_speed += 10 - print("nothing") - pass diff --git a/source/item/item_resources/test.png b/source/item/item_resources/test.png deleted file mode 100644 index df3604e30b64834d02999a33a0e0c436a20304af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!;CxRP$B+p3w^MWZ8WcDjHeN3If4M}unRj-c zW`vXdqug_8TKe`JO%Jk#uCG7Io>JGc<@NKsJL0@_l@pa5GE~p7aP+z;H|+iF^Dxm_ zh4ZqgMvqDiOUJyH*$jp17dak0^(}q)jQizZ;X7dslPx%1jLxO4EZ78t)?lB~3Po(OM9{r<>DJS`3%${GCrO)`wQd2Kt$KMbC(elF{r G5}E*}EMR>A diff --git a/source/item/item_resources/test.png.import b/source/item/item_resources/test.png.import deleted file mode 100644 index 08cf15ee..00000000 --- a/source/item/item_resources/test.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bnvrku1kj1soe" -path="res://.godot/imported/test.png-e3f880dca7c409c89ee48538dfd20de0.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/item/item_resources/test.png" -dest_files=["res://.godot/imported/test.png-e3f880dca7c409c89ee48538dfd20de0.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/source/item/item_resources/test_item.tres b/source/item/item_resources/test_item.tres deleted file mode 100644 index 1eb57d1b..00000000 --- a/source/item/item_resources/test_item.tres +++ /dev/null @@ -1,19 +0,0 @@ -[gd_resource type="Resource" script_class="Item_Res" load_steps=3 format=3 uid="uid://rrec8arslhxj"] - -[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_80a0i"] -[ext_resource type="Texture2D" uid="uid://bnvrku1kj1soe" path="res://source/item/item_resources/test.png" id="2_w0275"] - -[resource] -script = ExtResource("1_80a0i") -sprite = ExtResource("2_w0275") -name = "test_item" -description = "" -rarity = 0 -func_names = Array[String]([]) -health = 0.0 -topSpeed = 0.0 -attackSpeed = 0.0 -attackDamage = 0.0 -dashCooldown = 0.0 -abilityCooldown = 0.0 -cost = 0 diff --git a/source/item/items/tophat.tres b/source/item/items/tophat.tres deleted file mode 100644 index b4af7813..00000000 --- a/source/item/items/tophat.tres +++ /dev/null @@ -1,17 +0,0 @@ -[gd_resource type="Resource" script_class="Item_Res" load_steps=2 format=3 uid="uid://ddfc2l76phcr5"] - -[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_rpq0y"] - -[resource] -script = ExtResource("1_rpq0y") -name = "" -description = "" -rarity = 0 -func_names = Array[String]([]) -health = 0.0 -topSpeed = 0.0 -attackSpeed = 0.0 -attackDamage = 0.0 -dashCooldown = 0.0 -abilityCooldown = 0.0 -cost = 0 diff --git a/source/item/stats_and_item_handler.gd b/source/item/stats_and_item_handler.gd deleted file mode 100644 index 69cae725..00000000 --- a/source/item/stats_and_item_handler.gd +++ /dev/null @@ -1,38 +0,0 @@ -extends Node2D - -@onready var player := get_parent() -@onready var unconditional_stats : Stats = player.base_stats.get_stats().copy() #player base stats + unconditional stats from items (updated when a new item is picked up) - - -func _process(delta): - handle_process_effects() - pass - -func handle_process_effects() : - #reset the stats to the non-conditional values - player.stats = unconditional_stats.copy() - #add any conditional values - for item in get_children() : - #calls the item specific functions, passes the player - for func_name in item.item_res.func_names : - if func_name == "" : continue - item.item_res.call(func_name, player) #this line calls a one of the static functions in the Item_Res class - pass - -func handle_pickup(item : Item) : - #add the item node as a child of this node, the children of this node is the list of items the player has - item.reparent(self) - #change the unconditional stats (eg if the item has damage +2, the player unconditional_stats damage will increase by 2) - unconditional_stats.add_stats(item.get_stats()) - #here we could also add something for a special on_pickup() for each item if need be - pass - -func handle_drop(item : Item, destroy : bool) : - #if destroy is false, the item should be reparented - #change the unconditional stats (eg if the item has damage +2, the player unconditional_stats damage will decrease by 2) - unconditional_stats.subtract_stats(item.get_stats()) - #here we could also add something for a special on_drop() for each item if need be - #remove the item from the list of player items - #(queue_free() is temporary, will change later when we know whats actually going to happen with the item) - if destroy : item.queue_free() - pass diff --git a/source/scenes/itemSelector/item_button.gd b/source/scenes/itemSelector/item_button.gd index f38ec729..d0fe6b83 100644 --- a/source/scenes/itemSelector/item_button.gd +++ b/source/scenes/itemSelector/item_button.gd @@ -1,7 +1,7 @@ extends Button class_name Item_Button -var resource: Item_Res +var item: Item var player: Player # Called when the node enters the scene tree for the first time. @@ -13,8 +13,8 @@ func _ready() -> void: func _process(delta: float) -> void: pass -func setItem(resource: Item_Res): - self.resource = resource +func setItem(resource: Item): + self.item = resource set_text(resource.name) set_button_icon(resource.sprite) @@ -22,18 +22,12 @@ func setPlayer(p: Player): player = p func _button_pressed(): - if (resource == null): - print("This button has no resource associated with it!") - return - var item: Item = Item.new() - item.item_res = resource - var baseScene = get_tree().current_scene if (baseScene.name == "DemoRoom"): if (player == null): print("I couldn't get the Player node!") return - player.pickup_item(item) - print("Gave " + player.name + " a " + item.item_res.name) + player.items.append(item) + print("Gave " + player.name + " a " + item.name) else: print("The current scene is not DemoRoom, so I can't give you items.") diff --git a/source/scenes/itemSelector/item_selector.gd b/source/scenes/itemSelector/item_selector.gd index b36dbb8f..0d07a94c 100644 --- a/source/scenes/itemSelector/item_selector.gd +++ b/source/scenes/itemSelector/item_selector.gd @@ -1,7 +1,7 @@ extends Control class_name Item_Selector -const resourcePath = "res://source/item/item_resources" +const resourcePath = "res://source/Items_Final/Item_Resources" var buttonScene: PackedScene = preload("res://source/scenes/itemSelector/item_button.tscn") var player: Player @onready var container: FlowContainer = $MarginContainer/VBoxContainer/ScrollContainer/FlowContainer @@ -36,7 +36,7 @@ func getPlayer(): func addButton(file_name: String): # We'll just assume it's a resource of the correct type for now - var resource: Item_Res = load(resourcePath + "/" + file_name) + var resource: Item = load(resourcePath + "/" + file_name) as Item var button: Item_Button = buttonScene.instantiate() container.add_child(button) button.setItem(resource) diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index 529e164b..ec67b5cf 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -1,22 +1,6 @@ -[gd_scene load_steps=7 format=3 uid="uid://rgfnpcsvv534"] +[gd_scene load_steps=4 format=3 uid="uid://rgfnpcsvv534"] [ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] -[ext_resource type="Script" path="res://source/item/stats_and_item_handler.gd" id="3_3yyiq"] -[ext_resource type="Script" path="res://source/item/item_resource.gd" id="5_qrgxk"] - -[sub_resource type="Resource" id="Resource_t33mb"] -script = ExtResource("5_qrgxk") -name = "" -description = "" -rarity = 0 -func_names = Array[String]([]) -health = 0.0 -topSpeed = 10.0 -attackSpeed = 0.0 -attackDamage = 0.0 -dashCooldown = 0.0 -abilityCooldown = 0.0 -cost = 0 [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] @@ -24,7 +8,6 @@ cost = 0 [node name="Player" type="CharacterBody2D"] script = ExtResource("1_ws1a7") -base_stats = SubResource("Resource_t33mb") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CapsuleShape2D_1d7hi") @@ -33,6 +16,3 @@ shape = SubResource("CapsuleShape2D_1d7hi") position = Vector2(1.07288e-06, 1.90735e-06) scale = Vector2(20, 15) mesh = SubResource("CapsuleMesh_tx0kn") - -[node name="StatsAndItemHandler" type="Node2D" parent="."] -script = ExtResource("3_3yyiq") diff --git a/source/scripts/player.gd b/source/scripts/player.gd index eec672d2..1a0abaff 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -8,6 +8,26 @@ var movement := Vector2.ZERO const TOP_SPEED_FACTOR := 15.0 const ACCELERATION := 15.0 +#this is just a test repleca of the player +@export var items: Array[Resource] + +var maxHealth : int = 12 +var damage : int = 0 +var topSpeed : int = 10 + + +var health :int = 0 +#signal onAttack(player)#This signals will emit every attack +#signal onGetHit(player)#This signal will emit every time the player gets hit +#more signals to tell items when to trigger their effects + +var onAttackFunctions : Array[Callable] +var onFireFunctions : Array[Callable] +var onHitFunctions : Array[Callable] +var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter + +#@onready var statusEffects : StatusEffectManager = $StatusEffectManager + func _ready() -> void: pass @@ -19,7 +39,7 @@ func handle_move() -> void: movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() if movement.length() : - Speed = move_toward(Speed, stats.topSpeed * TOP_SPEED_FACTOR, ACCELERATION) + Speed = move_toward(Speed, topSpeed * TOP_SPEED_FACTOR, ACCELERATION) if movement.x : velocity.x = movement.x * Speed @@ -33,16 +53,32 @@ func handle_move() -> void: move_and_slide() -#### item and stats handling (everything else is implemented in the stats_and_item_handler) -@onready var stats_and_item_handler : Node2D = $StatsAndItemHandler -@export var base_stats : Item_Res -var stats : Stats = Stats.new() +func get_item(item : Item): + damage += item.damage + health += item.health + + for i in range(item.FunctionTypes.size()): + match item.functionTypes[i]: + Item.FunctionTypes.OnStart: + Callable(Item_Functions, item.functionNames[i]).bind(self).call() + Item.FunctionTypes.OnFire: + onFireFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnHit: + onHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnGetHit: + onGetHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) -func pickup_item(item : Item) : - stats_and_item_handler.handle_pickup(item) +func hit_object(ps: Player_Test): pass -func drop_item(item : Item, destroy : bool) : - #if destroy is false, you should be reparenting the item - stats_and_item_handler.handle_drop(item, destroy) - pass +func change_health(deltaHealth : float): + print("Player took " + str(-deltaHealth) + " damage") + health += deltaHealth + #onGetHit.emit(self); + call_functions(onGetHitFunctions) + if(health < 0): + print("You died fool") + +func call_functions(arr : Array[Callable]): + for i in arr: + i.call() From dcc3801bdbef0eef0a32a9c11db358ef38479890 Mon Sep 17 00:00:00 2001 From: kedrickfudala Date: Thu, 7 Nov 2024 20:07:58 -0500 Subject: [PATCH 068/110] scene manager update, new font, working on tilemap --- assets/fonts-shaders/PixelifySans-Regular.ttf | Bin 0 -> 51316 bytes .../PixelifySans-Regular.ttf.import | 34 +++++++++++++++ assets/tiles/BaseRoomTiles.png | Bin 0 -> 1220 bytes assets/tiles/BaseRoomTiles.png.import | 34 +++++++++++++++ project.godot | 14 +++++- .../scenes/cut_scenes/pre_game_cut_scene.gd | 4 ++ .../scenes/cut_scenes/pre_game_cut_scene.tscn | 37 ++++++++-------- source/scenes/demo_room.tscn | 2 - .../scenes/game_container/game_container.gd | 24 ++++------- .../scenes/game_container/game_container.tscn | 2 +- source/scenes/menus/character_select.gd | 4 ++ source/scenes/menus/character_select.tscn | 21 +++++---- source/scenes/menus/credits.tscn | 18 ++++---- source/scenes/menus/instructions.tscn | 18 ++++---- source/scenes/menus/main_menu.tscn | 40 +++++++++--------- source/scenes/stages/stage1.tscn | 1 - source/stages/stage_template.tscn | 30 ++++++++++++- 17 files changed, 198 insertions(+), 85 deletions(-) create mode 100644 assets/fonts-shaders/PixelifySans-Regular.ttf create mode 100644 assets/fonts-shaders/PixelifySans-Regular.ttf.import create mode 100644 assets/tiles/BaseRoomTiles.png create mode 100644 assets/tiles/BaseRoomTiles.png.import create mode 100644 source/scenes/cut_scenes/pre_game_cut_scene.gd create mode 100644 source/scenes/menus/character_select.gd diff --git a/assets/fonts-shaders/PixelifySans-Regular.ttf b/assets/fonts-shaders/PixelifySans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..37deb9a355561f8270f9d3ffde467dc7fac3ef6b GIT binary patch literal 51316 zcmcJ&31C!3@;~1FW-_@ZkO1L6a*%+KOm31uL~gu*Ku}~RpdmAXD3=Kl@VhGDg^I2h zUdy^(iwaRuA-afy$gYZttE+2VR|Py)T~UCC+pb*AT{*4*V{|@4*We zEnD&W?#po7dn>Acxo}B!)i%%Ve*nH;qXTOeRjpWROcU3le18;5SzNU!bl<=Ke4Y^A zBWV9GOPACyYy4>A145)CbuC(27h1Z&v+hci_o96C)3Wu-E$-{_Q^?j<(G^!=j1lD` zT9kl3L@E29i%JRMx+DA<+TPsS9DdEcxJ?;h6mzK<&hNqJ{=!&3f59>aW(XGm8d6e! z4bTYx=mFBn&n*AVxn0YS3YQD;g*Y&%E|;%E&L7a)+#2Iv?7AJlJ;I<|{Bs*6fD%P; z3{XIn)@R6diTBVN8EpM|Ji*gDmE%PDm5xQ zsx)e1)byx1QEQ@Zh`KB4)u_)sQJ&$RX`X;*zNg-Er{|BJ$34$_UiQ50`98W^bV2kf z(Pu=@ie41GGWyEso1%Xo{c!ZQ=;xzfi+(rylNeXbu$U1s<6@@9_+ze$xj*Kym}g>M zjQLy4(O4Oq5ZfnqWbCBa8L@L?&yQ`0T^)OU?47ZHjNKo5C@wZ`NL)eODRF1S&5Emz zTNSr1?(w+y<67h6<9o%Y$LGY4ik}=mBYtlD`SDl8KODa;{`vUV;@^$`)|>22^%i=^ zde8J$dl!3Gdav;Q)_a%tA@7sk*S#NmzfXut$V|vjI3?kXgtHT>5*8+0k#KK9Q^M|q z*Am`M_$1+Qmo8m~cPZ{NzRR>Ofi5*&>bhLo<^C>@b$O=Cf4atX&Fng%tG{ba*SfBk zcHPkRp{`rI?&|t#*XFLr6MH6(N}QZnk$7%mL*nYh>l5!x{A1#l#2tw*CBBuoKk-mf zOj1TtUed`)rzM@0v^wdYq{gJDllCONo^&YbcsF;q#BL?sg59p~wz=D1x_#HZU-yyS z=X77y{ekXVyYK1#_wI*#bnh{y$5lNVd%V))NODecW%7l|cO-8~el7XmJ>5N1d!E|! z!k)kHxvl44dw$nzaIcZQX7&2NUK@Hn-s_!SM|=0{J+}Ak-u1n2>ityjfA((alhS8m zpV~ev`~1Go_C9a*Io3D5@BF^k^nI}J>wUlKH=tjBzjOL6?sr|kyZb%U@7;di^iS$P zs{g$HH}wBw|6Tpx>)$#cc|iVvvj;Q`xP8E%2D~%i`+@xi`UXxK7#O&G;D&*_27WOp zVNl+nv4g4yT{-BUK`#tyPKioMPdPoMHsy+xdsDWiypi%sg0@4X|A-v zX{V%BrCpKsVA@M*U#E9T_obhnzBv8H^rrMz(*HA93{D+9da!@+<%91T{Nmt`Gh{~J zjM9vG88>7+lCd}A)6AI6;h9r2FUq_*^Rdi5nO_V^9FjN0Kjg9@>xVoyyvD6wvUg}>?zrEvsYyQHv8V}t=Vs7AMpvF*EiHR*|*epnePVQoxTTrTYNiwFZtf` zeVyaY$A4NLFXn!mHz;px-dTAU<~@=3RepSaPX65d zEAyYrZ_fWD|A&GR1%ZOQ3icKpFC17{T6k{ZgM}{_9xX~L$|%Y!I=yIKQA5#hi=HX^ z*N8qN&KyxQ;=&PEj<|KiLnHn^;_KqX;`HLviq9*)r}(qt?@OXe`jljsOf8vLa#6{( zC3lrHmh38dt>i$-(bA;S?9$Pt(@F!S)uqcz?e^r6zHOZS$(S^8n=k0X1r4iwOO z&2pVECQLeWrr5HuYT06FytN``tbbyPSU7&{%oI^Reg@79&lu~+dCIgiQ$*p6X;W~9 znMKab8E4=u1T0m&*2ZpVUXO?c?0D$pgbtp?{LHiHh-YyO(*-R}FinVVZ+>6THIENHL%?a#c%k05ucYXsS7R^ z3+ihZ*NA!b4fE!MqaXsxCXS`}`HEuJ4M!DgW-^h>U-{o^Sw#ZEJnfME=!;NC8$U<+) zl2aPN*C>%G2Esyh6J8kucspb?&YPth=li4wE#HT{D86n+4T;}2jBX4Ab`W;aV5=p? z`^Y1#s0~;}I^;i5$IK%if}Xi$E1>R`uX35OII9w5H{CK$##5qlNR!2Cu@}&&$AiH+ zvgQ9kA{tP=M4Szj+RIONwR<8_-^O4WD0n)o@les9Yr5q&;gbK5)IYb}s_zL8k9?ee zJt&`alz5EqHv%I01>HoPe1voUC?8c%8eCCPpq z$%PA$H{-mOTYn0zP%gotCtLBGd{{;6{urSP&~hb4Z8@Z50_3Cw{%01!Rh*G;gVu5Q z^-t=h+$mqi`8muV40u{E;=Dut1?OkvpK;zU_u%{|`2x;Q%iTCXC7;K+N$x_6s#OD0 z6vxsIZpb+CIOHBY0d%4`Nk4IBHE`Wa{K06Ve?7!8;4R(ck#2SO*Y{HNbyJTi9~^ca z(f8n!t4ZIx#W2@8eIF(Iy6W`3M+|kHuJ5D8T?V9>;lzk6;|hHrE7FX4`aWJ`u6r?(8NP&Un0QJ9`Mq_%3$hTS?@8wfF-|Oj zy$Fg5NbMp~YyF;r-$DFtK<+Hu*NXY<8JFX31%5BYwMMK&y(-KA>iO9+=)-!9k{lfM z@W|^>W+}Ysddv^%ala7PCCHtR=hMU_ai*AwdbN0#f?rDjXBqA)a94x7<$zp=mQr*H zYOxx>sWrka1-LE7HH1o zEV5k_n<{Y;@S{FeLADoi+spBr@JK-(wL4Z!=lf-#Ny>joA)1Xi=}MfaL2E?SWuQOx z(g%tXpX$(yDp14+IxWHPoOW$42UVBj`6AS;;XW(wnC0oZkb6@N=!z=!fMd2)4fsTl zdO*l#2#N=FfJga@flb@|3e*mvY%R_y82=57`BGp@<%y#+bw8ZY72n!JZ!3Q!FG>P! z&X6?JF(pW*Ns2B&%Oq7)`j@cr!HTt|`h4I@oNWNFZR*;*SRqb=ZtHktWQ!T-BXNji zrLIGn%f%?pZ3n^Gw@4TyqpHp*F%_~tRZJA4+SNBH(-wnBSZ(pPTOALYEd_6gQ)=|5 zKyT+F<$;nkc8Q~%*QaMBljoxx$x{kOL<7^2v;d9z|Ax{z?OM#XWZ)!H<7|n@{`4SC z$5(gM$GF}hR>2zfhCG)-oBmNW%3^t`yjiwl4qt4%XuR)oyJB2kS2x#C*Hx}-UF%%G zb=~5+*Y%L=G1oJ$9j@nHFT3`+qugHi0LskVn9!PmGr7^Wde%+X`ZyMY2DJ2(*~xUns#1V z=tuXD9{A4!6v>6IxJNuF9+joQ>?fl)F#C(q>=G`ID-M`t0<*Qi>;~6OuJx|_U7HX~ z*x`EC^@3}!Te_p&UEC?|!R}G+3GV6cx$YYWt^#J?q;yZ|ozmaJtducZma+<%-S5Dx zA~nF6C0UpSe-sKcSr6>YfAi=jyt=i{%xLZ38r$++%dwWDEk|1Z-tuvwj zznNuz3L}rabp7wZZp5!%r5^`AII#7=rUQo$Jau5hfpQ!p4xD#j9@07cKi~iE{-gT? z`)BR%xgWm!hetpB>BD^=ZlPKp;w_?pVyi5ZlVmw;s4%{um>;g+7(Wp&=|1wGVMV>T zgxA#*Q-OS>N>?4|3ZCQsR!S~{eM0|S%gkb~#jd4vFZaqfFk^TZ@u3uXOnxg5%8%qb zM!bAYejs0kU%XGgZgfNJC`tZJ9z{PA;LG)ZWTuI9jEUi}@FkFgF&HnCA=_s`XZWEz zYQ%*YH_KsvFOi?h_vF8fKJtK31V83_af7%O)VNRFj|dofecRzX?iMe=zxlgpMjY#X z%q2b-N5oOY{eFbA_pxk|pBTO5EAmaaVKIhb#LDAFf&3m`)0akX`GavXq%T?SmM<71 zj6w1{`L;1yK94!XSC|1kA|ID;VJy*HFAlzcEPT8qF-Y`*4?6(*Asb^XSM-8bIupLi z>9B)m7zxl*7eJ5HLLaPz_V`F#CDw>55ShJFTqCX%HzB%sr`RBVFP=dB?lG|i(Y%+$ z>*5vhns`g>GrEX3#h2m>aY+0}{3PBHVR-FVV}xH0KV~gve!s=M;b!>zx4_4_5%IkB z@TPCWh`I;9;9Z!J-7QkZy`rD^oyfr0AB_3i5R9`-u@P~^P0-&Diz2a26o@CGTOSpL z@M7~sBfQimQ7rxhjqwaL?6cxzu~U?Z=itNc5~qmg;Vnlg&5{#?9;7-9{d|-8wa6XKQl%eg~ljEAO_9A+MD8$b02|auwg-Eq^cnAbUUuCdyoyBl8jE%$7b` zDErDZd6M+X1ldJ)mEB}_nJjzCUb46BBm2qza)3;igJq`7KxA~N%#y?9FqtQd; ztu<1PlA{qX9V^Gl@p6KkD5uLAa;B`1XUVgrU(S~2$a7^-hU6GogRwhT&XMQIDmhOE zWF;c37|V#XCdrfGVSNuPaSS%&xcH4|m51bi8aC+mjA_a@>aC}fheP^Bjq{nt^55bjMfwGPka29 zpe`lQ?^nZBIkFIVV{5=WtWc22z{Q z0%qzZK4|?GzcX?DTIIKXkNZ!Mjw2m1{sbBM%1$QE8V2e!tRlW1X#IDD9Na77%<{kD znvAlP{(D)VzIMb1MS~Ng`xuemP7Z#BjGJTJDbMa8=y(HCRU|*XfyCOanm@F{K=V!x3pl4uIv0A0p~RMV7H1K=W~PPse^iix0O$2P?vsNe4+8*LA?l^I>0XipN{HN z8@WgqB0(lyi;#98EkJq%=@q08K{Mzn*;QZZ9_2brCs+Nn>wcy?wHc=0$iGueqU1`(eW}JBZM)a1=UnD5_C0vnlVsn$8F@4Yh!2GS zIbuB0BBb;5mF_7~KBY@_3gNm%r$vk}`3+h|7+$LwMORlf^4Gx66wu!SUY!7b0$!k6 z8L!g!^m_nO5UC$hEE46NgEUB|?lP1&UljNRjZb zbsPNc4*nTqkU3bq3}5j@_?M4JmvjTGN5zd;d&q#jX%Vd=C_Px67y=I}7PEt)6e~p^ zU&0!KSG+?0AN=BB;yAp(M42RplP@T;uutPvnGCOdALbITE6-45%Ra&<`-&XxAr6FJ znk(|;AekalMGfMY`QooK9lr5=@i%yn8R90H$zFZ|{P{vr#J=Q7VuTzfKE@1XIQ+_N zQ4D`H2i|EO=0k7EeDOBC4}A31-0m!ffDko)6H>;7iO*zm|tF@BUUE zkw-D_{!SjpeD(+Vqx=c8-7w-j!jPEhx(v4wWq6Ee%zI;vIPp6p9!+diLW}1H%TQNs%!u)vGeLe7loq7E~=`oTe3KM?2`FQ7Kbi~9y_tBx?x!; zetdOpU3J5vnuVbiapQwamQ__(hZZmMOsK9xX(2&CSctkDF{2cb_`1sxJOiyNq$#>7LURey3?jrzuFD)0WjP42I%Qw+kzP z1tUCXGUlE$85^BD&V44D@k~{ZraB%K7P%%ap6{8)%_K})(6D%ZRb9iPg;fp9qNk}w zdw#?2Z*8(o(j&5uV{l#eqIS7kT8l zSBvvoH1|{~`c~=2sx<$rLaKpk8%A8UT`S1_@PxRsC&a(vLe}%>kOmjhjGu3VQ5?xH zh?{Q}cP}8uFR;saY8h~Bt&esXV829ktp-@D`CrRqFlx_NG%P5NKi{sdnkXptEaXmj z7CNY2Fy6fo4SN=={w=Pey@hp4mM#c+7CVX+j&OxQ?InsaOClJvMBx&@#32^gAc5iH zsdIoRD)!W?M(W$3mY-MZUPj`u%u#$qffk2xo(9!wLqw|$ngR`492!_08k9IJR}C$< z8;V_SiNkUw4lC`4o|Q@*F6L@+7h9Zg)tp-sg>-H$pBK97&t1l773SsYYo5L;=`GAt zXcy)d#7z!0EM3-6x43$xE>ftkMe3SsRvn@9i}jTUNp4|Yss24ymmjZxkJDH4_XPDj zU!#<-;pS_U@=cT`>T(*7e2quGZZ}`!k+0j&*X`#{()DzE`MUjl6ECxz`P=ND*^b69 zSGSX^;pdKX&u*w*>7HF>QYcqrT%dbWpnFna=IfpmVYIX%Zh>yBKsR1wR@I#<(2W=9 z#tSsk1sdrh-MIqYxdQXIM!rB3uRs%{P@`C=+bPs27MdvP@`W0&LXB6U#-mWfl0!!Oe973p@0#<^D#(N|hTFUpS^yKw1(D)+e1 zvZ|=bRf`r?MNeE>U%PP0Vz(bzu8GK=xd3b<%p{t<(g z_$HPbQqMJ9^+UtrA92$bh34x*RNNfiU3DSzcT^R3ZXWQDnopgJ3WgRgtBMZkE?$fW zE_%3(yI4zIynws7P<3%}gR!DEdWq_vs}7y3=guud=diDf=;T_8j#VS!XVenH%d4L# zyme)TH$PXmjG8K<(cvF4K!E6K8eXx6SFGU`>-uAJV?!&dLG9qYg*}&s>S~t+$*F?z4zj(& z9>RVdXZxzLK~E7WZ$v`%60l+sNVKe~Zl!x-L){Yh!rHnj&(csmvbY$CsER9Hm!F@j zhDq)?&d)8-x~U+yIF?O9^^!&NV%aLt9o0pdaq;Rp-iKX+I#1D{AXg3B0u8qycWf+M zBu8yEPz&;O4Xt$xv=%PNFX^J7m-rS})zvLoPV;0;``|MV#X61JXW2#Xvvku#tisaD zG4FA@AXJAvA&aW&E)abeU9ji^%mdUDIujI1u9&}LnHs%D zxT0SI%;V8ZqtA~H;vDSoJlBzbPP>vbqR+%@4(g1jxHr#}_+Fh=zMV6MOOA;ismeze zqE_KAo_&roLxD+QbXr7Z!i8Y1hJJZX`ZdK9~30>{;iz3g@djJg?IEs!ZFG7ke1)Kk4!?7_}uPbX(*izro&bh@Y9GojP-=#HQ2x+NaO1wDLr zLiS`a2LUc z6`jRmswI}ReoSY+Ki+x@;9SB_$FY4{MDP(2rSeM{LI#x)#~G6x&dK4{GpGz=RKU%+ zknW|VGT4bi*jDh_$N3emdB{oQ7LTfX?#1BN{m4I+OPp|qd$M+@tw8X$J zYojYHHr@;4x~n*U6~laq&%Yzc;?Io#UV19_GKArL&f>N*2#(A!E}$N{&c^*`8T0qJ^$dQRVO%5(#OCO2G`x5SZz36S^3jN@k3k%56yogb zvB!hnM!S*UM!S#SM%&15qdm%RqdmoMqx}PsKp|Ek!3)4n4}l1^K#W`crab5!M05pq z013pBDPJNYEfLu^(4Iu>j{3Wv&+sg8e+zT)Za&|^=R5g)7oY#g=O_4l8=r5++398E zA*N`+qcP%ogX%`qGWakeW}#;&B9`=?ivHIMJ<;|bxYzDq>me!``9#%iUCU1nwPGxx zLw}nlR>>Bo+ZsCxE?aX)Ht5O}o zG@o>IZQVz?t;bsTsk@HKn0c+oth-;JG?i;T7)cAWZfDnDZr@q6W7w1%NfY&}bpu_& z(Fi$Fc}}S6zI82KJA`9Nr~TBD!R>8p*<}=5e!fTDt7jdRu*(t+oxhy-Hnlo0qgx`H zFqb3hYg(9j3W~<6gI1}Rty_>bST*($hjDCx>}5g}6PtCxn+C<%BbE-$><5 zTsz~EIf|VP18W;|wI`I;i#B6F<0DuBevJ2rK7$>i&+;15F5W5nBK9uQPSJm21!uoFh*j86 z@fOqP*nxNy>#?-vw^2T5t@pi(wK{V}?ucxG#W)W*(>qBqIJ&?##^X#qaG?)LIQPKe z=DxULG3kwzR2=l)QyTKqakyYVGjXQAy3yO=s8NWc2lqJ!y&eguSlz{W42~F3U@S^b zz~KfZCgD68hYPE$GjOiJ5rb9LnaDp2hYMEpY~;+w5d)g}F?XJW!wcG-i*pr@uApHE z=NcUGpygtm>u|(_rmJBY*I=bC8q{5j`)kCtxW5iZ6xP442Mun(5ruWN8$pSia71B8 z>Mgh@J|w~)xE<#^a71CJ>pjT77e^F0bRX(I1P;*~Tbn_(MjUa>sRXP8K7pL=Vi%s$ zj@~$|=f8;a%Q)h&zjrSnyn=OgiCwa9;rup^D6CPxgYwNdqOcnG9{iK{adZP`_v3sJ zM>niae}pn0^=!Q`-0<~#mbZ05)!BWzL zr6iVR!e9w7nCmX)x{JB)Vy-7M*OQs+am@8N=6W1+y(ja#Cv&$K^R*W^dMnm&*W>8T z{Og02-1~t$aWR3p=w>eV<-N>qjJT)3iS5`$+>ghd2P5w})ZGcbdYG@0`6`*Ok~t?a z8sEig^FML)Xa03z{&ivgbz#nRWzKbF&UIzZMKRB!m|IZ-8~8}*C*)clGw%5 z#glLx$CnAO;&>Ft1C)o{FTIH{aLm(3OteQGQE%dSfRBr#aJct-Ho3lZxs6QE4!IUsJka%v zE*|fVbWQjY-)+DVoz=yIKFmRi)UIhit6ymcex!!A_TjUprQP?WYkywT5~peWcCKgb z-T7^`tjHCH`(9o zkZyp5x(U}?k=7&Kj&ujoy-4@t*st9Rb}qV+U;L}FyAZV$hWmiwK47>{T#vjPaJ>mB63czSa-X;l&mRINXjN=N+K%)L z(hj6&k)A`^iL?u8FUr4-^bYQuas3F_k5Ttiq|cB($M3^Px>w>y?%5${&m^94??(O) zy*r5B9YpUA>fRkf?+&)<-9hy3AbNKUd^m<49zqX~p@+xBQ@G!b>oZ6@ke)?)4rwRS zE~LGv_cqcyxNpYwU6g+x_xq6!B7KAu*=y!yTOOjP$GE3uKikt0@K+)wZ961wyRdoL zjNUe*x6SD7K`n93=xsA3t{D>742f$-Z=2Cm#mmjOHX=QW^cd0;NKfH8^_uv)8|ek4 z7m;2@+KXpzBQ+zvkKg-|4kAVNGLpAH;CUo}w_B2%`LjKC_Lh3N9G+tPadqrx#uf21 za%{beo;i8skVKX~NH_BW_6RLfYieAmQA!eV1T;Sis6VtG1Sb!{Q&Ak)sHsjR53wvL z={|;%$4m;qR$Yj?k#N;mB6`1zXXco2&yb;EfyM`odW9)b;-J+pH}^@k zs73;5&JBRCs6!)=peX7PMoK1*StT}DnAjLFd|+Vq-sVMQ&!{I|QK}hjZr6O+0DLzv z|DS3d2fX(H?|tau&A^*Dh~1Q}TY$wDaB&Z~xB@tJ1fNDVVdUgToEU)|!pf9M(&0pF zqK_&~xF5vMPd{?zAf1b3S_iW~krslqlhZ2D*fhuCF^t1w7>CC&4oUOa)L@rz6nsF(^@ibRlR}$Nkv{N|b;S`!vt@X&UZ9-E#WAtdVCYLql}(G9r23CYww)c()umG=EopJs>Mh>%el zhp>o;@ZOsQ-Z4n=ND0X40&J3SZELfKB5ycSAyNs-lp>A9{mDpUkWAfEf&8=Z`)pii zBRRQQgZ#xv)ML^X%aJZYS`GPHi*y~*4Un;$aJ?1R^+>lP-GSftBHa%3N4|utm!( zkv>DRX{dCI>9atuM2sHCh#?;pbfs}m^uXL1=j9lkD=-5f$$AKsIszL0fGeUjcuEwZ zvdW&)Q_`X2NgQNIm&&Hb+Rhtp_8y zt#siAjI|BWh2%+5zc)boH$eI~K>9a8`ZqxOH(=~-fDcZd>CJ3!9>)D9B&8oq!1;sV zJlUUS_~Fg)!<*rUH^UEa#z<+aH#b0UZh&7-p6UkBa6^Rt{0RAs7k&9ViO(W?AKBZ_rrGkld1pcIWXHBv|x zs1^1X(E`oj4q;BOo)Wj!lPJf?QvNyBi35L+IiBp}5kOMcMhhZFV2EJrg~n{-_mG}w zA!a3|CS{~1r3U5E@KQNE{Pu5MSwFoMGUidqveqNmf4>|)6IPgJB^4CmNXC(rUX+@g zlv?Mcaz_bojVN0HQkemSu(Z{7#U)f z*lOixSoy=SN4}%{p@`gdl%Iweo}F*QAB?w??fgUwem0_hDnHApFqT{Sd2({=kq+<~ zj@Y3MXNXlk3$aG}x)b{4qIKUvnD^V%0c8r3i9R?dr-EK|j-*zj>>CJ$e*lF%p+NZB z2+9QlLI39J#z4rg2}paNxFy#_U_f700|n(YM6}xSrzjm9QteW!8N?rC+#U$XzLoeF z{#tsPn!-PL{c>L*@Lc&Wf3UH7Gp$XUe8v~pX4z1RAQp_jg1{WEsnoT%h9@=cvbj40 zxOK6(yUn6zrj>sZxTx|=NT#g(TtsDcAB_Z;U7on!5u9|&cl13Tu|<+%&>M1zeh-0= zLO|2YWIumprN61s?{D-PmqRB174QcGGRnr9TI<1BpM*ERsI{I-;yoT-Q^j}2tPy~> z!ay58Ix-2u((cYXn-j)V^Z4`37bwt@7|rz zTjkSeilm>)xA}mv&Gc6J?dh%ZX_R#YhxuUf*~W)PpItu5!jndy%FojLSMc-1jl9-x z${@ZTsJN-eP*Ry}AnnrBL`)<~gt1w~mf1dSXsOf^?nW+B^?Smg@8iumW9e|%4^U!^ep@} zhG}BUB{C7+vq!d;?gEkyuA=}HrIv*t9;gZkTt6d2)s^*uz}1oX4CQ_?{)%pL7PJ;L z$t)fysmahA$z^E1UuC5?D7S|~;YmTQb?!BmyEEazLhIliK2yCN8|;L@@ZHp=%{?UE)NNbXm>D1fLY$}B1u#2;{8OO zpG7^@`5q%LPiuKV8ETcz5?RnEk$j?Yo=n;gV;wr>_5g?t?FlXF_3vr|g#zLHNG&p= zEsfc3LPFSTLK4|_0xD@J{Ne*jijJf*h;@0TzowG(RV9pRxz`vP2yG7dVFvu=WD)`a zhy~N$l)e&fk)_XpeY_qGmgXig0oKMzEe8NhaS!93xHpm^kTup+)N-xzhtNzqqD7S- zA@59G&c`?Wo|0HQYyAuwvn%9F*^;8@A;plc;$G2Ozug%aRD5>mlo1UIuVurAT_`6! zTQPLQVW4M@>)ohN`c?_Mq8)L9^gEpu%__?)L;m3O%AlfGVB5ApprzRuxD~8Q+}d)` zghn0=+X$vQjX{C{7@&Lz#I8{kzZ}~7u-wyfi9aB_hRf_RM6?>)o>nZmD&N+rCU;bR z1g%)+R6cnSO6Fo%PE6Z^o+`X(L@GT&@(0p10?!a5TX{SX3LIb**{A{KpAH3_-da5T zHQT&D&$a{pYFX>6M!s=3?z%EZ@yc;A_{d(5?q`|2u_nCKqkJCK+d|{b7T-{IdQ_KL zssYJ$J20B2dwdIgd(&4X?Vws#oO1elG^WiqmA9pRF4Na@(0fLNqxb0yC-rSd&(Cad z>U?D@wDuw2F)6i-oj45u+944BEC3H1FONr93so~&>8;dca^YYp5|#7EhN31A{+EB+ zlajs?Rn|I&<*z$=I}^1wGO0;gN}|4;QVI1#%Fpjt?eCf$FsV7c8lNB9?!gO!)E9O{lthl1nISR5dkIJ*;BRQc`4oXT&j5v{QWZH^u?Uce}oXar5H zbvt(u=9Ea~^@jqD{^yuMP9K4Af{M~J7+X%s;;DQaC)3AO`R#pNm2Zz5Q*Wqz)dwXJ zn5jV4*<;lB6J^xx~?D7zQWLzs{WOs@T(Rdi8fVCv-Y%6 z`8I7#8mRoXe6%ea>2Jk1)3Odnu*%Ovyu+S>63tXT%|LBABdw(JZTq3-=i1gn6O!G4S4R|r-5~#A2Kg0Uf0L{a z-;Oy&ZTR{o2$|xrX=h2Fk*!trRc(wFf`Rc-4hxGB8iKu5jzp8}68@%%iSBO#G|lbZ z>{ZYnXqw}{XJNjZEv3pIiv25QkDU2w_|AfzPa{p0AB?YAIK4C0zT``hPGK8~dm0VO zr&5|G9p0?p>N|NU%D0BdM+j{#ZwfNr4moH4pdC!exJ5yEzJDhijBPvp;oHm} zD?e&QC$gsU+sl;7Z!c3SpJmE{nVKu2m*kCFaRv6K$fhTTe+XfM#FP6Pc&D>B`*#MO z^EU=|T4Ru?2{q86-ctGY*fix{HXbxrFBStA*-y^BD|ws3u5p$-Shw0TTw zEiir$Ojc`5t}*8l#scF)D}NYv?%3t+{Gs$sN!=r7`80f)(9SpEdyK*OFrBjI3yew& zdN#f?sPapUN91lRKTqE4fMT~g9A7H5;nZ8@vnXbv?5;ZpbQwZ356dgyvBWxBYiipw zh@{u_O7;)F$FPjXl;YDFZRsbw1_IU4vePR=5NIZ*>Xkc(X?dNZCH4k6EwJtXk&Uzb zKc^dj`M@^v1Bg4Otf3!Dk0{$svS!U9*hEmAiX#%>ZM8rAgJV9y*xaBwyULS_;k6+U-LUb;*xO;)?j><|J!!;xdnB$RGRP|EmB{h;^kI7?gyhrxNUoO&C z8GKSY!R8a$W7Y_yuQji%_z`nU$&gJ?8Yvi2S|`}~M1Pe}HnO99n~x^HRQdM&Qu(Ck zI)cM|G<6iq50%Hrt+z|l$W>6ta;kiIRxCX#KMy;+EC~kh*u$}XJn~c6bB1e20VMd% zW(0}6t5XP;>0OaMarlVfx5Q8K52M3hfvWw$jIVJ2{qugn2*5uCZ{)Jg+y_8n*}b1> zYSS(<-=-1ezk=SW@;*z}Bg-pUx4kjdJF?U?uF1wz3~5(oO`~6jkiyr)P9anv#Xudo zv^+Snmavk}x&sH|1#4YjhJ&f8!Ryc~4Z`FNTknUsUu?_NND+t(nJWkdNiIMw11v=U z!}$iFYM$UbO1n{tBVT3eDRHqEB7P4u&l{QN8F)R&X#Ezs|1wsiJo$Riq6C%jEekzb zd{wc6Jv8L=g$PC_N?)k^7}1H~)PlHAlpKj@)!EOYa!n>%e00vjpK2 zcv&1JBgiHevAgg)r!fV40@gw3RgRFz9k@besPv08!t`}=#np+Xi zSU=$`t1zX9%I_CSz-(TgA6^%bL^>Yh-{MmJB{Cw@O_PL z?F+QD*fAtiYHg3kwtWZ#IP9M3Ls+gV)GA+OpH#lB8_m9|d|Nk0=11BO6Mm$f zFms~~nt9o+lKoK7*?vH?B)2|@Z!Xi<1Uii%CCf)^!ZZ4_9o2oEZJg8c&=kKUr2 z^p_zqXW#6gzr+*Ovf>HP228xrKHMQs1VFc+ixT>>9+}XaxiSTjEXdFk59^_Sx zzLnuy$*`66IUk)R-!i2}j$ww~_$8V6WKOY+HcQu!z0odT6_`YI~Fy{D`4hg#*$ zQLgeMa0YMiPODxSOJ*$%&lL6nUOH(W{M*&UtGkE_n`^sv4159VYww=wz|%qONX<(y z#|;E!xA2!TCKSNxZenoTwjg`=TGLTo?Zr}Et3G34!_ZJLZWzv#&|CsEH#FX+-e%U> zA2aoa$fx!CLJ4Moq{~%)E>V%G>W#?H5&KauQff%rpn1uvlAoq#C(Bq(ue0JoEH$5N zj;(6LF_qt5C#n4QI!WcX*GZJ$UMH#2?RApMw|&|yt=(0A9(KK0(IB?kDxac3w!D#s zQTe9U&xcKMLBl9ME4`l#UW40Y(?1JXu?&CHb6cC5wm#>G1fd?=L5=}|qC``gt(Juv zVFdlpmy`R&_K&<3%tcL1b~AmCYWlusVYr(ySNRn6vCGp)QTY`0vGYlbt9*+3IC;$) zlX}uFLIW8@??rCJn2xCAY|Cj0=-3zhY@1Tr?~jlr^7-NUhXTsmmwm7{)YXhK zl9x`{{-}GsO83I_-c`OWJ(2mg^f=+L^f=_3xyaljJ%!%UkxG56#5Cj$EELLaUQ7_n zgYd-AcNmjqfJ=}4V#>qu>Bb-rV^!TVZh%qtsW>Sm&~@*`;Gfr+MNp6vORIm0pr zI#%i#-hlS-*emG>qP(Cc{9_xS@T#yl-X3lwo)$FrcYY2}S}Pj_Ama2on#IuNo)(5E;Ra0>QGGO_JDH39cx|)cG0XKOF2PI(AwexC^}w1()}xU zP07cN2E0GWcA4#P_-n7RI@AJF#+K>?p5sffT%ULjOP&;D5T`yuFchxy(MBxZ2%*sk zYe)Sprgc5Pd?OV8gP%eYUVPrUrsc9gV3({kbqIJx^E$hKN}dtppnkTG6JeG^u@TyO z#{8!Efh!g;`oU-I6pjQmlBYKC!bgj59HF*~nLv##2oUI9P^=F|5mcq&Sc4NJI>`E{ zeBeok%2#E0cE-7+39&NCi{jWl5h90}OdJ;U@zWdf2g?1(#cDpZhPjo3GcbWkM22(J zk`AGf0qXDpsd7pMdlys<6DNwV;UBLOR&S;?FLJjWR42_%eNerC7Qg|FF_Xp~55^7i zXnZ{0AHbHKJ>kP-leAR2=)1;BpS7#s9oP}2Z8$N-SB;=Kc?2wDCr3yuh!de(au_4j z<@gWLmMPelvS`72)_zY)O?LK(tn3bVrWiYmec8p?J|{&*i7Ly*Fg^Z@CP~9C?Phw#7Iw<$#MBH3LU5F3|R`*+Zh{DazlZmh}!Sj=Wi0 zw@kWgP02J+^X~SuFg7CgI=&r`VcT!%rB37Uw2M>i!*oa=+aJgqIH}ekesPVL<&{Pk zk26yOI$irRduYpQ`?@ZIg=DXvJxcn(xrS!Ssfw1XJvyXocpOsSsXlWI5;O#i>yGs0 ztUzE^&78{0IZsZR@?=GYcQ#EaD=TSQKKof275))l(YNXNKlqKEtQLL?|KK8uFiphl z$(()2hqSYpfCU?PiqI40y8B&5DYQ3uGLiU!F-?iagnZiVGOqJAVMqi`(An8Q zj@C+f1DUn%d$q>%PLmpJWz@(>{(38Q>*@IcV@=CP#(@BG*$7I zp!7Ka!FugMblePaDXBUU{lmJPEu8XGfFZc9TY}-{{r0RqV20HG?}chN40eIaL|&L9 zn?*4lEz9Oy#qtmVjYoHK=Mf9DE@)?3HyYzbN-I!(92jHl3vjdxel4}D=Fz*#)eact z5ZGhNg!SKBN*6`UWfsN}y@8;$s;Mz%*Zi%f0V@Tsg$s-U>@Ya`LAs6g6vZwS=S<5C zo9x(|iDg1h6jTZzBF}cSye8!^3k}z+-4dG>%>9Ol=@rap2NGHj4rR zPqH^{XWWLZR%(~m|181E$Dnn5(|^{!4r?UfqW$L!!t3EfI~Mal&I;;P6X9s|lfdhu`9EP*zqxVO0t z!6>x7cw+~!8%1N1sYoNkq)9SSRppX~p@V6atjgdwg0)| zP98P#0cA3;8&t%mj?s2^H3SQ04~)eGsV zQ>RZqH8gel^r`oc9)16W3Eukh@26jM(e&@j>tFly(@$-g*sbDb1cl_umNL>T_IM%P z-hMw|Cy`-z_$)v0*gNv@VWv409L{4Z-({4bbVvUETfXo}a)gJIe-9D59Ydqc_U~0K z9VZ}9oaPf4*%WOLe-aUGhc}_y`Uox@^J8dk=qE9{z-ZDAyhPw5_PU z**d&-jA8P-XneHw+TnTKK_i*Gb^)Hf0iM~TDOq_z-h-1d&Lj=gqA-Ojvr z6GZqn-Y&oxa6~qNW3s@PWzpfYm)+|`0v@{wLTdxpV)Rw}{OBv;0NEhTMcxi(wdMvofgprJ~XZrHVB(WL_c)(CX_ahz)wRNrO2$D*g12CI614x^( z|KIrVito&?A~o_&45&A4VsDWK+c{ePdmG8V<1g;{anZg8{Czgs^V80=UtaS!{M`nx z>>K`6o*%?Nh1m)1VKHflxwKlPLa$kKC~J~bw%79IS36yK<@>pMfPbbhPxXj~(1PsC z^W3j2bf4+V--o|k%n{YschUB{fBF5>H=C>Lh=`(ZPEX#11xX-JzNiCFenwy(S+u4~ zzw9?n^*I)QfsEc8=65cjr%0z$PXLXz7U9Ubh$n;^8~rr{2Gr0-tw7*A-myXNVVK*s zXyb)`#XC#)AXq$BNAGoNH2EREn7QfMqj69KI-M8 z@Q-81>M?mD?_oNy{QoDSYRzY8T#)op|Jgf-cgAn_^IQG(hygXxzNT#sugr{6b>!hG zC~ZAF+JX81_&q%}%aLb87PQu>05_ygWvp*V=kztYg&=>SknBpj#~w4bb#ri0&pIt% z5z?plXX#VuBDHd(x=BTjrMPVAIUeJ z2@Y^=m<# ztb_Ghx7F(+;yR(3oL*dn_0niPwx~<=iq4#ZO3X8`6UY8?#*c+_3+GyL>Y4~`Nl=-Z ztmOccbsZ=R+rv=XcmkUUEWfH}EyC@LgxXvCM$|{*5cL!uVRzhPmZ{!OUr@|}EqK2A z{d9!xLu&lsP3qpJcZiz6h$6c#s*U1!pZvjM>y2`*rM0K7rDiAA$RO=mjJgqH53QRo z8zP`~uh}xzCTXpVEC^{U!abQJfoPG=JBRJHhpE^*?09>J5dr=JqwG}BwJWVApH)N@ z07WS}&lFHx!lZ1}z1W`*N+yKl9=rls7Q&lP2aH`zNSDZg$5ZPX%v9k1*mN*wNtzbn z=FpNFn;fsG=%!5(>J87AJMItl&F<6V9jvF&@+$M?aXp9Oc?r*AxMxIP8M!BK+IWuc zgin8v_5sq!qM6@`?lpVfRbuZo;|SS_??L)U)9Avcroz!p7(2GE)V`J07|cz!NIF6v zm{l3{WBJEY%YA5Jw@r+me6(NXSvbO5iU#AE27RoV7UYV&c0Jz6w@8v_;%yBY5; z`kH5}rv`S;ZVdW&`ZxQ-ctuFl6Zjxvf)yhgTaYmDfM42r-WY_*8TQ^bn~^${bgpwS z*VO7nFVG@lT#UI|`T1%?>cgj;qNwlN;OuK z2@_zUF=0O*d1hpWcSs@Hh!<>SEd^*eM1x=eG|BBs^8dStk{UCU+x7tMTRqq^(m7DD zv83($UO(#-KxL|U(rqTSj9Vd{YEL;hPSFS3?og})qtu2-Eg6ROMgfls8X4p}@R;gs zC#6N-2Gf?>aT&6u9KWuqe26TeMO&;{S(H`vPS~14-zlx}gk?>4^UNA{&>4|Zcq?DP z#2tZaJEBDUKn+5KF@ezMOox1pEtu6(dk zzhn=E@6e(;8p<}t)F$X9G#dAobdk01hzuXSgGulC(#|8i=!@-IwoW%;p{}x6S~~$A zQH~`EFf4fO_c7VFn7=(ld_)iENWz|eh(vNaD7PM)uXfS4e%fla?KxOs>}A3_B|?=B zY}CFn^nzXAA`2JhCR+@JQIq<>1i0yMQW#A~5RP`YY@SX1vvG3x2e#&?o~gCVUtDvv zDW&#snDkaQnX20?vS<3HXU09SdchQ>cIg0@z$e}rrkoSC#=xuS=63uJ`oXkO)(rgt zdChkY@x37hPeHT3NkQ)%)^FzV_N{S*b?PAJ8XQR*GYMyxL;fV=4x7n6R*92jP6tz-JLsf)wS2I8ku`*F8+0b zQBH}kqGX1Ta2h;6M`JXDG0G8VC~r>7GTKmw>u2b~H0uOI8CO27yxd=2UOw#yMW)*n z(c}%CqMGlU50aJo^dxe& z@b5N~w{>gquM^7U%!jP;skEYGCjPJ?>O}H>j($5C`S_Wr;2qp=6fu>Z(zKMnrG0Lk!Yn!A9}n%LlIudL^L`yB_Vi3 zQKIM1;$CJA?C{&Zk~MR3e7@UqN3O}4lbb8wy!`SwAO0zlUw*k0`vPD;I0pkKXa3xo zKB%1^JI4P$#@~{Mj__}<6|G({{-!)gkXft6C!qyz%ax5bc5MZsK=x+6_+j`}o2)Dl zWV^nVIdYuk+nF?D$-};TRvc>*at`OsCWQQ<`5DzCVrq4il5Qnv_ zs*z9hhXAhQL7tHFO%B*N6Z9#qP<+t6iQvOA7Ka3r<;we2{ch(es4?NxGicG2agw5h z4&{aDVB?*vD53G!a#ONq9mBymXGYNA_$CKK84@RlO8T3i?7ddlqcl?DX6^|G6$q1tvvO1 zh$NfIGG}7ciOk6%PNAc|sJf6juBj<)jUX*6ghyMMlSA4GosA3gPUG_PG6yhDp<}w3 z{fXd&k~-k4H4XVU8hb5usyz$$2yNCz>dodkzXn9vQbOT2Rcy}_)9c%x>r z>B$5a(JH+u4R3}#{M_cPH0i;o70gyR4r%SygiNCjty|NX+Qh8GU&9{?-c{p8>@o1% z=50Fzi~z}Y9H_aNcu|3}*e?|axWuF5;?Hsw<~pk4bX(w z0>FHHl(F)jr?>8;w|O@|wUg=%M7>h89@Sw#jq6a|fkZrhTk4*jPi>|*fp>1jXF;gm zdU=bnPp>-CZUnU^MAU~xP`}cX-{ShT!id*S{TCoOQB7NDg7|uBIVP>4Kzmrgnragi z?gjnADoc9u3V(2h-#;UWb!JHN1+=*#u^ewk(awvn@oFZ+DrppE2NS49*?E^z=}AS>bRFV7+bzT_^qt05?`f!8rnK2At?~(HQ*x$_~h(NAp(-t{p?@yyvVH2zeqUy;m9Npa*OpBjwqakWNR0 zDKwqPq79*qjLFvht@MTwzmGkcwUHU~Bkhq=siS>OP4hzr@TbKcY<{KjB1U5c^h1sc zz{XLpl}tLgT|{G8jYj0+InzeVE6o9K_ho1M{*z7Kdf}jJhYh>-q!gbo`(2-}Y2`&1 zjrL_9%JTWLvf;pFW@cVIWXOd@(_tK&vrDce|AqG5lU1X?4S~rGR_z%B)uQPEXl#H9 zqKJ5ey#a&>9+O=M3n-ol7VB3ru%3qhh>=n-u$*)xJ{wLa*2T{S%FC5JonkzXma(>@ z-%%sKgLdOkj1xgcV_1ISs^{fGzw8wVwPYKAYl(Qb0jr)0Tf*3+H(hCk&5Uv)Qj2Yu zi2p7`C|bWLG&?jsh@MZ9^YFg;BKFWA(-jtt)qJa${Tm%dcR}&`?Ci&Vz6XE*`}}U* zMknOajNoP+tTK| z!Gl)}9=tdhlxs6C%D{hLwc@DhZSv|2zN6;!WoX|MbT#dQ(D)_YM(;fbyz&pB%PtFr ztAvW^xz9jJnkl5~zgGe}!4Bh4eN2bXmYSSVL>3nOMvrOT#{NROks`;1--J;1gK_2$ z;Q^1xZ>GyoXsg;!KwnAXH!(3B6O3EPr>F<#*?KdFh(`dAd!jP$09tgm`YSRum1oZ* zDAoA%jz9b(7H#M8i24&CJ;B(6TeFHawBmy30!ru&a$H0MK#Wc=PLCc^&>e4$c2B=A zwnrdPA6pok8CwvGcYFqoJ+G#6C4Ohb7WEl3drHRG%*mr@lgTLjGheC2?H}a!@Fe=W zwFeqyoxE1!FP-sz8Cso!w@R8t)119|7uu%%>ySeB&hPN~*86;iOG-+7t5-i(T3Wi@ zcdL*7mz2mJB_)rp`c&PJ)n!fhCRqU*eSiylsXYYTtKQKFRP_3xnm%_!qq(|fx?1S2 zteifdtPOv;nw245v(mnfTFU|t09$bvv{JALp5g+=HuMcf_EY$$-$LLwjB7%9_+Bnv zaR;8}-$UV5VA@YjR5u~@%v9fAXllyB``80nA#XPKpv~uT1`Nm(jI3v3fIU&Nzdsm0 zjt?0%$(SHM+AH@^S5^i`22Y`dAeQ7K?!_$gT|up4l6+HM)y_Jp=*LtuH4M09#7pIvg=G+m3 z`bN7c+VxFQ*3mC#ugq^P5cd^_H1`QtjW2PYWsF7%@rn|@yp4aL2Y=g{?!7aD>7gw1 z1I1aPbo;%yw}2bR;uwwvi{RP8SVyRpxIA9WGI|&pq*t6Wetg@unx>{%n}WM`(cX9| z7Gb9Ig*~HLB=wBuJh4=Mhrc6E^@kJ>Dei^8|IjOX$fJ{2ubsSh_2gA6Ca+vN`Le4g zU%hJbs^ybuuDwW12c#cy$8+@MkPw<5(}+?~LzpYwgT0%R)ZBWJxLW>OUd`oUV^Whz zcP)~ahS$hTWm+ioI}{_RaVSM!ds9&Hz11Nomw~iteQ5oCs(c*&^i}*N!Qk(BmNve1 zJ^If682G6V8j)&Ls(~gnBaDyTbko9{ zZ*Gyl{oRW5R^b1AU@*QCwnbbaAC%X4GL2sN`{5p(cS0_=AinXS%u@2pBPbc%OWtxv z#>hJ}{*0wAgi4kCz6hzin)a!OplyNkmEq6iB`*d-yJ%z^-8dcsDXyTN(%1u(GDJa& z2OHfe0)qGl`+EFkKOKd$bS&VJ6@?aOOG;nFV;xIdg6M0{TJ@-Rzu9c^z6}1%GyE&w zkH>oyvF{1qT-zOrtiNb)V#K~g@-ehFG5>au#=U^vTBZ)@zt~2r_q0XJ+;$q0=SHsH zN0V;lJ!|+b4L&tP?>DzxVhmJ!_(!1?@-vlHVM*W-f?kt$r!)GVd|UfH%H9t4D4Tnr z*uzmfix3InO-13acNmxQOHAwhTU4z5h%1v@9@1uolzVE9OuD)ttD19a-AZvWc@fQ> z0@zDfNi!+z&kW)-%$P@!+XTNFf8PSyl{|1ic0sYD9lnixDwv>X%zSqn6OD%;UE~MQ zx4&};j|xXy&UVQ!jdDDr-=u*uaHZ7;tTFN#aeSG;Kd!(0axmxn@Eqj$ec$--KfJ(q zl@I?*>Nc4-*JWq_?gNa@*6$6kEHExqx^O)85GfjO?iyYWYD!UUc*Vf=6;niwKidd9OH!8s|w3V71i#HRzYVM}!{EEpB zMdyO#i#a%CcvUbi|%#4{9xuUXfu&5UF1_AHY9f$)(JO z?3eJ$dwO0GVv)cmFG#{de4d;FQS$N*dJ}Ei0~Eh?en})FOVL#F+Fp z`pbB{E$fh--XuHywd~AAk6z#&Ib>%p%MQ8**#S%~J7^<|VI~0UAtn`4lM^5#C`SZm^6j;SDU0tCID>{`?CFl#xd z=d=4WXFlI2+EnnYtKz;qGtcaxQ~P`#y!-uEzwy_DWw*|JrI1k_{F|wvYFo1W zg`9u?_tnY#Ug2nZ-8PZ)z!MP$mfKS%zGKuW{k;8e;pdf8jIua)usfJ?F*NbUF=XHT zldC+ffoXvhE5kuH?S`#+|F#KwIWPwFGBqUZ`VG_1{(tkUs{F&}WkvsE6wa1vGEM@9hgl?}%+kWQf+vj;{K0SQ)d9CJBn?JuRE?&R;_h+_cNo{Sh z?Dp;Rzb(~Z+ypWtigC`ZKgVPC*8ZJ$;Bo(T^V;jzwHbvpfie}0C3pW6FJ$pp1dNIV z)(v0I-e1Pz0Suvt_e>GDpXCQLt(ggo!@1lEYtGicdj2PQ|33-U15!Y(Wrd7ATYui( zf7|}+>+?%lB7}k7IH%XJ_5R!aQ-l(DfiVq?yx`n_QRkUocyn$@0j3mL-G-?9pRZTR zImCN4r~J=*PFU@4im(1qQI?otO8+?dtj7Glnb#nlSs*md5P- zhc5TZR|NxYdcL16XWPX0oySvO8%u-SQl&IONTU7h`8Ob|Zv{6_Jz$Vim*x#LsQ91p z1fdtlo~3^S+P?eAerD~)&o}<)v;o6mx`=}_r%c-C%@#l-N;MnWgesCgZ;k+RzG^nO zWpM(P%>ycP7I9Es%92wT<_t7Wk$b_$YeE}-M#=(ReoUj`Sd`a+XX#skW=n5okn+}L zoIU?4(1kf&Oc^>LO-Y~_OJy{97R6*{Unl}B3kDPf-2H!dSG~!%^qx+TJ3L+eT-G@y GGywpnkGq8c literal 0 HcmV?d00001 diff --git a/assets/tiles/BaseRoomTiles.png.import b/assets/tiles/BaseRoomTiles.png.import new file mode 100644 index 00000000..d1d6fbf2 --- /dev/null +++ b/assets/tiles/BaseRoomTiles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqcwfcwamles7" +path="res://.godot/imported/BaseRoomTiles.png-9f9348003549d369951a9f03b7c612df.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/tiles/BaseRoomTiles.png" +dest_files=["res://.godot/imported/BaseRoomTiles.png-9f9348003549d369951a9f03b7c612df.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/project.godot b/project.godot index 60edf733..48b31441 100644 --- a/project.godot +++ b/project.godot @@ -23,11 +23,14 @@ ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" [display] +window/size/viewport_width=512 +window/size/viewport_height=320 +window/size/mode=2 window/stretch/mode="canvas_items" [gui] -theme/custom_font="res://assets/fonts-shaders/Ldfcomicsans-jj7l.ttf" +theme/custom_font="res://assets/fonts-shaders/PixelifySans-Regular.ttf" [input] @@ -120,3 +123,12 @@ esc={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } + +[layer_names] + +2d_physics/layer_1="Walls" +2d_physics/layer_2="Players" +2d_physics/layer_3="KidHurtbox" +2d_physics/layer_4="MonsterHurtbox" +2d_physics/layer_5="KidAttack" +2d_physics/layer_6="MonsterAttack" diff --git a/source/scenes/cut_scenes/pre_game_cut_scene.gd b/source/scenes/cut_scenes/pre_game_cut_scene.gd new file mode 100644 index 00000000..0c1e39b1 --- /dev/null +++ b/source/scenes/cut_scenes/pre_game_cut_scene.gd @@ -0,0 +1,4 @@ +extends Node2D + +func _on_continue_button_pressed() -> void: + get_parent().get_parent().switch_to_scene("CharacterSelect") diff --git a/source/scenes/cut_scenes/pre_game_cut_scene.tscn b/source/scenes/cut_scenes/pre_game_cut_scene.tscn index 41c514b5..14f5be47 100644 --- a/source/scenes/cut_scenes/pre_game_cut_scene.tscn +++ b/source/scenes/cut_scenes/pre_game_cut_scene.tscn @@ -1,23 +1,26 @@ [gd_scene load_steps=2 format=3 uid="uid://bn5ejiljdkkwe"] -[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_dulpl"] +[ext_resource type="Script" path="res://source/scenes/cut_scenes/pre_game_cut_scene.gd" id="1_cs6en"] [node name="PreGameCutScene" type="Node2D"] +script = ExtResource("1_cs6en") -[node name="CutSceneOverButton" type="Button" parent="."] -offset_right = 128.0 -offset_bottom = 31.0 -text = "[CutSceneOver]" -script = ExtResource("1_dulpl") -switch_to = 11 +[node name="ContinueButton" type="Button" parent="."] +offset_left = 202.0 +offset_top = 191.0 +offset_right = 330.0 +offset_bottom = 222.0 +text = "Continue" -[node name="THIS SCENE IS TEMP" type="Label" parent="."] -offset_left = 142.0 -offset_top = 130.0 -offset_right = 1088.0 -offset_bottom = 231.0 -text = "Pre Game Cut Scene -THIS SCENE IS TEMP -delete the button and trigger the next scene at the end of the cutscene animation -(use GameContainer.GAME_CONTAINER.switch_to_scene(GameContainer.Scene.RANDOM_STAGE) -(you can call it from any script)" +[node name="CutSceneLabel" type="Label" parent="."] +offset_left = 19.0 +offset_top = 27.0 +offset_right = 544.0 +offset_bottom = 139.0 +text = "4 kids enter a spooky, haunted mansion on halloween night, looking for fun + +But they find a cursed amulet that transforms them into monsters! + +Now they must fight amongst themselves for the powerful amulet!" + +[connection signal="pressed" from="ContinueButton" to="." method="_on_continue_button_pressed"] diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 293ba43e..9b296932 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -26,8 +26,6 @@ position = Vector2(156, -2) collision_mask = 2 metadata/player_num = 4 -[node name="Camera2D" type="Camera2D" parent="."] - [node name="ItemSelectorPortal" parent="." instance=ExtResource("4_nji7u")] position = Vector2(86, -110) diff --git a/source/scenes/game_container/game_container.gd b/source/scenes/game_container/game_container.gd index 5a8a0ba7..83b38bd2 100644 --- a/source/scenes/game_container/game_container.gd +++ b/source/scenes/game_container/game_container.gd @@ -20,10 +20,7 @@ static var GAME_CONTAINER : GameContainer @onready var pre_game_cut_scene : PackedScene = preload("res://source/scenes/cut_scenes/pre_game_cut_scene.tscn") @onready var shop : PackedScene = preload("res://source/scenes/stages/shop.tscn") @onready var game_over : PackedScene = preload("res://source/scenes/menus/game_over.tscn") -@onready var stage1 : PackedScene = preload("res://source/scenes/stages/stage1.tscn") -@onready var stage2 : PackedScene = preload("res://source/scenes/stages/stage2.tscn") -@onready var stage3 : PackedScene = preload("res://source/scenes/stages/stage3.tscn") -@onready var stage4 : PackedScene = preload("res://source/scenes/stages/stage4.tscn") +@onready var stage1 : PackedScene = preload("res://source/stages/stage_template.tscn") @onready var scene_dict = { "MainMenu" : main_menu, @@ -34,10 +31,7 @@ static var GAME_CONTAINER : GameContainer "PreGameCutScene" : pre_game_cut_scene, "Shop" : shop, "GameOver" : game_over, - "Stage1" : stage1, - "Stage2" : stage2, - "Stage3" : stage3, - "Stage4" : stage4 + "Stage1" : stage1 } #Scoring @@ -70,17 +64,17 @@ func switch_to_scene(scene_name : String): #switch_active_scene(scene) func switch_active_scene(scene : PackedScene) : - if ActiveSceneHolder.get_child(0): + if ActiveSceneHolder.get_child_count() > 0: ActiveSceneHolder.get_child(0).queue_free() var s = scene.instantiate() ActiveSceneHolder.add_child(s) -func get_random_stage() -> PackedScene: - var r = int(randf() * 4) - if r == 0 : return stage1 - if r == 1 : return stage2 - if r == 2 : return stage3 - else : return stage4 +#func get_random_stage() -> PackedScene: + #var r = int(randf() * 4) + #if r == 0 : return stage1 + #if r == 1 : return stage2 + #if r == 2 : return stage3 + #else : return stage4 func award_point_to_player(player : int) : player_scores[player-1] += 1 diff --git a/source/scenes/game_container/game_container.tscn b/source/scenes/game_container/game_container.tscn index c8443dfa..161f6686 100644 --- a/source/scenes/game_container/game_container.tscn +++ b/source/scenes/game_container/game_container.tscn @@ -12,4 +12,4 @@ script = ExtResource("1_nfc83") [node name="Players" type="Node2D" parent="."] [node name="Camera2D" type="Camera2D" parent="."] -position = Vector2(576, 324) +position = Vector2(256, 160) diff --git a/source/scenes/menus/character_select.gd b/source/scenes/menus/character_select.gd new file mode 100644 index 00000000..db0eec36 --- /dev/null +++ b/source/scenes/menus/character_select.gd @@ -0,0 +1,4 @@ +extends Node2D + +func _on_play_button_pressed() -> void: + get_parent().get_parent().switch_to_scene("Stage1") diff --git a/source/scenes/menus/character_select.tscn b/source/scenes/menus/character_select.tscn index 944640b2..aa7785c7 100644 --- a/source/scenes/menus/character_select.tscn +++ b/source/scenes/menus/character_select.tscn @@ -1,22 +1,25 @@ [gd_scene load_steps=2 format=3 uid="uid://dmg3rcypapom8"] -[ext_resource type="Script" path="res://source/scenes/game_container/switch_to_scene.gd" id="1_bh3vu"] +[ext_resource type="Script" path="res://source/scenes/menus/character_select.gd" id="1_f0ogi"] [node name="CharacterSelect" type="Node2D"] +script = ExtResource("1_f0ogi") [node name="PlayButton" type="Button" parent="."] -offset_right = 8.0 -offset_bottom = 8.0 +offset_left = 234.0 +offset_top = 137.0 +offset_right = 272.0 +offset_bottom = 165.0 text = "Play" -script = ExtResource("1_bh3vu") -switch_to = 4 [node name="THIS SCENE IS TEMP" type="Label" parent="."] -offset_left = 144.0 -offset_top = 130.0 -offset_right = 308.0 -offset_bottom = 179.0 +offset_left = 181.0 +offset_top = 35.0 +offset_right = 345.0 +offset_bottom = 101.0 text = "Character Select THIS SCENE IS TEMP Aidan will replace " + +[connection signal="pressed" from="PlayButton" to="." method="_on_play_button_pressed"] diff --git a/source/scenes/menus/credits.tscn b/source/scenes/menus/credits.tscn index 1126d7fb..f59f96da 100644 --- a/source/scenes/menus/credits.tscn +++ b/source/scenes/menus/credits.tscn @@ -6,19 +6,19 @@ script = ExtResource("1_y2hqy") [node name="CreditsLabel" type="Label" parent="."] -offset_left = 295.0 -offset_top = 83.0 -offset_right = 823.0 -offset_bottom = 278.0 -theme_override_font_sizes/font_size = 166 +offset_left = 119.0 +offset_top = 15.0 +offset_right = 387.0 +offset_bottom = 85.0 +theme_override_font_sizes/font_size = 50 text = "Credits" horizontal_alignment = 1 [node name="Label" type="Label" parent="."] -offset_left = 266.0 -offset_top = 276.0 -offset_right = 831.0 -offset_bottom = 434.0 +offset_left = 27.0 +offset_top = 109.0 +offset_right = 644.0 +offset_bottom = 267.0 text = "Kedrick Fudala - Lead Designer, Part-time programmer Luke Webb - Lead Programmer, part-time networks and cloud computing person Joey Giordano - Personality Hire, did some stuff diff --git a/source/scenes/menus/instructions.tscn b/source/scenes/menus/instructions.tscn index ecf8cdb5..12e6ef80 100644 --- a/source/scenes/menus/instructions.tscn +++ b/source/scenes/menus/instructions.tscn @@ -6,19 +6,19 @@ script = ExtResource("1_g7wwq") [node name="InstructionsLabel" type="Label" parent="."] -offset_left = 283.0 -offset_top = 105.0 -offset_right = 796.0 -offset_bottom = 223.0 -theme_override_font_sizes/font_size = 101 +offset_left = 7.0 +offset_top = 16.0 +offset_right = 520.0 +offset_bottom = 134.0 +theme_override_font_sizes/font_size = 50 text = "Instructions" horizontal_alignment = 1 [node name="BackButton" type="Button" parent="."] -offset_left = 516.0 -offset_top = 328.0 -offset_right = 558.0 -offset_bottom = 356.0 +offset_left = 225.0 +offset_top = 190.0 +offset_right = 267.0 +offset_bottom = 218.0 text = "Back" [connection signal="pressed" from="BackButton" to="." method="_on_back_button_pressed"] diff --git a/source/scenes/menus/main_menu.tscn b/source/scenes/menus/main_menu.tscn index 1df4249c..60e63192 100644 --- a/source/scenes/menus/main_menu.tscn +++ b/source/scenes/menus/main_menu.tscn @@ -6,40 +6,40 @@ script = ExtResource("1_y2x06") [node name="MainMenuLabel" type="Label" parent="."] -offset_left = 314.0 -offset_top = 80.0 -offset_right = 779.0 -offset_bottom = 169.0 +offset_left = 8.0 +offset_top = 11.0 +offset_right = 500.0 +offset_bottom = 101.0 theme_override_font_sizes/font_size = 75 text = "Hallow's Thief" horizontal_alignment = 1 [node name="PlayButton" type="Button" parent="."] -offset_left = 513.0 -offset_top = 182.0 -offset_right = 554.0 -offset_bottom = 213.0 +offset_left = 143.0 +offset_top = 124.0 +offset_right = 184.0 +offset_bottom = 155.0 text = "Play" [node name="CreditsButton" type="Button" parent="."] -offset_left = 506.0 -offset_top = 280.0 -offset_right = 569.0 -offset_bottom = 311.0 +offset_left = 132.0 +offset_top = 191.0 +offset_right = 200.0 +offset_bottom = 222.0 text = "Credits" [node name="InstructionsButton" type="Button" parent="."] -offset_left = 482.0 -offset_top = 225.0 -offset_right = 583.0 -offset_bottom = 256.0 +offset_left = 268.0 +offset_top = 129.0 +offset_right = 380.0 +offset_bottom = 160.0 text = "Instructions" [node name="QuitButton" type="Button" parent="."] -offset_left = 488.0 -offset_top = 336.0 -offset_right = 589.0 -offset_bottom = 367.0 +offset_left = 275.0 +offset_top = 196.0 +offset_right = 376.0 +offset_bottom = 227.0 text = "Quit" [connection signal="pressed" from="PlayButton" to="." method="_on_play_button_pressed"] diff --git a/source/scenes/stages/stage1.tscn b/source/scenes/stages/stage1.tscn index c99dfe69..00b57da4 100644 --- a/source/scenes/stages/stage1.tscn +++ b/source/scenes/stages/stage1.tscn @@ -9,7 +9,6 @@ offset_right = 8.0 offset_bottom = 8.0 text = "[StageOver]" script = ExtResource("1_g1qqk") -switch_to = 6 [node name="THIS SCENE IS TEMP" type="Label" parent="."] offset_left = 117.0 diff --git a/source/stages/stage_template.tscn b/source/stages/stage_template.tscn index 607475cf..8d068107 100644 --- a/source/stages/stage_template.tscn +++ b/source/stages/stage_template.tscn @@ -1,4 +1,28 @@ -[gd_scene format=3 uid="uid://dfbde6txjyuca"] +[gd_scene load_steps=4 format=4 uid="uid://dfbde6txjyuca"] + +[ext_resource type="Texture2D" uid="uid://cqcwfcwamles7" path="res://assets/tiles/BaseRoomTiles.png" id="1_1b230"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_j2huj"] +texture = ExtResource("1_1b230") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +1:0/0 = 0 +2:0/0 = 0 +2:1/0 = 0 +1:1/0 = 0 +0:1/0 = 0 +0:2/0 = 0 +1:2/0 = 0 +2:2/0 = 0 +2:3/0 = 0 +1:3/0 = 0 +0:3/0 = 0 + +[sub_resource type="TileSet" id="TileSet_ruhe0"] +tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 0 +physics_layer_0/collision_mask = 0 +sources/0 = SubResource("TileSetAtlasSource_j2huj") [node name="StageTemplate" type="Node2D"] @@ -6,3 +30,7 @@ offset_right = 40.0 offset_bottom = 23.0 text = "Temp Room" + +[node name="Floor" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAPAAAAAAABAAIAAAAPAAEAAAABAAIAAAAPAAIAAAABAAIAAAAPAAMAAAABAAIAAAAPAAQAAAABAAIAAAAPAAUAAAABAAIAAAAPAAYAAAABAAIAAAAPAAcAAAABAAIAAAAPAAgAAAABAAIAAAAPAAkAAAABAAIAAAAOAAkAAAABAAIAAAANAAkAAAABAAIAAAAMAAkAAAABAAIAAAALAAkAAAABAAIAAAAKAAkAAAABAAIAAAAJAAkAAAABAAIAAAAIAAkAAAABAAIAAAAHAAkAAAABAAIAAAAGAAkAAAABAAIAAAAFAAkAAAABAAIAAAAEAAkAAAABAAIAAAADAAkAAAABAAIAAAACAAkAAAABAAIAAAABAAkAAAABAAIAAAAAAAkAAAABAAIAAAAAAAgAAAABAAIAAAAAAAcAAAABAAIAAAAAAAYAAAABAAIAAAAAAAUAAAABAAIAAAAAAAQAAAABAAIAAAAAAAMAAAABAAIAAAAAAAIAAAABAAIAAAAAAAEAAAABAAIAAAAAAAAAAAABAAIAAAABAAAAAAABAAIAAAACAAAAAAABAAIAAAADAAAAAAABAAIAAAAEAAAAAAABAAIAAAAFAAAAAAABAAIAAAAGAAAAAAABAAIAAAAHAAAAAAABAAIAAAAIAAAAAAABAAIAAAAJAAAAAAABAAIAAAAKAAAAAAABAAIAAAALAAAAAAABAAIAAAAMAAAAAAABAAIAAAANAAAAAAABAAIAAAAOAAAAAAABAAIAAAAEAAYAAAABAAIAAAAEAAUAAAABAAIAAAAEAAQAAAABAAIAAAAEAAMAAAABAAIAAAAEAAIAAAABAAIAAAAEAAEAAAABAAIAAAADAAEAAAABAAIAAAACAAEAAAABAAIAAAABAAEAAAABAAIAAAABAAIAAAABAAIAAAABAAMAAAABAAIAAAABAAQAAAABAAIAAAABAAUAAAABAAIAAAABAAYAAAABAAIAAAABAAcAAAABAAIAAAABAAgAAAABAAIAAAACAAgAAAABAAIAAAACAAcAAAABAAIAAAACAAYAAAABAAIAAAACAAUAAAABAAIAAAACAAQAAAABAAIAAAACAAMAAAABAAIAAAACAAIAAAABAAIAAAADAAIAAAABAAIAAAADAAMAAAABAAIAAAADAAQAAAABAAIAAAADAAUAAAABAAIAAAADAAYAAAABAAIAAAADAAcAAAABAAIAAAADAAgAAAABAAIAAAAEAAgAAAABAAIAAAAEAAcAAAABAAIAAAAFAAcAAAABAAIAAAAFAAYAAAABAAIAAAAFAAUAAAABAAIAAAAFAAQAAAABAAIAAAAFAAMAAAABAAIAAAAFAAIAAAABAAIAAAAFAAEAAAABAAIAAAAGAAEAAAABAAIAAAAGAAIAAAABAAIAAAAGAAMAAAABAAIAAAAGAAQAAAABAAIAAAAGAAUAAAABAAIAAAAGAAYAAAABAAIAAAAGAAcAAAABAAIAAAAGAAgAAAABAAIAAAAFAAgAAAABAAIAAAAHAAgAAAABAAIAAAAHAAcAAAABAAIAAAAHAAYAAAABAAIAAAAHAAUAAAABAAIAAAAHAAQAAAABAAIAAAAHAAMAAAABAAIAAAAHAAIAAAABAAIAAAAHAAEAAAABAAIAAAAIAAEAAAABAAIAAAAIAAIAAAABAAIAAAAIAAMAAAABAAIAAAAIAAQAAAABAAIAAAAIAAUAAAABAAIAAAAIAAYAAAABAAIAAAAIAAcAAAABAAIAAAAIAAgAAAABAAIAAAAJAAgAAAABAAIAAAAJAAcAAAABAAIAAAAJAAYAAAABAAIAAAAJAAUAAAABAAIAAAAJAAQAAAABAAIAAAAJAAMAAAABAAIAAAAJAAIAAAABAAIAAAAJAAEAAAABAAIAAAAKAAEAAAABAAIAAAAKAAIAAAABAAIAAAAKAAMAAAABAAIAAAAKAAQAAAABAAIAAAAKAAUAAAABAAIAAAAKAAYAAAABAAIAAAAKAAcAAAABAAIAAAAKAAgAAAABAAIAAAALAAgAAAABAAIAAAALAAcAAAABAAIAAAALAAYAAAABAAIAAAALAAUAAAABAAIAAAALAAQAAAABAAIAAAALAAMAAAABAAIAAAALAAIAAAABAAIAAAALAAEAAAABAAIAAAAMAAEAAAABAAIAAAAMAAIAAAABAAIAAAAMAAMAAAABAAIAAAAMAAQAAAABAAIAAAAMAAUAAAABAAIAAAAMAAYAAAABAAIAAAAMAAcAAAABAAIAAAAMAAgAAAABAAIAAAANAAgAAAABAAIAAAANAAcAAAABAAIAAAANAAYAAAABAAIAAAANAAUAAAABAAIAAAANAAQAAAABAAIAAAANAAMAAAABAAIAAAANAAIAAAABAAIAAAANAAEAAAABAAIAAAAOAAEAAAABAAIAAAAOAAIAAAABAAIAAAAOAAMAAAABAAIAAAAOAAQAAAABAAIAAAAOAAUAAAABAAIAAAAOAAYAAAABAAIAAAAOAAcAAAABAAIAAAAOAAgAAAABAAIAAAA=") +tile_set = SubResource("TileSet_ruhe0") From 3a790befabcc8f46ee9bb462d5a7f7b4c188dc4e Mon Sep 17 00:00:00 2001 From: lyrics00 Date: Thu, 7 Nov 2024 21:55:12 -0500 Subject: [PATCH 069/110] Added Framework for each character as well as animations and their own respective scene --- source/scenes/Frankenstein.tscn | 40 ++++++++++++++++ source/scenes/Ghost.tscn | 40 ++++++++++++++++ source/scenes/Pumpkin.tscn | 40 ++++++++++++++++ source/scenes/witch.tscn | 40 ++++++++++++++++ .../Characters/Frankenstein/frankenstein.gd | 47 +++++++++++++++++++ ...Frankenstein.gd => Frankenstein_combat.gd} | 0 source/scripts/Characters/Ghost/Ghost.gd | 47 +++++++++++++++++++ source/scripts/Characters/Pumpkin/Pumpkin.gd | 47 +++++++++++++++++++ source/scripts/Characters/witch/witch.gd | 47 +++++++++++++++++++ source/scripts/player.gd | 8 ++++ 10 files changed, 356 insertions(+) create mode 100644 source/scenes/Frankenstein.tscn create mode 100644 source/scenes/Ghost.tscn create mode 100644 source/scenes/Pumpkin.tscn create mode 100644 source/scenes/witch.tscn create mode 100644 source/scripts/Characters/Frankenstein/frankenstein.gd rename source/scripts/Characters/{Frankenstein.gd => Frankenstein_combat.gd} (100%) create mode 100644 source/scripts/Characters/Ghost/Ghost.gd create mode 100644 source/scripts/Characters/Pumpkin/Pumpkin.gd create mode 100644 source/scripts/Characters/witch/witch.gd diff --git a/source/scenes/Frankenstein.tscn b/source/scenes/Frankenstein.tscn new file mode 100644 index 00000000..efcc6bc8 --- /dev/null +++ b/source/scenes/Frankenstein.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=5 format=3 uid="uid://bqo0muvuvfr3a"] + +[ext_resource type="Script" path="res://source/scripts/Characters/Frankenstein/frankenstein.gd" id="1_yofpo"] +[ext_resource type="Script" path="res://source/item/stats_and_item_handler.gd" id="2_nu6ev"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_cjxe8"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_l8mj1"] + +[node name="Frankenstein" type="Node2D"] + +[node name="Frankenstein" type="CharacterBody2D" parent="."] +script = ExtResource("1_yofpo") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Frankenstein"] +shape = SubResource("CapsuleShape2D_cjxe8") + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Frankenstein"] +position = Vector2(1.07288e-06, 1.90735e-06) +scale = Vector2(20, 15) +mesh = SubResource("CapsuleMesh_l8mj1") + +[node name="StatsAndItemHandler" type="Node2D" parent="Frankenstein"] +script = ExtResource("2_nu6ev") + +[node name="Sprite2D" type="Sprite2D" parent="Frankenstein"] + +[node name="HitAnimation" type="AnimatedSprite2D" parent="Frankenstein"] + +[node name="DeathAnimation" type="AnimatedSprite2D" parent="Frankenstein"] + +[node name="AttackAnimation" type="AnimatedSprite2D" parent="Frankenstein"] + +[node name="RunAnimation" type="AnimatedSprite2D" parent="Frankenstein"] + +[node name="IdleAnimation" type="AnimatedSprite2D" parent="Frankenstein"] + +[node name="DashAnimation" type="AnimatedSprite2D" parent="Frankenstein"] + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Frankenstein"] diff --git a/source/scenes/Ghost.tscn b/source/scenes/Ghost.tscn new file mode 100644 index 00000000..548da66f --- /dev/null +++ b/source/scenes/Ghost.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=5 format=3 uid="uid://0k0waj14uda1"] + +[ext_resource type="Script" path="res://source/scripts/Characters/Ghost/Ghost.gd" id="1_1wort"] +[ext_resource type="Script" path="res://source/item/stats_and_item_handler.gd" id="2_es7fm"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_k7oto"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_un2vp"] + +[node name="Ghost" type="Node2D"] + +[node name="Ghost" type="CharacterBody2D" parent="."] +script = ExtResource("1_1wort") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Ghost"] +shape = SubResource("CapsuleShape2D_k7oto") + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Ghost"] +position = Vector2(1.07288e-06, 1.90735e-06) +scale = Vector2(20, 15) +mesh = SubResource("CapsuleMesh_un2vp") + +[node name="StatsAndItemHandler" type="Node2D" parent="Ghost"] +script = ExtResource("2_es7fm") + +[node name="Sprite2D" type="Sprite2D" parent="Ghost"] + +[node name="HitAnimation" type="AnimatedSprite2D" parent="Ghost"] + +[node name="DeathAnimation" type="AnimatedSprite2D" parent="Ghost"] + +[node name="AttackAnimation" type="AnimatedSprite2D" parent="Ghost"] + +[node name="RunAnimation" type="AnimatedSprite2D" parent="Ghost"] + +[node name="IdleAnimation" type="AnimatedSprite2D" parent="Ghost"] + +[node name="DashAnimation" type="AnimatedSprite2D" parent="Ghost"] + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Ghost"] diff --git a/source/scenes/Pumpkin.tscn b/source/scenes/Pumpkin.tscn new file mode 100644 index 00000000..ebb6e75f --- /dev/null +++ b/source/scenes/Pumpkin.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=5 format=3 uid="uid://djgr3k2dw0dii"] + +[ext_resource type="Script" path="res://source/scripts/Characters/Pumpkin/Pumpkin.gd" id="1_bhd0q"] +[ext_resource type="Script" path="res://source/item/stats_and_item_handler.gd" id="2_06xgp"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1i1nm"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_xfdqp"] + +[node name="Pumpkin" type="Node2D"] + +[node name="Pumpkin" type="CharacterBody2D" parent="."] +script = ExtResource("1_bhd0q") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Pumpkin"] +shape = SubResource("CapsuleShape2D_1i1nm") + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Pumpkin"] +position = Vector2(1.07288e-06, 1.90735e-06) +scale = Vector2(20, 15) +mesh = SubResource("CapsuleMesh_xfdqp") + +[node name="StatsAndItemHandler" type="Node2D" parent="Pumpkin"] +script = ExtResource("2_06xgp") + +[node name="Sprite2D" type="Sprite2D" parent="Pumpkin"] + +[node name="HitAnimation" type="AnimatedSprite2D" parent="Pumpkin"] + +[node name="DeathAnimation" type="AnimatedSprite2D" parent="Pumpkin"] + +[node name="AttackAnimation" type="AnimatedSprite2D" parent="Pumpkin"] + +[node name="RunAnimation" type="AnimatedSprite2D" parent="Pumpkin"] + +[node name="IdleAnimation" type="AnimatedSprite2D" parent="Pumpkin"] + +[node name="DashAnimation" type="AnimatedSprite2D" parent="Pumpkin"] + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Pumpkin"] diff --git a/source/scenes/witch.tscn b/source/scenes/witch.tscn new file mode 100644 index 00000000..4ee5c597 --- /dev/null +++ b/source/scenes/witch.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=5 format=3 uid="uid://csilpu7igk7nd"] + +[ext_resource type="Script" path="res://source/scripts/Characters/witch/witch.gd" id="1_r2060"] +[ext_resource type="Script" path="res://source/item/stats_and_item_handler.gd" id="2_g1yy8"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_cxp2e"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_0kinu"] + +[node name="Witch" type="Node2D"] + +[node name="Witch" type="CharacterBody2D" parent="."] +script = ExtResource("1_r2060") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Witch"] +shape = SubResource("CapsuleShape2D_cxp2e") + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Witch"] +position = Vector2(1.07288e-06, 1.90735e-06) +scale = Vector2(20, 15) +mesh = SubResource("CapsuleMesh_0kinu") + +[node name="StatsAndItemHandler" type="Node2D" parent="Witch"] +script = ExtResource("2_g1yy8") + +[node name="Sprite2D" type="Sprite2D" parent="Witch"] + +[node name="HitAnimation" type="AnimatedSprite2D" parent="Witch"] + +[node name="DeathAnimation" type="AnimatedSprite2D" parent="Witch"] + +[node name="AttackAnimation" type="AnimatedSprite2D" parent="Witch"] + +[node name="RunAnimation" type="AnimatedSprite2D" parent="Witch"] + +[node name="IdleAnimation" type="AnimatedSprite2D" parent="Witch"] + +[node name="DashAnimation" type="AnimatedSprite2D" parent="Witch"] + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Witch"] diff --git a/source/scripts/Characters/Frankenstein/frankenstein.gd b/source/scripts/Characters/Frankenstein/frankenstein.gd new file mode 100644 index 00000000..523659e6 --- /dev/null +++ b/source/scripts/Characters/Frankenstein/frankenstein.gd @@ -0,0 +1,47 @@ +extends Player + +class_name Frankeinstein + +var sprite #preload() +@onready var hit_animation = $HitAnimation +@onready var death_animation = $DeathAnimation +@onready var attack_animation = $AttackAnimation +@onready var run_animation = $RunAnimation +@onready var idle_animation = $IdleAnimation +@onready var dash_animation = $DashAnimation +@onready var animator = $AnimationPlayer + + +func _ready(): + pass +func _process(delta: float) -> void: + check_moving() + #check these as well to determine if animation for hit or attack needs to be played. + # check_attack() + # check_hit() + + +func hitAnimation(): + animator.play(hit_animation) + +func attackAnimation(): + animator.play(attack_animation) + +func check_moving(): + if(dash): + dashAnimation() + elif(self.movement != Vector2.ZERO): + runAnimation() + elif (self.movement == Vector2.ZERO): + idleAnimation() + +func runAnimation(): + if(animator.current_animation != run_animation): + animator.play(run_animation) +func dashAnimation(): + if(animator.current_animation != run_animation): + animator.play(dash_animation) + +func idleAnimation(): + if(animator.current_animation != run_animation): + animator.play(idle_animation) diff --git a/source/scripts/Characters/Frankenstein.gd b/source/scripts/Characters/Frankenstein_combat.gd similarity index 100% rename from source/scripts/Characters/Frankenstein.gd rename to source/scripts/Characters/Frankenstein_combat.gd diff --git a/source/scripts/Characters/Ghost/Ghost.gd b/source/scripts/Characters/Ghost/Ghost.gd new file mode 100644 index 00000000..e301117c --- /dev/null +++ b/source/scripts/Characters/Ghost/Ghost.gd @@ -0,0 +1,47 @@ +extends Player + +class_name Ghost + +var sprite #preload() +@onready var hit_animation = $HitAnimation +@onready var death_animation = $DeathAnimation +@onready var attack_animation = $AttackAnimation +@onready var run_animation = $RunAnimation +@onready var idle_animation = $IdleAnimation +@onready var dash_animation = $DashAnimation +@onready var animator = $AnimationPlayer + + +func _ready(): + pass +func _process(delta: float) -> void: + check_moving() + #check these as well to determine if animation for hit or attack needs to be played. + # check_attack() + # check_hit() + + +func hitAnimation(): + animator.play(hit_animation) + +func attackAnimation(): + animator.play(attack_animation) + +func check_moving(): + if(dash): + dashAnimation() + elif(self.movement != Vector2.ZERO): + runAnimation() + elif (self.movement == Vector2.ZERO): + idleAnimation() + +func runAnimation(): + if(animator.current_animation != run_animation): + animator.play(run_animation) +func dashAnimation(): + if(animator.current_animation != run_animation): + animator.play(dash_animation) + +func idleAnimation(): + if(animator.current_animation != run_animation): + animator.play(idle_animation) diff --git a/source/scripts/Characters/Pumpkin/Pumpkin.gd b/source/scripts/Characters/Pumpkin/Pumpkin.gd new file mode 100644 index 00000000..c561de55 --- /dev/null +++ b/source/scripts/Characters/Pumpkin/Pumpkin.gd @@ -0,0 +1,47 @@ +extends Player + +class_name Pumpkin + +var sprite #preload() +@onready var hit_animation = $HitAnimation +@onready var death_animation = $DeathAnimation +@onready var attack_animation = $AttackAnimation +@onready var run_animation = $RunAnimation +@onready var idle_animation = $IdleAnimation +@onready var dash_animation = $DashAnimation +@onready var animator = $AnimationPlayer + + +func _ready(): + pass +func _process(delta: float) -> void: + check_moving() + #check these as well to determine if animation for hit or attack needs to be played. + # check_attack() + # check_hit() + + +func hitAnimation(): + animator.play(hit_animation) + +func attackAnimation(): + animator.play(attack_animation) + +func check_moving(): + if(dash): + dashAnimation() + elif(self.movement != Vector2.ZERO): + runAnimation() + elif (self.movement == Vector2.ZERO): + idleAnimation() + +func runAnimation(): + if(animator.current_animation != run_animation): + animator.play(run_animation) +func dashAnimation(): + if(animator.current_animation != run_animation): + animator.play(dash_animation) + +func idleAnimation(): + if(animator.current_animation != run_animation): + animator.play(idle_animation) diff --git a/source/scripts/Characters/witch/witch.gd b/source/scripts/Characters/witch/witch.gd new file mode 100644 index 00000000..5b530143 --- /dev/null +++ b/source/scripts/Characters/witch/witch.gd @@ -0,0 +1,47 @@ +extends Player + +class_name Witch + +var sprite #preload() +@onready var hit_animation = $HitAnimation +@onready var death_animation = $DeathAnimation +@onready var attack_animation = $AttackAnimation +@onready var run_animation = $RunAnimation +@onready var idle_animation = $IdleAnimation +@onready var dash_animation = $DashAnimation +@onready var animator = $AnimationPlayer + + +func _ready(): + pass +func _process(delta: float) -> void: + check_moving() + #check these as well to determine if animation for hit or attack needs to be played. + # check_attack() + # check_hit() + + +func hitAnimation(): + animator.play(hit_animation) + +func attackAnimation(): + animator.play(attack_animation) + +func check_moving(): + if(dash): + dashAnimation() + elif(self.movement != Vector2.ZERO): + runAnimation() + elif (self.movement == Vector2.ZERO): + idleAnimation() + +func runAnimation(): + if(animator.current_animation != run_animation): + animator.play(run_animation) +func dashAnimation(): + if(animator.current_animation != run_animation): + animator.play(dash_animation) + +func idleAnimation(): + if(animator.current_animation != run_animation): + animator.play(idle_animation) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 4d6aab07..21deb115 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -10,6 +10,14 @@ var ACCELERATION := 15.0 var DECELERATION := 15.0 var dash: bool +#These are placeholder sprites for each character +var sprite_list: Array = [preload("res://source/Items_Final/Item_Resources/BakingSoda.tres"), preload("res://source/Items_Final/Item_Resources/BaseballBat.tres"), +preload("res://source/Items_Final/Item_Resources/BaseballCap.tres"), preload("res://source/Items_Final/Item_Resources/BoxingGloves.tres")] + +#keep doing for each type of animation +var run_animations: Array = [null, null, null, null] +var hit_animations: Array = [null, null, null, null] + func _ready() -> void: pass From c5e693dd8e6a812bcdbd9c24fdb40fa75c31595c Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:33:40 -0500 Subject: [PATCH 070/110] settings menu bug fixes settings menu pauses game and closes item selector menu, settings menu Z index = 1 in DemoRoom --- source/scenes/demo_room.tscn | 1 + source/scenes/settings.tscn | 1 + source/scripts/player.gd | 3 ++- source/scripts/settings.gd | 12 ++++++++++-- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 293ba43e..bb5f1411 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -41,6 +41,7 @@ script = ExtResource("2_c3313") [node name="Settings" parent="." instance=ExtResource("3_c83ju")] visible = false +z_index = 1 offset_left = -508.0 offset_top = -258.0 offset_right = 516.0 diff --git a/source/scenes/settings.tscn b/source/scenes/settings.tscn index 0d459722..7abcad16 100644 --- a/source/scenes/settings.tscn +++ b/source/scenes/settings.tscn @@ -6,6 +6,7 @@ [sub_resource type="CanvasTexture" id="CanvasTexture_awq37"] [node name="Settings" type="Control"] +process_mode = 3 layout_mode = 3 anchors_preset = 0 offset_right = 1024.0 diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 1a0abaff..e085756f 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -2,6 +2,7 @@ extends CharacterBody2D class_name Player +var player_num var Speed := 0.0 var movement := Vector2.ZERO @@ -29,13 +30,13 @@ var onGetHitFunctions : Array[Callable]#When this one is called. should also cal #@onready var statusEffects : StatusEffectManager = $StatusEffectManager func _ready() -> void: + player_num = str(get_meta("player_num")) pass func _process(delta) -> void: handle_move() func handle_move() -> void: - var player_num = str(get_meta("player_num")) movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() if movement.length() : diff --git a/source/scripts/settings.gd b/source/scripts/settings.gd index fff31599..ebdadaaf 100644 --- a/source/scripts/settings.gd +++ b/source/scripts/settings.gd @@ -14,8 +14,16 @@ func _ready(): func _process(delta): if Input.is_action_just_pressed("esc"): - if visible: visible = false - else: visible = true + if visible: + visible = false + get_tree().paused = false + if(get_node("..").has_node("ItemSelector")): + get_node("../ItemSelector").visible = true + else: + visible = true + get_tree().paused = true + if(get_node("..").has_node("ItemSelector")): + get_node("../ItemSelector").visible = false for node in vbox.get_children(): if node.has_meta("player_num"): From 9cc318c3d86c9d9c638b16b14f6b722ad55a4b05 Mon Sep 17 00:00:00 2001 From: kedrickfudala Date: Sat, 9 Nov 2024 16:33:40 -0500 Subject: [PATCH 071/110] character select work --- project.godot | 4 ++ source/gui/player_select_toggles.gd | 2 + source/gui/player_select_toggles.tscn | 28 ++++++++++ source/scenes/menus/character_select.gd | 32 +++++++++++- source/scenes/menus/character_select.tscn | 62 ++++++++++++++++++----- source/scenes/menus/credits.tscn | 17 ++++--- source/scenes/menus/main_menu.tscn | 6 +-- source/stages/stage_template.tscn | 13 +++++ 8 files changed, 137 insertions(+), 27 deletions(-) create mode 100644 source/gui/player_select_toggles.gd create mode 100644 source/gui/player_select_toggles.tscn diff --git a/project.godot b/project.godot index 48b31441..b634493b 100644 --- a/project.godot +++ b/project.godot @@ -132,3 +132,7 @@ esc={ 2d_physics/layer_4="MonsterHurtbox" 2d_physics/layer_5="KidAttack" 2d_physics/layer_6="MonsterAttack" + +[rendering] + +textures/canvas_textures/default_texture_filter=0 diff --git a/source/gui/player_select_toggles.gd b/source/gui/player_select_toggles.gd new file mode 100644 index 00000000..216144ff --- /dev/null +++ b/source/gui/player_select_toggles.gd @@ -0,0 +1,2 @@ +extends Control +class_name PlayerSelectToggles diff --git a/source/gui/player_select_toggles.tscn b/source/gui/player_select_toggles.tscn new file mode 100644 index 00000000..176644d2 --- /dev/null +++ b/source/gui/player_select_toggles.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=2 format=3 uid="uid://dc203puiqpnsq"] + +[ext_resource type="Script" path="res://source/gui/player_select_toggles.gd" id="1_8og8h"] + +[node name="PlayerSelectToggles" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_8og8h") + +[node name="Sprite2D" type="Sprite2D" parent="."] + +[node name="LeftButton" type="Button" parent="."] +offset_left = 43.0 +offset_top = 215.0 +offset_right = 68.0 +offset_bottom = 243.0 +text = "<" + +[node name="RightButton" type="Button" parent="."] +offset_left = 88.0 +offset_top = 215.0 +offset_right = 113.0 +offset_bottom = 243.0 +text = ">" diff --git a/source/scenes/menus/character_select.gd b/source/scenes/menus/character_select.gd index db0eec36..4ef2a2ee 100644 --- a/source/scenes/menus/character_select.gd +++ b/source/scenes/menus/character_select.gd @@ -1,4 +1,32 @@ extends Node2D -func _on_play_button_pressed() -> void: - get_parent().get_parent().switch_to_scene("Stage1") +enum {NONE, FRANKENSTEIN, PUMPKIN, WITCH, GHOST} + +@onready var test = $test +@onready var hbox_container = $HBoxContainer +@onready var player_count : int = 2 +@onready var player_classes = [NONE, NONE, NONE, NONE] + +func _physics_process(delta: float) -> void: + test.text = str("Player Count: ") + str(player_count) + str(" ") + str(player_classes) + +func _on_start_button_pressed() -> void: + var counter = 0 + for x in player_classes: + if x == NONE: + counter += 1 + if counter != 4: + get_parent().get_parent().switch_to_scene("Stage1") + +func _on_left_button_1_pressed() -> void: + player_classes[0] -= 1 +func _on_right_button_1_pressed() -> void: + player_classes[0] += 1 + +func _on_remove_player_button_pressed() -> void: + if player_count > 2: + player_count -= 1 + +func _on_add_player_button_pressed() -> void: + if player_count < 4: + player_count += 1 diff --git a/source/scenes/menus/character_select.tscn b/source/scenes/menus/character_select.tscn index aa7785c7..d3be6ea1 100644 --- a/source/scenes/menus/character_select.tscn +++ b/source/scenes/menus/character_select.tscn @@ -5,21 +5,55 @@ [node name="CharacterSelect" type="Node2D"] script = ExtResource("1_f0ogi") -[node name="PlayButton" type="Button" parent="."] -offset_left = 234.0 -offset_top = 137.0 -offset_right = 272.0 -offset_bottom = 165.0 -text = "Play" - -[node name="THIS SCENE IS TEMP" type="Label" parent="."] +[node name="CharacterSelectLabel" type="Label" parent="."] offset_left = 181.0 offset_top = 35.0 -offset_right = 345.0 +offset_right = 324.0 offset_bottom = 101.0 -text = "Character Select -THIS SCENE IS TEMP -Aidan will replace -" +text = "Character Select" -[connection signal="pressed" from="PlayButton" to="." method="_on_play_button_pressed"] +[node name="test" type="Label" parent="."] +offset_left = 226.0 +offset_top = 81.0 +offset_right = 266.0 +offset_bottom = 101.0 + +[node name="RemovePlayerButton" type="Button" parent="."] +offset_left = 216.0 +offset_top = 96.0 +offset_right = 241.0 +offset_bottom = 124.0 +text = "-" + +[node name="AddPlayerButton" type="Button" parent="."] +offset_left = 261.0 +offset_top = 96.0 +offset_right = 286.0 +offset_bottom = 124.0 +text = "+" + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -1.0 +offset_top = -1.0 +offset_right = 359.0 +offset_bottom = 344.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 120 +alignment = 1 + +[node name="StartButton" type="Button" parent="."] +offset_left = 240.0 +offset_top = 261.0 +offset_right = 299.0 +offset_bottom = 289.0 +text = "Start" + +[connection signal="pressed" from="RemovePlayerButton" to="." method="_on_remove_player_button_pressed"] +[connection signal="pressed" from="AddPlayerButton" to="." method="_on_add_player_button_pressed"] +[connection signal="pressed" from="StartButton" to="." method="_on_start_button_pressed"] diff --git a/source/scenes/menus/credits.tscn b/source/scenes/menus/credits.tscn index f59f96da..32009b53 100644 --- a/source/scenes/menus/credits.tscn +++ b/source/scenes/menus/credits.tscn @@ -15,10 +15,11 @@ text = "Credits" horizontal_alignment = 1 [node name="Label" type="Label" parent="."] -offset_left = 27.0 -offset_top = 109.0 -offset_right = 644.0 -offset_bottom = 267.0 +offset_left = 43.0 +offset_top = 96.0 +offset_right = 660.0 +offset_bottom = 254.0 +theme_override_font_sizes/font_size = 10 text = "Kedrick Fudala - Lead Designer, Part-time programmer Luke Webb - Lead Programmer, part-time networks and cloud computing person Joey Giordano - Personality Hire, did some stuff @@ -28,10 +29,10 @@ Vincent Haseeb" [node name="BackButton" type="Button" parent="."] -offset_left = 533.0 -offset_top = 473.0 -offset_right = 575.0 -offset_bottom = 501.0 +offset_left = 236.0 +offset_top = 245.0 +offset_right = 282.0 +offset_bottom = 273.0 text = "Back" [connection signal="pressed" from="BackButton" to="." method="_on_back_button_pressed"] diff --git a/source/scenes/menus/main_menu.tscn b/source/scenes/menus/main_menu.tscn index 60e63192..d5916a64 100644 --- a/source/scenes/menus/main_menu.tscn +++ b/source/scenes/menus/main_menu.tscn @@ -7,10 +7,10 @@ script = ExtResource("1_y2x06") [node name="MainMenuLabel" type="Label" parent="."] offset_left = 8.0 -offset_top = 11.0 +offset_top = 26.0 offset_right = 500.0 -offset_bottom = 101.0 -theme_override_font_sizes/font_size = 75 +offset_bottom = 116.0 +theme_override_font_sizes/font_size = 60 text = "Hallow's Thief" horizontal_alignment = 1 diff --git a/source/stages/stage_template.tscn b/source/stages/stage_template.tscn index 8d068107..c30a9aed 100644 --- a/source/stages/stage_template.tscn +++ b/source/stages/stage_template.tscn @@ -6,16 +6,25 @@ texture = ExtResource("1_1b230") texture_region_size = Vector2i(32, 32) 0:0/0 = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 1:0/0 = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 2:0/0 = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 2:1/0 = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 1:1/0 = 0 +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:1/0 = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:2/0 = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, 16, -16, -16) 1:2/0 = 0 2:2/0 = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16) 2:3/0 = 0 1:3/0 = 0 +1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:3/0 = 0 [sub_resource type="TileSet" id="TileSet_ruhe0"] @@ -34,3 +43,7 @@ text = "Temp Room" [node name="Floor" type="TileMapLayer" parent="."] tile_map_data = PackedByteArray("AAAPAAAAAAABAAIAAAAPAAEAAAABAAIAAAAPAAIAAAABAAIAAAAPAAMAAAABAAIAAAAPAAQAAAABAAIAAAAPAAUAAAABAAIAAAAPAAYAAAABAAIAAAAPAAcAAAABAAIAAAAPAAgAAAABAAIAAAAPAAkAAAABAAIAAAAOAAkAAAABAAIAAAANAAkAAAABAAIAAAAMAAkAAAABAAIAAAALAAkAAAABAAIAAAAKAAkAAAABAAIAAAAJAAkAAAABAAIAAAAIAAkAAAABAAIAAAAHAAkAAAABAAIAAAAGAAkAAAABAAIAAAAFAAkAAAABAAIAAAAEAAkAAAABAAIAAAADAAkAAAABAAIAAAACAAkAAAABAAIAAAABAAkAAAABAAIAAAAAAAkAAAABAAIAAAAAAAgAAAABAAIAAAAAAAcAAAABAAIAAAAAAAYAAAABAAIAAAAAAAUAAAABAAIAAAAAAAQAAAABAAIAAAAAAAMAAAABAAIAAAAAAAIAAAABAAIAAAAAAAEAAAABAAIAAAAAAAAAAAABAAIAAAABAAAAAAABAAIAAAACAAAAAAABAAIAAAADAAAAAAABAAIAAAAEAAAAAAABAAIAAAAFAAAAAAABAAIAAAAGAAAAAAABAAIAAAAHAAAAAAABAAIAAAAIAAAAAAABAAIAAAAJAAAAAAABAAIAAAAKAAAAAAABAAIAAAALAAAAAAABAAIAAAAMAAAAAAABAAIAAAANAAAAAAABAAIAAAAOAAAAAAABAAIAAAAEAAYAAAABAAIAAAAEAAUAAAABAAIAAAAEAAQAAAABAAIAAAAEAAMAAAABAAIAAAAEAAIAAAABAAIAAAAEAAEAAAABAAIAAAADAAEAAAABAAIAAAACAAEAAAABAAIAAAABAAEAAAABAAIAAAABAAIAAAABAAIAAAABAAMAAAABAAIAAAABAAQAAAABAAIAAAABAAUAAAABAAIAAAABAAYAAAABAAIAAAABAAcAAAABAAIAAAABAAgAAAABAAIAAAACAAgAAAABAAIAAAACAAcAAAABAAIAAAACAAYAAAABAAIAAAACAAUAAAABAAIAAAACAAQAAAABAAIAAAACAAMAAAABAAIAAAACAAIAAAABAAIAAAADAAIAAAABAAIAAAADAAMAAAABAAIAAAADAAQAAAABAAIAAAADAAUAAAABAAIAAAADAAYAAAABAAIAAAADAAcAAAABAAIAAAADAAgAAAABAAIAAAAEAAgAAAABAAIAAAAEAAcAAAABAAIAAAAFAAcAAAABAAIAAAAFAAYAAAABAAIAAAAFAAUAAAABAAIAAAAFAAQAAAABAAIAAAAFAAMAAAABAAIAAAAFAAIAAAABAAIAAAAFAAEAAAABAAIAAAAGAAEAAAABAAIAAAAGAAIAAAABAAIAAAAGAAMAAAABAAIAAAAGAAQAAAABAAIAAAAGAAUAAAABAAIAAAAGAAYAAAABAAIAAAAGAAcAAAABAAIAAAAGAAgAAAABAAIAAAAFAAgAAAABAAIAAAAHAAgAAAABAAIAAAAHAAcAAAABAAIAAAAHAAYAAAABAAIAAAAHAAUAAAABAAIAAAAHAAQAAAABAAIAAAAHAAMAAAABAAIAAAAHAAIAAAABAAIAAAAHAAEAAAABAAIAAAAIAAEAAAABAAIAAAAIAAIAAAABAAIAAAAIAAMAAAABAAIAAAAIAAQAAAABAAIAAAAIAAUAAAABAAIAAAAIAAYAAAABAAIAAAAIAAcAAAABAAIAAAAIAAgAAAABAAIAAAAJAAgAAAABAAIAAAAJAAcAAAABAAIAAAAJAAYAAAABAAIAAAAJAAUAAAABAAIAAAAJAAQAAAABAAIAAAAJAAMAAAABAAIAAAAJAAIAAAABAAIAAAAJAAEAAAABAAIAAAAKAAEAAAABAAIAAAAKAAIAAAABAAIAAAAKAAMAAAABAAIAAAAKAAQAAAABAAIAAAAKAAUAAAABAAIAAAAKAAYAAAABAAIAAAAKAAcAAAABAAIAAAAKAAgAAAABAAIAAAALAAgAAAABAAIAAAALAAcAAAABAAIAAAALAAYAAAABAAIAAAALAAUAAAABAAIAAAALAAQAAAABAAIAAAALAAMAAAABAAIAAAALAAIAAAABAAIAAAALAAEAAAABAAIAAAAMAAEAAAABAAIAAAAMAAIAAAABAAIAAAAMAAMAAAABAAIAAAAMAAQAAAABAAIAAAAMAAUAAAABAAIAAAAMAAYAAAABAAIAAAAMAAcAAAABAAIAAAAMAAgAAAABAAIAAAANAAgAAAABAAIAAAANAAcAAAABAAIAAAANAAYAAAABAAIAAAANAAUAAAABAAIAAAANAAQAAAABAAIAAAANAAMAAAABAAIAAAANAAIAAAABAAIAAAANAAEAAAABAAIAAAAOAAEAAAABAAIAAAAOAAIAAAABAAIAAAAOAAMAAAABAAIAAAAOAAQAAAABAAIAAAAOAAUAAAABAAIAAAAOAAYAAAABAAIAAAAOAAcAAAABAAIAAAAOAAgAAAABAAIAAAA=") tile_set = SubResource("TileSet_ruhe0") + +[node name="Walls" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAAAAAAAABAAMAAAAPAAAAAAABAAMAAAAOAAAAAAABAAMAAAANAAAAAAABAAMAAAAMAAAAAAABAAMAAAALAAAAAAABAAMAAAAKAAAAAAABAAMAAAAJAAAAAAABAAMAAAAIAAAAAAABAAMAAAAHAAAAAAABAAMAAAAGAAAAAAABAAMAAAAFAAAAAAABAAMAAAAEAAAAAAABAAMAAAADAAAAAAABAAMAAAACAAAAAAABAAMAAAABAAAAAAABAAMAAAAAAAEAAAABAAMAAAAAAAIAAAABAAMAAAAAAAMAAAABAAMAAAAAAAQAAAABAAMAAAAAAAUAAAABAAMAAAAAAAYAAAABAAMAAAAAAAcAAAABAAMAAAAAAAgAAAABAAMAAAAAAAkAAAABAAMAAAABAAkAAAABAAMAAAACAAkAAAABAAMAAAADAAkAAAABAAMAAAAEAAkAAAABAAMAAAAFAAkAAAABAAMAAAAGAAkAAAABAAMAAAAHAAkAAAABAAMAAAAIAAkAAAABAAMAAAAJAAkAAAABAAMAAAAKAAkAAAABAAMAAAALAAkAAAABAAMAAAAMAAkAAAABAAMAAAANAAkAAAABAAMAAAAOAAkAAAABAAMAAAAPAAkAAAABAAMAAAAPAAgAAAABAAMAAAAPAAcAAAABAAMAAAAPAAYAAAABAAMAAAAPAAUAAAABAAMAAAAPAAQAAAABAAMAAAAPAAMAAAABAAMAAAAPAAIAAAABAAMAAAAPAAEAAAABAAMAAAABAAgAAAAAAAMAAAAOAAgAAAACAAMAAAABAAIAAAAAAAEAAAAOAAIAAAACAAEAAAAOAAEAAAACAAAAAAAOAAMAAAACAAIAAAABAAMAAAAAAAIAAAABAAEAAAAAAAAAAAACAAIAAAABAAEAAAADAAIAAAABAAEAAAAEAAIAAAABAAEAAAAFAAIAAAABAAEAAAAGAAIAAAABAAEAAAAHAAIAAAABAAEAAAAIAAIAAAABAAEAAAAJAAIAAAABAAEAAAAKAAIAAAABAAEAAAALAAIAAAABAAEAAAAMAAIAAAABAAEAAAANAAIAAAABAAEAAAACAAEAAAABAAAAAAADAAEAAAABAAAAAAAEAAEAAAABAAAAAAAFAAEAAAABAAAAAAAGAAEAAAABAAAAAAAHAAEAAAABAAAAAAAIAAEAAAABAAAAAAAJAAEAAAABAAAAAAAKAAEAAAABAAAAAAALAAEAAAABAAAAAAAMAAEAAAABAAAAAAANAAEAAAABAAAAAAA=") +tile_set = SubResource("TileSet_ruhe0") From b7ef7085b36eb09236b3a452e4f4e376c1eb0501 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Wed, 13 Nov 2024 23:18:32 -0500 Subject: [PATCH 072/110] Add lots of animation files --- source/anims/ghost_kid_idle/idle_down_1.png | Bin 0 -> 443 bytes .../ghost_kid_idle/idle_down_1.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_idle/idle_down_2.png | Bin 0 -> 418 bytes .../ghost_kid_idle/idle_down_2.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_idle/idle_left_1.png | Bin 0 -> 415 bytes .../ghost_kid_idle/idle_left_1.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_idle/idle_left_2.png | Bin 0 -> 396 bytes .../ghost_kid_idle/idle_left_2.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_idle/idle_right_1.png | Bin 0 -> 429 bytes .../ghost_kid_idle/idle_right_1.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_idle/idle_right_2.png | Bin 0 -> 405 bytes .../ghost_kid_idle/idle_right_2.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_idle/idle_up_1.png | Bin 0 -> 368 bytes .../anims/ghost_kid_idle/idle_up_1.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_idle/idle_up_2.png | Bin 0 -> 343 bytes .../anims/ghost_kid_idle/idle_up_2.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_down_1.png | Bin 0 -> 438 bytes .../ghost_kid_walk/walk_down_1.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_down_2.png | Bin 0 -> 438 bytes .../ghost_kid_walk/walk_down_2.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_left_1.png | Bin 0 -> 415 bytes .../ghost_kid_walk/walk_left_1.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_left_2.png | Bin 0 -> 410 bytes .../ghost_kid_walk/walk_left_2.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_left_3.png | Bin 0 -> 415 bytes .../ghost_kid_walk/walk_left_3.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_left_4.png | Bin 0 -> 410 bytes .../ghost_kid_walk/walk_left_4.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_right_1.png | Bin 0 -> 429 bytes .../ghost_kid_walk/walk_right_1.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_right_2.png | Bin 0 -> 426 bytes .../ghost_kid_walk/walk_right_2.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_right_3.png | Bin 0 -> 433 bytes .../ghost_kid_walk/walk_right_3.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_right_4.png | Bin 0 -> 426 bytes .../ghost_kid_walk/walk_right_4.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_up_1.png | Bin 0 -> 362 bytes .../anims/ghost_kid_walk/walk_up_1.png.import | 34 ++++++++++++++++++ source/anims/ghost_kid_walk/walk_up_2.png | Bin 0 -> 361 bytes .../anims/ghost_kid_walk/walk_up_2.png.import | 34 ++++++++++++++++++ 40 files changed, 680 insertions(+) create mode 100644 source/anims/ghost_kid_idle/idle_down_1.png create mode 100644 source/anims/ghost_kid_idle/idle_down_1.png.import create mode 100644 source/anims/ghost_kid_idle/idle_down_2.png create mode 100644 source/anims/ghost_kid_idle/idle_down_2.png.import create mode 100644 source/anims/ghost_kid_idle/idle_left_1.png create mode 100644 source/anims/ghost_kid_idle/idle_left_1.png.import create mode 100644 source/anims/ghost_kid_idle/idle_left_2.png create mode 100644 source/anims/ghost_kid_idle/idle_left_2.png.import create mode 100644 source/anims/ghost_kid_idle/idle_right_1.png create mode 100644 source/anims/ghost_kid_idle/idle_right_1.png.import create mode 100644 source/anims/ghost_kid_idle/idle_right_2.png create mode 100644 source/anims/ghost_kid_idle/idle_right_2.png.import create mode 100644 source/anims/ghost_kid_idle/idle_up_1.png create mode 100644 source/anims/ghost_kid_idle/idle_up_1.png.import create mode 100644 source/anims/ghost_kid_idle/idle_up_2.png create mode 100644 source/anims/ghost_kid_idle/idle_up_2.png.import create mode 100644 source/anims/ghost_kid_walk/walk_down_1.png create mode 100644 source/anims/ghost_kid_walk/walk_down_1.png.import create mode 100644 source/anims/ghost_kid_walk/walk_down_2.png create mode 100644 source/anims/ghost_kid_walk/walk_down_2.png.import create mode 100644 source/anims/ghost_kid_walk/walk_left_1.png create mode 100644 source/anims/ghost_kid_walk/walk_left_1.png.import create mode 100644 source/anims/ghost_kid_walk/walk_left_2.png create mode 100644 source/anims/ghost_kid_walk/walk_left_2.png.import create mode 100644 source/anims/ghost_kid_walk/walk_left_3.png create mode 100644 source/anims/ghost_kid_walk/walk_left_3.png.import create mode 100644 source/anims/ghost_kid_walk/walk_left_4.png create mode 100644 source/anims/ghost_kid_walk/walk_left_4.png.import create mode 100644 source/anims/ghost_kid_walk/walk_right_1.png create mode 100644 source/anims/ghost_kid_walk/walk_right_1.png.import create mode 100644 source/anims/ghost_kid_walk/walk_right_2.png create mode 100644 source/anims/ghost_kid_walk/walk_right_2.png.import create mode 100644 source/anims/ghost_kid_walk/walk_right_3.png create mode 100644 source/anims/ghost_kid_walk/walk_right_3.png.import create mode 100644 source/anims/ghost_kid_walk/walk_right_4.png create mode 100644 source/anims/ghost_kid_walk/walk_right_4.png.import create mode 100644 source/anims/ghost_kid_walk/walk_up_1.png create mode 100644 source/anims/ghost_kid_walk/walk_up_1.png.import create mode 100644 source/anims/ghost_kid_walk/walk_up_2.png create mode 100644 source/anims/ghost_kid_walk/walk_up_2.png.import diff --git a/source/anims/ghost_kid_idle/idle_down_1.png b/source/anims/ghost_kid_idle/idle_down_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e934daf220a23a1c72d3dd086cd4c0ff456a36d2 GIT binary patch literal 443 zcmV;s0Yv_ZP)TDPkhh{X;k(Eddv;oRh=$7GMgf$^K$~ zTLSQC<;P2GhUb@(!Uqw^>8^%dp9`K}Dh}+nwm@6OZ}6*kAbbyC&#}+=)%#DF8IEzdAtYfbztN@SzSw3VeKhiiI@L6d;jF7|1!!ZLKij zrT|XNNx4l#+UUg|I*NG_B0irUcdMru^3z-!-3}npBGY^?PtRJ-9Ukrg5z+{j*Y~$X z#xdB0?i&oCbF^?AD3Xo*Cu~kS1(%8k57f;344Af&bM3ItPq5PK9@MAXDJ$=UXjgfvy0JOv6CVaXz;S6YdJ& z#GI7RiO3qG*j-04FG9pGr{`+*6hnTptugEX5C+VWshoC&;S4c M07*qoM6N<$g3HIaSO5S3 literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_idle/idle_down_2.png.import b/source/anims/ghost_kid_idle/idle_down_2.png.import new file mode 100644 index 00000000..d32e1538 --- /dev/null +++ b/source/anims/ghost_kid_idle/idle_down_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3vwb77eu5fhn" +path="res://.godot/imported/idle_down_2.png-0a6146d46683c22821dbc6dbfd0979a3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_idle/idle_down_2.png" +dest_files=["res://.godot/imported/idle_down_2.png-0a6146d46683c22821dbc6dbfd0979a3.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/source/anims/ghost_kid_idle/idle_left_1.png b/source/anims/ghost_kid_idle/idle_left_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6e21ba73949e589e1af4a264ba371e950e231c8a GIT binary patch literal 415 zcmV;Q0bu@#P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0W?WOK~z{r?U&IF zf-n${z=I?B!UQ}xf)DKA2tF{2TR4IV=9+7B)?WXsgcuE9Lay{^@9$AsTDNUm z6)>|!)NCOo0$lKEn%s>>*L7U7iLeToQQ#OB0!8fDYS5^QgA?O8l5y>+pn(Lylxs9i z<3(i23HWH_5+Op(0?feLtS*4EkmENpK%bQOz5`l)2~Yq9pov7645rnW^8b?%@pS>Y zy&x<^{vF2)lU5(Y&n5Q-lYph<1Z;C)6R-&|30Sh$BcOoWMuY002ov JPDHLkV1o8Duv-8C literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_idle/idle_left_1.png.import b/source/anims/ghost_kid_idle/idle_left_1.png.import new file mode 100644 index 00000000..3c2bb68b --- /dev/null +++ b/source/anims/ghost_kid_idle/idle_left_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://4ldego01y0j1" +path="res://.godot/imported/idle_left_1.png-53c9eaa2604aaf269891b92b04307022.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_idle/idle_left_1.png" +dest_files=["res://.godot/imported/idle_left_1.png-53c9eaa2604aaf269891b92b04307022.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/source/anims/ghost_kid_idle/idle_left_2.png b/source/anims/ghost_kid_idle/idle_left_2.png new file mode 100644 index 0000000000000000000000000000000000000000..780d61dd514da697c9546f9d7a6ef3b84b53905a GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!21QR7$B+p3x6|+PHW>&U?=BRd*2wN&z%D0q zkiD#cMc%4A+McFuOxhafELu=~XX6oN&MWuCSuafA+2{3D?4oja(E=5N z?NWM-TZ+#fd|6=9S>W#Q>dGU7^!{rsHKI>z_9ndCd$z004`w*q(rUGqF^9Wh z7}Abw3u3zl<5|a0QZ*eqzk*Zk&^30DWCskD?$i!Mp00Ta2UZd{Q(v=Zpz?EA03}m6 znIO$y+pcHes=!r&r&WO71@)HG`lf*I-yba|+ad|9cp^3h5D2YCrr9L6g(2>c03wmC zOh%-8T2}y)e!RV#oWN+}%%I|Q1xOM~B<&bmJ`E3B_|M3yg7kgfzFPSn?B3A~CmVLr zXV^T?%zhu>81{fKpymh0yTLdKXd7jPM!!RHYY)C{KT!O_Tma4K4SHy=*6gKW;nWjm&eKQMA z`4-v}(15(_I;%!C7U`NLAl><1a#B@vf?RC01Tf%PhAH6a-A6>50wM*DVh#zwR?FLs z>8SY`C>vW|L@Xa9v^_DWC%)!q$%S#K14W(P(@VhaX8>!C^~Oc(Pjk(mfXdHq0Ys+M zWP-GK>ARkRs{>aDPU`@@3(760%}oJ+&xe+id=UaGp9-4-2!v59ruihchN0Ra0aQee zl8lOO8C?M&{rbF{HG$E@nMpb53XnyJNcv%0F%1u2_+w;sLB_s+e`61V|FtC5cwpi?f<9!nAjA9^iq@00000NkvXXu0mjfpJcAn literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_idle/idle_right_2.png.import b/source/anims/ghost_kid_idle/idle_right_2.png.import new file mode 100644 index 00000000..83f1044f --- /dev/null +++ b/source/anims/ghost_kid_idle/idle_right_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqnj7e4twvsgo" +path="res://.godot/imported/idle_right_2.png-c348fe217c2620646b22b512cd731c36.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_idle/idle_right_2.png" +dest_files=["res://.godot/imported/idle_right_2.png-c348fe217c2620646b22b512cd731c36.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/source/anims/ghost_kid_idle/idle_up_1.png b/source/anims/ghost_kid_idle/idle_up_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3140792ceb29314712cfb33a02df4c474353ad GIT binary patch literal 368 zcmV-$0gwKPP)i71Q?jM`wXDhN?UoH&r>aFXQVz!3y{JmZ|C zngAr4fUJqdHA%ovC+Fgb6TIYeNx&jt@6AI%eh!51d$(61KL@mzBblX9s*(bFbpDg+qRI0S`&%d_zNa&FlQBss3Z=&k@>I__i(_7ghM~W%v_BC z0%c8B$D*1<;H#Z;azqK93cf^OwqfhwPM|ym;{D$2D3qswwso&U|EGYa5YO)l>vXC?M@%ZO)~@_%0VrMq z!8ojFb8w5V5|BWo!BUQ5dY)$0<#Z0cxL)tK%%{LsTYH+p%O-tY*Co5}`(%TGIUbKi pi%&F-KsMyuhD<`w3uvJh9q6HjDwSjjfe zGlTtU&Pn-Jv?rheqOR*K4$%iW5#g4AwDL=eqaq?AJwJ%k(Gqac$|*V6-U3Vkoa`F& z`w{@JR(`$2W_W%nDSQwCIX=~3^K-%TOT_`ZuPxA4@fZB&9SA=Iu;;MPaPj>|%<`v1 z;T9HvMFfrlNy3U#F>byE4*`!3{I3q+IiS38BD|{ukpiDzXR(k5ngS#;2?KJ9Q(G&H zxG8`VQ&MUpkv4j&r>2S>fRhAR&&x^7iqb z$S4Lj;#DPO;{BRc-}B=*7Mf*QiVX&Su1(Wa;d!F|qIm*185KlHtKYXQg8Dg6neP=) g5(PsOCxre&-*-xVMg@MmP5=M^07*qoM6N<$g1!B`%>V!Z literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_walk/walk_down_1.png.import b/source/anims/ghost_kid_walk/walk_down_1.png.import new file mode 100644 index 00000000..ae97ab2c --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_down_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3v52b8sjthq2" +path="res://.godot/imported/walk_down_1.png-0460ce8292c89612e4eb799afd05eff4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_down_1.png" +dest_files=["res://.godot/imported/walk_down_1.png-0460ce8292c89612e4eb799afd05eff4.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/source/anims/ghost_kid_walk/walk_down_2.png b/source/anims/ghost_kid_walk/walk_down_2.png new file mode 100644 index 0000000000000000000000000000000000000000..81b5f5439a5248e54c9e201a88cb5c82940b60ba GIT binary patch literal 438 zcmV;n0ZIOeP)ZQE8Gt|b^-2ji+^H1HaiiqG?GrgU8geuxc;sDm9?yuw^n7UGIH@I+?AN|tdP z8SI-mC*@nwo`4F7nx?ThL?7ftgj)jA%J&pUMMOk;eh{alC1BUeDLKr&1(*Uj**)y% z5&*AOe!awIcz!7#iUamsTcEAt7X0BI2tNa`=djOk@%=~4@~1@M z78Za-1dbJwgso0x^6)Kq33zqje{}%Q0p*Po;Y}Tg6!`xA5esRcDL^8VFd(Nmooj^= zHw92)N=oNQq>WzerlXh^LE_W#tyn$ApdW2*bUOfv7MbSzeE-mD7I?S=NQfh_d|l3o zjAAfHyr`rY-mh8lJ&&Jcz%>j*LD~0xvZrY(@NB5RXkG_sVj+eTUkg(|&65PJnAd?d gFi&Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0W?WOK~z{r?U&IF zf-n${z=I?B!UQ}xf)DKA2tF{2TR4IV=9+7B)?WXsgcuE9Lay{^@9$AsTDNUm z6)>|!)NCOo0$lKEn%s>>*L7U7iLeToQQ#OB0!8fDYS5^QgA?O8l5y>+pn(Lylxs9i z<3(i23HWH_5+Op(0?feLtS*4EkmENpK%bQOz5`l)2~Yq9pov7645rnW^8b?%@pS>Y zy&x<^{vF2)lU5(Y&n5Q-lYph<1Z;C)6R-&|30Sh$BcOoWMuY002ov JPDHLkV1o8Duv-8C literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_walk/walk_left_1.png.import b/source/anims/ghost_kid_walk/walk_left_1.png.import new file mode 100644 index 00000000..b40d00f8 --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_left_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bivr775fn04c0" +path="res://.godot/imported/walk_left_1.png-315230059371e6e03992558c0249bf14.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_left_1.png" +dest_files=["res://.godot/imported/walk_left_1.png-315230059371e6e03992558c0249bf14.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/source/anims/ghost_kid_walk/walk_left_2.png b/source/anims/ghost_kid_walk/walk_left_2.png new file mode 100644 index 0000000000000000000000000000000000000000..45b63c592e739b754037def4453bad5f860df84a GIT binary patch literal 410 zcmV;L0cHM)P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0WV2JK~z{r?U&IF zf-n${z=I?B!VHe!0~7G#2tF{2TR4J==E#+trFZ{TLX3tlX>;6>l#T7Fpn(M7kZV*` z6(me7fsgK7A|%vNfFrOrs|(O5Sp3Ea&?_b0?+L9w2Pi-RXd+RP!L<5Z{(ll8zAj+x z1=B(lo^iY|Y4tJuzvRB)5?G2Qu+4!@U=wf&ELrOjP~i5sb4kY%MD0xh*;wl+Rqv4w zESdu;!8k``3CPY-fYagVlE@wbt5Z+Fm_6q%=&mH^>xE16-@Krs+3b71ZQG*nd%k)@ z?sjoI^@xTZ0X39qB76^0N}#rj$vGVdQl}g!lvI6;>1s;*b3=DjSL74G){)!Z!1`|&g$B+p3x6=>uHXHD`E_|h@!`$9?f!nyG zMQ%oexBH96$X%}PD_owQaLnuaJ69=W>m$z-ifSMGIXN|7@6t1pxT)l|ZGsG=;tvC! zhi;2ArSyKfRIv7F6mW4jDwXA!W?Z>>uyft(6D{9DE;ukHoHAXts!Pd7hf%&aM#*JG zWP@bH?5nH+Vmfuo%wIe^-&Z@WKF`RtfWc(qi%AE!{EGQkFQl|j@4zkYWvv?f9+xCu zdKLU*=gr!KstKCY8glt^n9LaU7`?Amv4|8@-`Tk&nbYO1FXN_-*Dl8FbuUS|C^JKN zMwH7mhMSgL1y(Y#N}G%mN?&o#*p&Xd$xYQVUO%Sld!?hh@!R@&W!uE#Z*M#JtyVs# zsmjH9y@E;4|GE;+6XJgicPRW?mTq#VJ$T!ZnD!Iv14R7qy3{^DU9krkkPHl-u6{1- HoD!M<1?Qw1 literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_walk/walk_left_3.png.import b/source/anims/ghost_kid_walk/walk_left_3.png.import new file mode 100644 index 00000000..0b42184f --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_left_3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cki5irxi3hj48" +path="res://.godot/imported/walk_left_3.png-0406900af604e682cc30e11216e0588d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_left_3.png" +dest_files=["res://.godot/imported/walk_left_3.png-0406900af604e682cc30e11216e0588d.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/source/anims/ghost_kid_walk/walk_left_4.png b/source/anims/ghost_kid_walk/walk_left_4.png new file mode 100644 index 0000000000000000000000000000000000000000..45b63c592e739b754037def4453bad5f860df84a GIT binary patch literal 410 zcmV;L0cHM)P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0WV2JK~z{r?U&IF zf-n${z=I?B!VHe!0~7G#2tF{2TR4J==E#+trFZ{TLX3tlX>;6>l#T7Fpn(M7kZV*` z6(me7fsgK7A|%vNfFrOrs|(O5Sp3Ea&?_b0?+L9w2Pi-RXd+RP!L<5Z{(ll8zAj+x z1=B(lo^iY|Y4tJuzvRB)5?G2Qu+4!@U=wf&ELrOjP~i5sb4kY%MD0xh*;wl+Rqv4w zESdu;!8k``3CPY-fYagVlE@wbt5Z+Fm_6q%=&mH^>xE16-@Krs+3b71ZQG*nd%k)@ z?sjoI^@xTZ0X39qB76^0N}#rj$vGVdQl}g4`w*q(rUGqF^9Wh z7}Abw3u3zl<5|a0QZ*eqzk*Zk&^30DWCskD?$i!Mp00Ta2UZd{Q(v=Zpz?EA03}m6 znIO$y+pcHes=!r&r&WO71@)HG`lf*I-yba|+ad|9cp^3h5D2YCrr9L6g(2>c03wmC zOh%-8T2}y)e!RV#oWN+}%%I|Q1xOM~B<&bmJ`E3B_|M3yg7kgfzFPSn?B3A~CmVLr zXV^T?%zhu>81{fKpymeurIT710X3+z&s_)@mg!0>ioO z`@Y#R)*!bH@|xEuapR@p%d(gu!!W=PZb(EM?7-?3ma4K4SHz196gIA8o#$D=zL^E5 zc#G``Xi&WCIx9!j7wMWMAYJ*<;-sqR1VL=J1Tf;W3{$|_tB;5_1w;~@<(v|Lt(LbN z(^112DI0rUL@XXfXnSH!Pkaq$!G&?E14W+0%S*uFX8`vc_Zx%mKdm)95tX0A0;rgh zlL^xNC3ZanR|l>RJgo!tE-1I0wl)R){QYV%35yi4;wiByfJm6NWEv*9H4fzt37{l$ zmc=OPp4keurIT7WFvL=>^3K$62r%*%np3wC(InWU0{ zK$L*AiN-Zfz*i@y;*b-x<#J9y7VzuhCZIeA{Qv#4PoX>qq@!CM`acIGhiHFuU~`}h z2dw`#{nEL-3U20dY%JenS^!>-W6YSUr)n6(3Xs5<2+#W1zwsQ6SphJ- zMB?l4_Aw>bw@FlWxyth!yU7VF>l=OfB7u{M^jW^l6!Pv7?;?z%3-5Ex@@ zJ`6)tcgf-vO>zJOBQcbCUX1$~ml70ek^^DT1*?`&5}bblw**~HtV=uO00000NkvXX Hu0mjfr%;ww literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_walk/walk_up_2.png.import b/source/anims/ghost_kid_walk/walk_up_2.png.import new file mode 100644 index 00000000..3a523ce6 --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_up_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm4n0w3fb8tsw" +path="res://.godot/imported/walk_up_2.png-73ae3fb7ff85476a7a8ea480d4e7d56a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_up_2.png" +dest_files=["res://.godot/imported/walk_up_2.png-73ae3fb7ff85476a7a8ea480d4e7d56a.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 From d4a4e820f5871a205f35b9695b20d3b9484d6333 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Wed, 13 Nov 2024 23:19:04 -0500 Subject: [PATCH 073/110] Add walk/idle animations for ghost_kid --- source/scenes/player.tscn | 138 +++++++++++++++++++++++++++++++++++--- source/scripts/player.gd | 25 +++++++ 2 files changed, 155 insertions(+), 8 deletions(-) diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index ec67b5cf..3a5cd167 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -1,18 +1,140 @@ -[gd_scene load_steps=4 format=3 uid="uid://rgfnpcsvv534"] +[gd_scene load_steps=24 format=3 uid="uid://rgfnpcsvv534"] [ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] +[ext_resource type="Texture2D" uid="uid://bqrdval02y5ee" path="res://source/anims/ghost_kid_idle/idle_down_1.png" id="2_3e32p"] +[ext_resource type="Texture2D" uid="uid://c3v52b8sjthq2" path="res://source/anims/ghost_kid_walk/walk_down_1.png" id="2_nbe6p"] +[ext_resource type="Texture2D" uid="uid://bf1iqsldq4n2i" path="res://source/anims/ghost_kid_walk/walk_down_2.png" id="3_r22th"] +[ext_resource type="Texture2D" uid="uid://c3vwb77eu5fhn" path="res://source/anims/ghost_kid_idle/idle_down_2.png" id="3_wkeso"] +[ext_resource type="Texture2D" uid="uid://4ldego01y0j1" path="res://source/anims/ghost_kid_idle/idle_left_1.png" id="4_2wq3a"] +[ext_resource type="Texture2D" uid="uid://bivr775fn04c0" path="res://source/anims/ghost_kid_walk/walk_left_1.png" id="4_8mwkj"] +[ext_resource type="Texture2D" uid="uid://ctnncwq1t7o81" path="res://source/anims/ghost_kid_walk/walk_left_2.png" id="5_43rkt"] +[ext_resource type="Texture2D" uid="uid://k3fxuipkwp5t" path="res://source/anims/ghost_kid_idle/idle_left_2.png" id="5_bmchk"] +[ext_resource type="Texture2D" uid="uid://b678mccqmxdxw" path="res://source/anims/ghost_kid_idle/idle_right_1.png" id="6_gvrum"] +[ext_resource type="Texture2D" uid="uid://cki5irxi3hj48" path="res://source/anims/ghost_kid_walk/walk_left_3.png" id="6_kerl3"] +[ext_resource type="Texture2D" uid="uid://bwj0rcghjose2" path="res://source/anims/ghost_kid_walk/walk_left_4.png" id="7_d1e7p"] +[ext_resource type="Texture2D" uid="uid://bqnj7e4twvsgo" path="res://source/anims/ghost_kid_idle/idle_right_2.png" id="7_dqwhe"] +[ext_resource type="Texture2D" uid="uid://b013imtp4cvcv" path="res://source/anims/ghost_kid_walk/walk_right_1.png" id="8_pu6uy"] +[ext_resource type="Texture2D" uid="uid://02qkl36wjtwr" path="res://source/anims/ghost_kid_idle/idle_up_1.png" id="8_uyddt"] +[ext_resource type="Texture2D" uid="uid://by31nucpbkt5w" path="res://source/anims/ghost_kid_idle/idle_up_2.png" id="9_0mqgr"] +[ext_resource type="Texture2D" uid="uid://2bn3s1exyb7x" path="res://source/anims/ghost_kid_walk/walk_right_2.png" id="9_tms2l"] +[ext_resource type="Texture2D" uid="uid://bayr580mhyuwx" path="res://source/anims/ghost_kid_walk/walk_right_3.png" id="10_hbuop"] +[ext_resource type="Texture2D" uid="uid://cipjdt3k1fsm4" path="res://source/anims/ghost_kid_walk/walk_right_4.png" id="11_6joxg"] +[ext_resource type="Texture2D" uid="uid://dankfq2k2k0n3" path="res://source/anims/ghost_kid_walk/walk_up_1.png" id="12_gv1ak"] +[ext_resource type="Texture2D" uid="uid://dm4n0w3fb8tsw" path="res://source/anims/ghost_kid_walk/walk_up_2.png" id="13_s1ym5"] -[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] +[sub_resource type="SpriteFrames" id="SpriteFrames_1n7tg"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("2_3e32p") +}, { +"duration": 1.0, +"texture": ExtResource("3_wkeso") +}], +"loop": true, +"name": &"ghost_kid_idle_down", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("4_2wq3a") +}, { +"duration": 1.0, +"texture": ExtResource("5_bmchk") +}], +"loop": true, +"name": &"ghost_kid_idle_left", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("6_gvrum") +}, { +"duration": 1.0, +"texture": ExtResource("7_dqwhe") +}], +"loop": true, +"name": &"ghost_kid_idle_right", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("8_uyddt") +}, { +"duration": 1.0, +"texture": ExtResource("9_0mqgr") +}], +"loop": true, +"name": &"ghost_kid_idle_up", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("2_nbe6p") +}, { +"duration": 1.0, +"texture": ExtResource("3_r22th") +}], +"loop": true, +"name": &"ghost_kid_walk_down", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("4_8mwkj") +}, { +"duration": 1.0, +"texture": ExtResource("5_43rkt") +}, { +"duration": 1.0, +"texture": ExtResource("6_kerl3") +}, { +"duration": 1.0, +"texture": ExtResource("7_d1e7p") +}], +"loop": true, +"name": &"ghost_kid_walk_left", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("8_pu6uy") +}, { +"duration": 1.0, +"texture": ExtResource("9_tms2l") +}, { +"duration": 1.0, +"texture": ExtResource("10_hbuop") +}, { +"duration": 1.0, +"texture": ExtResource("11_6joxg") +}], +"loop": true, +"name": &"ghost_kid_walk_right", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("12_gv1ak") +}, { +"duration": 1.0, +"texture": ExtResource("13_s1ym5") +}], +"loop": true, +"name": &"ghost_kid_walk_up", +"speed": 3.0 +}] -[sub_resource type="CapsuleMesh" id="CapsuleMesh_tx0kn"] +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] [node name="Player" type="CharacterBody2D"] script = ExtResource("1_ws1a7") +[node name="PlayerSprite" type="Node2D" parent="."] + +[node name="Body" type="AnimatedSprite2D" parent="PlayerSprite"] +sprite_frames = SubResource("SpriteFrames_1n7tg") +animation = &"ghost_kid_idle_down" + [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CapsuleShape2D_1d7hi") - -[node name="MeshInstance2D" type="MeshInstance2D" parent="."] -position = Vector2(1.07288e-06, 1.90735e-06) -scale = Vector2(20, 15) -mesh = SubResource("CapsuleMesh_tx0kn") diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 1a0abaff..9078daae 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -26,7 +26,10 @@ var onFireFunctions : Array[Callable] var onHitFunctions : Array[Callable] var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter +var direction: Vector2 = Vector2(0, 1) +var model: String = "ghost_kid" #@onready var statusEffects : StatusEffectManager = $StatusEffectManager +@onready var sprite : AnimatedSprite2D = $PlayerSprite/Body func _ready() -> void: pass @@ -38,6 +41,9 @@ func handle_move() -> void: var player_num = str(get_meta("player_num")) movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() + playAnimation(velocity) + if not velocity.is_zero_approx(): direction = velocity + if movement.length() : Speed = move_toward(Speed, topSpeed * TOP_SPEED_FACTOR, ACCELERATION) @@ -82,3 +88,22 @@ func change_health(deltaHealth : float): func call_functions(arr : Array[Callable]): for i in arr: i.call() + +func playAnimation(velocity: Vector2): + if velocity.is_zero_approx(): + sprite.play(model + "_idle_" + getDirectionWord(direction)) + else: + sprite.play(model + "_walk_" + getDirectionWord(velocity)) + +func getDirectionWord(direction: Vector2): + if direction.is_zero_approx(): return "down" + if abs(direction.x) >= abs(direction.y): + if direction.x > 0: return "right" + elif direction.x < 0: return "left" + else: + if direction.y > 0: return "down" + elif direction.y < 0: return "up" + +func changeModel(newModel: String): + model = newModel + From f80ec2d435552bc83bbb5f952c86b39eed9414b1 Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 14 Nov 2024 17:46:59 -0500 Subject: [PATCH 074/110] Rename animation method --- source/scripts/player.gd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 9078daae..eb2c2ff8 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -41,7 +41,7 @@ func handle_move() -> void: var player_num = str(get_meta("player_num")) movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() - playAnimation(velocity) + playWalkOrIdleAnimation(velocity) if not velocity.is_zero_approx(): direction = velocity if movement.length() : @@ -89,7 +89,7 @@ func call_functions(arr : Array[Callable]): for i in arr: i.call() -func playAnimation(velocity: Vector2): +func playWalkOrIdleAnimation(velocity: Vector2): if velocity.is_zero_approx(): sprite.play(model + "_idle_" + getDirectionWord(direction)) else: From c156b379a74e3beef38e038f6ad3712d0f185f2d Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Thu, 14 Nov 2024 18:02:42 -0500 Subject: [PATCH 075/110] Add ghost_monster sprites --- .../ghost_monster_walk+idle/float_down_1.PNG | Bin 0 -> 818 bytes .../float_down_1.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_down_2.PNG | Bin 0 -> 834 bytes .../float_down_2.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_down_3.PNG | Bin 0 -> 852 bytes .../float_down_3.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_down_4.PNG | Bin 0 -> 834 bytes .../float_down_4.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_left_1.PNG | Bin 0 -> 669 bytes .../float_left_1.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_left_2.png | Bin 0 -> 675 bytes .../float_left_2.png.import | 34 ++++ .../ghost_monster_walk+idle/float_left_3.PNG | Bin 0 -> 680 bytes .../float_left_3.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_left_4.PNG | Bin 0 -> 669 bytes .../float_left_4.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_right_1.PNG | Bin 0 -> 802 bytes .../float_right_1.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_right_2.png | Bin 0 -> 605 bytes .../float_right_2.png.import | 34 ++++ .../ghost_monster_walk+idle/float_right_3.PNG | Bin 0 -> 830 bytes .../float_right_3.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_right_4.PNG | Bin 0 -> 802 bytes .../float_right_4.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_up_1.PNG | Bin 0 -> 708 bytes .../float_up_1.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_up_2.PNG | Bin 0 -> 712 bytes .../float_up_2.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_up_3.PNG | Bin 0 -> 737 bytes .../float_up_3.PNG.import | 34 ++++ .../ghost_monster_walk+idle/float_up_4.PNG | Bin 0 -> 712 bytes .../float_up_4.PNG.import | 34 ++++ source/scenes/player.tscn | 156 +++++++++++++++++- 33 files changed, 698 insertions(+), 2 deletions(-) create mode 100644 source/anims/ghost_monster_walk+idle/float_down_1.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_down_1.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_down_2.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_down_2.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_down_3.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_down_3.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_down_4.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_down_4.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_left_1.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_left_1.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_left_2.png create mode 100644 source/anims/ghost_monster_walk+idle/float_left_2.png.import create mode 100644 source/anims/ghost_monster_walk+idle/float_left_3.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_left_3.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_left_4.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_left_4.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_right_1.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_right_1.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_right_2.png create mode 100644 source/anims/ghost_monster_walk+idle/float_right_2.png.import create mode 100644 source/anims/ghost_monster_walk+idle/float_right_3.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_right_3.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_right_4.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_right_4.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_up_1.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_up_1.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_up_2.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_up_2.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_up_3.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_up_3.PNG.import create mode 100644 source/anims/ghost_monster_walk+idle/float_up_4.PNG create mode 100644 source/anims/ghost_monster_walk+idle/float_up_4.PNG.import diff --git a/source/anims/ghost_monster_walk+idle/float_down_1.PNG b/source/anims/ghost_monster_walk+idle/float_down_1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5665046004d73b20d07962b7143d120429fa1d0c GIT binary patch literal 818 zcmV-21I_%2P)hp;;j zz8aAL!n2;6=Y3WYE)TBFOwdsC6gL9G7aitpBk#Lb3yazQu~IoS0)RPqMH4jag%APY z#Y8~jqZWJOdjU+%egPn?#|vP3_6Y*30tkW!02GLX_G}phbr=tTWwKvzt4@v!Kq2t- zA+!p3IWef8k=AA%oR`~%>^34s<%n8O4@1%n*rnpN`msWQT>RR768@q z=f;pM@O{!}!b;Sd2L^_e<*;I-CR`aQ`TGaTI0yNp#W;a2tp30wmx!P{25sYv}qLIl){#| zLq~O0eJ)V}GZFm*K%7O!n*coJ8fbJ{06gs)h{A%W4&K8XZ;u``Ig3fmWLbz!R#VsnG*q*(%UxKN;`>XcFEj zE&Lbye}nwr!mFEC=|d{u5$2KdN3H<>MMzF|iQF11j<73?JDynO6hwlvqzJ5xO)LV5U3Byh|UldAs^+Joqg0i2hsnm z1_FTg3!v}XFDR$1;!cq`eB5QYs91X14JdpZ5YB4MgRZ+07*qoM6N<$f`tcjYybcN literal 0 HcmV?d00001 diff --git a/source/anims/ghost_monster_walk+idle/float_down_1.PNG.import b/source/anims/ghost_monster_walk+idle/float_down_1.PNG.import new file mode 100644 index 00000000..2eb196bc --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_down_1.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cxt482dj3g0fc" +path="res://.godot/imported/float_down_1.PNG-b23ab9f5740c3e4be5be73e0383346cc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_down_1.PNG" +dest_files=["res://.godot/imported/float_down_1.PNG-b23ab9f5740c3e4be5be73e0383346cc.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/source/anims/ghost_monster_walk+idle/float_down_2.PNG b/source/anims/ghost_monster_walk+idle/float_down_2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..1d17befc0e57fc1c0f6935bc4283ac4854b6a3a6 GIT binary patch literal 834 zcmV-I1HJr-P)0vJ z3x1u7tAyDPC-4q2#!ecWKj^tTphTJrbb?iHlX8``)dIT#_ zr3!qXbnl4S)an7yJlhVTlJCjl<&jzVGu&^-SdVPuZ3`5v05YyR9g7K>&EU`&2lPNwKRLStG;FJ%tsPK3ORE}e>9PW7#k<{e7l6AQ1C34(fV&+7QLhKU z?b=)t>;|A|FDdaV&%6M{wpzuUMu!)`9((03&}xeSxI-5-HCg}^e+$x**0dvPjYX3d zK+*grxJejgs#hEhfSUPUnox07#nAxZf5llIhNb-zX%&F9Q20a0mQw{gg&Flx3sM6Z zr96_yQwR@$)sKO?`U$oPfN%^Vg@f$%RNoAMDdk~(4#9d({STtA_9P7d_d4d zx_Y5x#u56stjm3`1ScpGjLa|z?4^t1f371EonU-2pKnI!IA=UYf9+z%Xhg8^vj6}9 M07*qoM6N<$g1X6mNdN!< literal 0 HcmV?d00001 diff --git a/source/anims/ghost_monster_walk+idle/float_down_2.PNG.import b/source/anims/ghost_monster_walk+idle/float_down_2.PNG.import new file mode 100644 index 00000000..641b6d47 --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_down_2.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctcxuwikon7cy" +path="res://.godot/imported/float_down_2.PNG-97a4ca1d4931b0f12e289acecb002866.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_down_2.PNG" +dest_files=["res://.godot/imported/float_down_2.PNG-97a4ca1d4931b0f12e289acecb002866.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/source/anims/ghost_monster_walk+idle/float_down_3.PNG b/source/anims/ghost_monster_walk+idle/float_down_3.PNG new file mode 100644 index 0000000000000000000000000000000000000000..ac85c0b765a9bd35908abf96a665e7462a69fc25 GIT binary patch literal 852 zcmV-a1FQUrP)dC{3`M(B`Tt+;7{_vnMQCMlCG#*e7^HiTggcpez5f6FZ36E__CLbB!}SeMa2T!3 zem>Pw#pC_Xq-B$8vtwacU~F7sxaR@E2-h1P@G^3i*lQd^K@ie%nC`GZql{w+r}N;e z5eXo?>ZN%+M;+nv;5v*1O*IdBBOrW1Fz*<7-=$hmPX23!2pR#voSe|4TJ}PS0PsR0 zRN|vHd-8h$EUkV6pjwX?!1C$?1k?p82p#~cL?CqJh#-j5cmQlu{f1j{aa;fziI*>F zyWrcXm?VsTI0^3%W$dJp{Xx&%0WH#4pb@P2ST9#g8x`0LpbXd(RPK$MN942sAln}s z(^LVU>wPxFWVKoVuy@-awC6i}79E>?No3i7Cx-?WY~$GcrR$1xJ(@aTzLjwqwE)6O z&%MC7=TS(s0NDF45eDX9EYH9?jOBCXyjwIi0A=!OJD7s^2+Uz4%&F(FFKV0)APEO^ zFqURu9mevxbS^nR6+o(PDJspO>fCdwam~J|04QMqp@c*2k6iD5M>Y~28oTe5#*wv4 zS9g&B9?4dv4eL+72M^(yj(MU0MKKyvIE^0eH$akm$4kc-l4S>a_rP zT$}diIJguv*mq*3pH z(`bWcc{QqlD;FAiSveGdbTF&-E)`}S6}q|oJpk0%ExW){{bY~@fCHm0z!30f3fipo ztZOAnIRI6_0>Wt?tx0l*@4-dV25)^0vN2X0CInW+BKBp=TnA*Ecbr_+H|sKYxV>4k0vJ z3x1u7tAyDPC-4q2#!ecWKj^tTphTJrbb?iHlX8``)dIT#_ zr3!qXbnl4S)an7yJlhVTlJCjl<&jzVGu&^-SdVPuZ3`5v05YyR9g7K>&EU`&2lPNwKRLStG;FJ%tsPK3ORE}e>9PW7#k<{e7l6AQ1C34(fV&+7QLhKU z?b=)t>;|A|FDdaV&%6M{wpzuUMu!)`9((03&}xeSxI-5-HCg}^e+$x**0dvPjYX3d zK+*grxJejgs#hEhfSUPUnox07#nAxZf5llIhNb-zX%&F9Q20a0mQw{gg&Flx3sM6Z zr96_yQwR@$)sKO?`U$oPfN%^Vg@f$%RNoAMDdk~(4#9d({STtA_9P7d_d4d zx_Y5x#u56stjm3`1ScpGjLa|z?4^t1f371EonU-2pKnI!IA=UYf9+z%Xhg8^vj6}9 M07*qoM6N<$g1X6mNdN!< literal 0 HcmV?d00001 diff --git a/source/anims/ghost_monster_walk+idle/float_down_4.PNG.import b/source/anims/ghost_monster_walk+idle/float_down_4.PNG.import new file mode 100644 index 00000000..7f9dbd16 --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_down_4.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bh87hucbfvq82" +path="res://.godot/imported/float_down_4.PNG-c69c4bb1e69edad540b31789bdbda5e6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_down_4.PNG" +dest_files=["res://.godot/imported/float_down_4.PNG-c69c4bb1e69edad540b31789bdbda5e6.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/source/anims/ghost_monster_walk+idle/float_left_1.PNG b/source/anims/ghost_monster_walk+idle/float_left_1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..0b409753d0424d20eb7c5fd6aa8d5ab879896a4a GIT binary patch literal 669 zcmV;O0%HA%P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0y0TNK~#8N?U)O4 z!ypU=?cV>+F1R992w(}G_&DB~4sD$ny+z&;zmY;aBw2`x7^4Ii+U@I#{(`{abRTq93Q<_dR&cql(lf#0ervtfd1!H&=tdb#9KhJ@;Ny(BND&^ z2I8QlYcnJ603I+7o4aNOQt+jK(qw~I8Zx=415&FRewVwp$~L&F(q*x4X)PqTUkBWo zqFq#0yJK7 z*KHsbutIwOe|z{6bEhr97fCEZBVd+4ib~k%Xl>z~a*>wSWb>;6&O5S^>k; zvo7%8!~rh@$J7RLb*Sfplj=rZ7hNxAY+2DMB$SW{XgUNZIS-m>5%8yXaS5%D!D-V= z+TYVEz~koHm+b^()#r&g(bGYc4ZUo`C1}EX&;mTK^gTteEvU+5At3OU-bzMv_Nen% z3gAFxBo5r_9K8f^vguk-6I6#$cZtmaoc_YMbf=z*@Or~00000NkvXXu0mjf D?Ia*f literal 0 HcmV?d00001 diff --git a/source/anims/ghost_monster_walk+idle/float_left_1.PNG.import b/source/anims/ghost_monster_walk+idle/float_left_1.PNG.import new file mode 100644 index 00000000..13a5f304 --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_left_1.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnmv2t3kh22vh" +path="res://.godot/imported/float_left_1.PNG-394cb3c0d588d9c0ff7f9a600586a67a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_left_1.PNG" +dest_files=["res://.godot/imported/float_left_1.PNG-394cb3c0d588d9c0ff7f9a600586a67a.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/source/anims/ghost_monster_walk+idle/float_left_2.png b/source/anims/ghost_monster_walk+idle/float_left_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4aa898ee5c1c05fae0f43601a9255bb509d6660f GIT binary patch literal 675 zcmV;U0$lxxP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){ zsAK>D0w_sDK~#8N?U?OigCGn=b?^VqPF(0x1We$D5B2fP> zSl1E-J?Sa%wp}||*HanIWS}Pcq?82C!DKX%fSBY+TpK*3m5ACm-*aPwb6QBKd1KS? z9%~6dG-|O=PFPDWv3gY0V)Z%H3Ggl`>VVea8Ssg<0{SI4lCJK6j;rs17N8N(Ke>T? z&7rc-|6c&Ro(?p{fnEza5Q`4MFhDJu_d|DqRKVBjhiHq6{XSZ%l%fvcl&(nW>(EHG z@AZyRu!Fh<(lU|`7%DsiQdIR8=mBy;rWAnW6+mN(Q?KQ&t6o=G4VN9j_nQmozK;c+ zF}y>(1tcqT{`yE9gVjGXnZUp z0e9X85&<)&7k_}c^A-?E5DS=S8>l|PN(D@}4M@VJi92rr5gGxb{81$DZvj(vfW?2O z)B^6-1zG{!)3YvcUxXsmVoC$4t{N+1-N@^r=h=)kD>{UP91;Olhu|RRK@~Lu{`5{R zq4pXaHoc_%9kl`+`&{d^oq(+RI1vZB9YopC%hp|jCcFbJ!0}1nQUu$As!SFFJYVUp zWCUlAI*+9Q4pc_uz%9VehWLqLj@7{eNuPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0zFAYK~#8N?U;*l zgdhw>cl-bUyfrr1ED9!Y!$UnY9okwY_YiQpuZNrS=Fy7}j~cvdIRriFF7W4b?%@62 zmC;NFYN9QrCU6cRqlpB>Bx~Z@;4!U4)INO4jSVhoA))5MuHggT5`K8J;-8%HmRw?W zt*FK7OSlu@T~O2kt-}l86I%uJOYS7y+yNa|KL9PjBA|bA2l2S&z~gP1N&xco4?G>fV~RyO_S7AXrvrGrEh+(5-Ub>0mp%lZEx_X` zSKS6$0W+tk|L4Qkjw^40Ei`?m!JljFBv@Cr>jxxa8=lp@1t)U%P1ONP`Ree5S->EN zVb;WfsASPr0o~J!aP&=_bh(^$v!gVSc_I&vx>44pIWuZjbO;GKSU@&o)gd^@c~C`- zfIq#HOQ?Mf4x3)PFsK0QVKCB}pxOTfas`KxpbbwT1rXgOSi%!%0mPQRr3kU-O_@9d z1isRH$%qa+a~@9t5~z$QG*O(Rl>kXHeJti6XaH7s4*@AsVjOFHy?z0~K+;plZcnfP O0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0y0TNK~#8N?U)O4 z!ypU=?cV>+F1R992w(}G_&DB~4sD$ny+z&;zmY;aBw2`x7^4Ii+U@I#{(`{abRTq93Q<_dR&cql(lf#0ervtfd1!H&=tdb#9KhJ@;Ny(BND&^ z2I8QlYcnJ603I+7o4aNOQt+jK(qw~I8Zx=415&FRewVwp$~L&F(q*x4X)PqTUkBWo zqFq#0yJK7 z*KHsbutIwOe|z{6bEhr97fCEZBVd+4ib~k%Xl>z~a*>wSWb>;6&O5S^>k; zvo7%8!~rh@$J7RLb*Sfplj=rZ7hNxAY+2DMB$SW{XgUNZIS-m>5%8yXaS5%D!D-V= z+TYVEz~koHm+b^()#r&g(bGYc4ZUo`C1}EX&;mTK^gTteEvU+5At3OU-bzMv_Nen% z3gAFxBo5r_9K8f^vguk-6I6#$cZtmaoc_YMbf=z*@Or~00000NkvXXu0mjf D?Ia*f literal 0 HcmV?d00001 diff --git a/source/anims/ghost_monster_walk+idle/float_left_4.PNG.import b/source/anims/ghost_monster_walk+idle/float_left_4.PNG.import new file mode 100644 index 00000000..dc8a6414 --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_left_4.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7xew2vc0fk63" +path="res://.godot/imported/float_left_4.PNG-5dbbb412a7125a01c5e8b53b018a05fb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_left_4.PNG" +dest_files=["res://.godot/imported/float_left_4.PNG-5dbbb412a7125a01c5e8b53b018a05fb.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/source/anims/ghost_monster_walk+idle/float_right_1.PNG b/source/anims/ghost_monster_walk+idle/float_right_1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..fe93f6b8a371f6deafb8f1461416ecf7506c2102 GIT binary patch literal 802 zcmV+-1Ks?IP)6uASleZJe*QOs*F^bmgYRx}b~Ah;ZYTQv z-aWEYUN1I8wvjc^XiPKI@B`heT8(JQRs|#+f7pN&Z0So8Ui%>+LK;Go>!6tDF5;=5 z0>Z7sJ&^`+QtvJv{YD`CpphPBbiW&8T7etqEWI+|qumvcHU4e9_e|)K0b`XH1YY1h z04&~Mw&jdfObd_=z~nrp^ElfBJ{!R7)kiAoh4{r838mU8`XUF{+GJV5v$luNg zgQ%^n3{a&T20fxIV487d0TB1(2*F+-X#l(d%%1lEn7sm4|J)UdHctA)bKsU4zzKym zIQVFv=7zWx02B!;PK9CyU@7(C7%XoCfQqVDmg}Q!D3&YJ0B9X@L1^2ka4FsCxR&iK z0KGn~wc-zNg)9KgKqCVnySP=wHY}+Ru8sC%J#*zgKE)dceGV!k_pd?fCO8RyH%}w={0JP~3bgX|GqrdMq)2oTU?*LVNmJGO)cr{ur0Q#{*B1<8u zgUB4HdHJFKv;gQFv3|v`LQ=pQ0Ce>wTUS|qDaJ#e20%Tj77EX6+eKDi+M=}<)qjfa zGJv~ct{~jH_mPD48e~6Dqp?|~S3Jb)*#fh4vVOUYWCxx!-WmWAZ`${ig$BUKkJ~== z)vF!~&U^;+Qem-679=Ddd|C|bZUalenPW4>TLHlMsSvWodjPBu3JEBN{1D;b&yuyx z_`Jrpx4~X7L6zuq;Yh{{0OxNYpdkullxPed$|wM83+g){*ja;NgyK*rvty#R5A_kw gSSX`~9+a1cKNd^8ZrPy4<^TWy07*qoM6N<$g8zSL=l}o! literal 0 HcmV?d00001 diff --git a/source/anims/ghost_monster_walk+idle/float_right_1.PNG.import b/source/anims/ghost_monster_walk+idle/float_right_1.PNG.import new file mode 100644 index 00000000..332db1cf --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_right_1.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://duhh3p0w3n2us" +path="res://.godot/imported/float_right_1.PNG-34cd824fae1e175a3dcfca73c9efcfe5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_right_1.PNG" +dest_files=["res://.godot/imported/float_right_1.PNG-34cd824fae1e175a3dcfca73c9efcfe5.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/source/anims/ghost_monster_walk+idle/float_right_2.png b/source/anims/ghost_monster_walk+idle/float_right_2.png new file mode 100644 index 0000000000000000000000000000000000000000..20dedad2fece37aace288b380f9ef959dffd1053 GIT binary patch literal 605 zcmV-j0;2tiP)41}T6_kU%2bLb#N$j>GL>t1y#2eO|KKry9P|64h* z?ZPN)7N<9Wi|JC<400ZZ2#ebjKuL*adZrGDI(`oT5aYcX5GoJW08Grc`hXDoumoUk zzDfh(3meK+9_HKTBtNq10ma$8I44;20AJ^|Q6X@XA>e)Y`{p@?(Ewtd3&6vBK=9qK zA_wsu(P&k_%;mtl`)w)ZZuvYEvDeD7AH=dcYQ`zZG>Dz=psk(;r(~IHkxz(vkIi- zrK12;llAXeIjW8UFuSv(Yg7m@0O+;-NUiZ%cjrvWC;(w^n6yLTh#}C9{Z{Q3`0m=W zZe3`7oBOQ>SC7n(=mD030`N$LXdwZd=RUnd;01sNkWb44Zx4tLz*3ag=8pzI(F-6t z04rH+hxc3PueGE=1#qHylE^)P^S&)w=tp8(ZgUADQFv?;r0P*eWK!av8GPyy8M2T7 z!ktStViEwo(Nh1n$=zpBpcKB$0*K=+7LuM9W}gt*!ECQ>4@-MU`vB%>0Emw!C;)bU z%%uu0PC5K$@3S5()urURsg+q6ht{9HO#c_f{YViPt0(Yb#}c2|AOP rY0CzN1ZHP?26CNq-M$P)vDu3429iJ-~W}jh9OSGKoSTSt@{V%lAQAqakt&J_w&CAd?woe8gh5j*)4F!+{yI! zd%9(pd_Js1wv!DYbh-r+^1yI#t1(@Ql>lkh-yEPMHjcR%PxBBEO&*#Sr=pnqF6L>T z2%_3Y^+GBlbKTuM=52xSgF$+(Oz2x@`% z0I=1HIkvOy!n6V208Gi-d|p@AfcFM4d-suwdLw>ug+r@Oin++a6}l`tm|F`m(lN}( zwXPM=Vt^B8>9d%oaa{q>z@=+WtOXv#F3pc)s*0QfAca#hlg_30wd-gM&oh9=Ena&F z#{{jhyedFdZYX+08^MUWyZ{uR$q|NYbGQMh6)=0<3t;vRSo3qQP>hioE1mCSRvv=7a4ts4MsLQaIXj~XwPJDn%R z_5#rBPivC?=10K`fGD(O0#p~btJsGv&B682alH22xjkp`je|Ldw(-%-`n*L2^d#mA zV8lV_4Z{;aw#>Xmd&ctw;Hhg^tQUYY>irnF*OTy8fO7>b6;ApN0Ak+?SZd2AhLhv?U10X<%B%m4cA;uw}rD{cewZV=vq1ShW#I(C{BvT6j*B>CDqZP&| z(T%Um8U6uASleZJe*QOs*F^bmgYRx}b~Ah;ZYTQv z-aWEYUN1I8wvjc^XiPKI@B`heT8(JQRs|#+f7pN&Z0So8Ui%>+LK;Go>!6tDF5;=5 z0>Z7sJ&^`+QtvJv{YD`CpphPBbiW&8T7etqEWI+|qumvcHU4e9_e|)K0b`XH1YY1h z04&~Mw&jdfObd_=z~nrp^ElfBJ{!R7)kiAoh4{r838mU8`XUF{+GJV5v$luNg zgQ%^n3{a&T20fxIV487d0TB1(2*F+-X#l(d%%1lEn7sm4|J)UdHctA)bKsU4zzKym zIQVFv=7zWx02B!;PK9CyU@7(C7%XoCfQqVDmg}Q!D3&YJ0B9X@L1^2ka4FsCxR&iK z0KGn~wc-zNg)9KgKqCVnySP=wHY}+Ru8sC%J#*zgKE)dceGV!k_pd?fCO8RyH%}w={0JP~3bgX|GqrdMq)2oTU?*LVNmJGO)cr{ur0Q#{*B1<8u zgUB4HdHJFKv;gQFv3|v`LQ=pQ0Ce>wTUS|qDaJ#e20%Tj77EX6+eKDi+M=}<)qjfa zGJv~ct{~jH_mPD48e~6Dqp?|~S3Jb)*#fh4vVOUYWCxx!-WmWAZ`${ig$BUKkJ~== z)vF!~&U^;+Qem-679=Ddd|C|bZUalenPW4>TLHlMsSvWodjPBu3JEBN{1D;b&yuyx z_`Jrpx4~X7L6zuq;Yh{{0OxNYpdkullxPed$|wM83+g){*ja;NgyK*rvty#R5A_kw gSSX`~9+a1cKNd^8ZrPy4<^TWy07*qoM6N<$g8zSL=l}o! literal 0 HcmV?d00001 diff --git a/source/anims/ghost_monster_walk+idle/float_right_4.PNG.import b/source/anims/ghost_monster_walk+idle/float_right_4.PNG.import new file mode 100644 index 00000000..42b0e012 --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_right_4.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://di8sx2worp3pl" +path="res://.godot/imported/float_right_4.PNG-e61e0e40d0e24c47c077be357d5fb7e5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_right_4.PNG" +dest_files=["res://.godot/imported/float_right_4.PNG-e61e0e40d0e24c47c077be357d5fb7e5.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/source/anims/ghost_monster_walk+idle/float_up_1.PNG b/source/anims/ghost_monster_walk+idle/float_up_1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..be63fe5af0e5ea19cf7b30ec2fecba0d2bd777cd GIT binary patch literal 708 zcmV;#0z3VQP)-D_;H-Yyc`yViGbA8PdOhz|m zKcCIehR6H8lD2x-Og0QO3oMNzhR-|*818!A1AdLnCAJ!uPy~cD?55i-P%GmS!tC66 zYj^^1uX<@-K8ubpc`z*&g1VZ|c|9Qf05IW!L?De?0Fm3D(xwJ5u(GbHH2|R2a#g7hR@JHjK(&}&d!Lmm0DYv{vY?*^ zw*`RWV*yn66q-27JQlze_y1|pXaG?v=cVJ;0FZ<5)&P($c>o}k?mXw|fIC+g@kV!m z_%Q;BAASxC!0VT!Fkn~!VT5}LQ31HhHb8W009w` zw5=*RL%pp9Fq??n1*kR)fGc!CRigz!*e*b;pA1+5R0+?N0{{6XwaM?-qML{GF&%IT z^Gy4v;-dhjuh$m;CD|!wIYjoA|8!Uo0zjJgm+BZ%QwRirqr@(u;OZwe8UV{)=wb&< zqNzR&K%4^-g1iUiHk(FOp9YW?6cA?fVyv07v%uQwrwbZ7SU z+70b^JfACRtDD_q!$7mZ(l}zc=0U)4*XtheZDcO7)wqNrAf#b8-EM(e8J7@d=gwQh z6M%cwx8~)&=m?Vs(_$g0tNEPQ1Hw-ZW<7iEcT|hWdHz~C2%*>x&2kzXaEB%>zbMY0JWB@Nz|}BV6*_j2=@{~0l3OGKy)$yuC@)TdKmy--4`Mb4FGAc5Drg7umGxU zb&@mG&n$r1MC2|&wOIgMp$kqmY5)|!te~WO_Ps_E3ZQ6yGIdJ0r*S410^rCzldtC* zs5l4!`5`ns3{Cr|YCr(e#LD-zDJKLwh3R#`f?xo>lw0yJgguOB&@+JDUk5^6 zhu_*L^C$p1xU17bFpt7O9Z<+Ud`Or#6-cvq+WIjb_+I8y6;%Mzf{_qBjVCYZ&;a;f zG2qoFjI)}v_T8BQkb^Ayp+#40OuHM;CM*DQj0Hpb}m3`Lzz|NocWz!*nt)(XgO`Vhw|NcSEIXC~RU@8AC>@LFVlC)ORVZ+L;X(aP+; zSD}i>>y=5%ZmPwKz_7&7IK}Xl2LQuduX)15NNlmzID`Tqgs_=zvqYneLkQ8i@zJmZ zVBYo8JiG@Jq4J>G3JDONwEd&by8xX+~ zZ?#xcUkhMq_ZtA&db9wRcRxV@Q^10t0l+GhgpRxd2;?#v0B*Y9a7%8E3P7Xq@(_0l zqyWf-7ZM?9lmhTP{w!@`01G>7T3P~tG+L%A<;hU35&*0blWU)|Qv_g+G+h+e1{9qV0CzhEmwF`ttftRJ9x(vQc)4(hh>!xf z94n-ztA9%YL=&E;fT~Rc;0{xOYSaL5I|bD42LoCFDB(!S@yl;VTlqcO9gUJSw*b7q zN&5Id#wi3y2|GZig*oFNMDFPpw~ayvfS%53NADRB6EtXkMx#o#KG4vM zis}If8#9VtI*d9hbYttU0QB~{oB~PrgFzGkObn&~LV)jk&}PN6sihRf08|MJ2+=%< zQEHm6flcBjZ+#4+IaV9)2&|gbS(k;e3CI?Eyg9lrG9Ubq0BA;RBs2?M6aZqnlgz91 zaW=n?zK;h!=sZV%vmcxU%b)m`#uE(=fV5{i2w*&DkZ4ZYtE(p2c^*a_jl#6K@kBxc zAmungq(Hbzp%lg~^g&tG`%wilC|58F!%5&MT`B*0olz)*aaPXX%+QfnJnsGg6&{mk TdSDZx00000NkvXXu0mjf)lE68 literal 0 HcmV?d00001 diff --git a/source/anims/ghost_monster_walk+idle/float_up_3.PNG.import b/source/anims/ghost_monster_walk+idle/float_up_3.PNG.import new file mode 100644 index 00000000..0b52fb8e --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_up_3.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvxeuqlint1b8" +path="res://.godot/imported/float_up_3.PNG-04cd06e66a4bc708011c281e1efca710.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_up_3.PNG" +dest_files=["res://.godot/imported/float_up_3.PNG-04cd06e66a4bc708011c281e1efca710.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/source/anims/ghost_monster_walk+idle/float_up_4.PNG b/source/anims/ghost_monster_walk+idle/float_up_4.PNG new file mode 100644 index 0000000000000000000000000000000000000000..74a6d43fc5ac4cb1dbd3b24d4f0a484649035168 GIT binary patch literal 712 zcmV;(0yq7MP)wbZ7SU z+70b^JfACRtDD_q!$7mZ(l}zc=0U)4*XtheZDcO7)wqNrAf#b8-EM(e8J7@d=gwQh z6M%cwx8~)&=m?Vs(_$g0tNEPQ1Hw-ZW<7iEcT|hWdHz~C2%*>x&2kzXaEB%>zbMY0JWB@Nz|}BV6*_j2=@{~0l3OGKy)$yuC@)TdKmy--4`Mb4FGAc5Drg7umGxU zb&@mG&n$r1MC2|&wOIgMp$kqmY5)|!te~WO_Ps_E3ZQ6yGIdJ0r*S410^rCzldtC* zs5l4!`5`ns3{Cr|YCr(e#LD-zDJKLwh3R#`f?xo>lw0yJgguOB&@+JDUk5^6 zhu_*L^C$p1xU17bFpt7O9Z<+Ud`Or#6-cvq+WIjb_+I8y6;%Mzf{_qBjVCYZ&;a;f zG2qoFjI)}v_T8BQkb^Ayp+#40OuHM;CM*DQj0Hp Date: Thu, 14 Nov 2024 18:14:17 -0500 Subject: [PATCH 076/110] Add pumpkin kid sprites --- source/anims/pumpkin_kid_idle/IMG_4654.PNG | Bin 0 -> 1892 bytes .../pumpkin_kid_idle/IMG_4654.PNG.import | 34 ++++++ source/anims/pumpkin_kid_idle/IMG_4655.PNG | Bin 0 -> 1908 bytes .../pumpkin_kid_idle/IMG_4655.PNG.import | 34 ++++++ source/anims/pumpkin_kid_idle/IMG_4656.PNG | Bin 0 -> 1855 bytes .../pumpkin_kid_idle/IMG_4656.PNG.import | 34 ++++++ source/anims/pumpkin_kid_idle/IMG_4657.PNG | Bin 0 -> 1862 bytes .../pumpkin_kid_idle/IMG_4657.PNG.import | 34 ++++++ source/anims/pumpkin_kid_idle/IMG_4658.PNG | Bin 0 -> 1818 bytes .../pumpkin_kid_idle/IMG_4658.PNG.import | 34 ++++++ source/anims/pumpkin_kid_idle/IMG_4659.PNG | Bin 0 -> 1917 bytes .../pumpkin_kid_idle/IMG_4659.PNG.import | 34 ++++++ source/anims/pumpkin_kid_idle/IMG_4660.PNG | Bin 0 -> 2019 bytes .../pumpkin_kid_idle/IMG_4660.PNG.import | 34 ++++++ source/anims/pumpkin_kid_idle/IMG_4661.PNG | Bin 0 -> 2040 bytes .../pumpkin_kid_idle/IMG_4661.PNG.import | 34 ++++++ source/anims/pumpkin_kid_walk/down1.png | Bin 0 -> 1894 bytes .../anims/pumpkin_kid_walk/down1.png.import | 34 ++++++ source/anims/pumpkin_kid_walk/down2.png | Bin 0 -> 1884 bytes .../anims/pumpkin_kid_walk/down2.png.import | 34 ++++++ source/anims/pumpkin_kid_walk/left1.png | Bin 0 -> 1846 bytes .../anims/pumpkin_kid_walk/left1.png.import | 34 ++++++ source/anims/pumpkin_kid_walk/left2.png | Bin 0 -> 1886 bytes .../anims/pumpkin_kid_walk/left2.png.import | 34 ++++++ source/anims/pumpkin_kid_walk/right1.png | Bin 0 -> 1808 bytes .../anims/pumpkin_kid_walk/right1.png.import | 34 ++++++ source/anims/pumpkin_kid_walk/right2.png | Bin 0 -> 1841 bytes .../anims/pumpkin_kid_walk/right2.png.import | 34 ++++++ source/anims/pumpkin_kid_walk/up1.PNG | Bin 0 -> 2004 bytes source/anims/pumpkin_kid_walk/up1.PNG.import | 34 ++++++ source/anims/pumpkin_kid_walk/up2.PNG | Bin 0 -> 2010 bytes source/anims/pumpkin_kid_walk/up2.PNG.import | 34 ++++++ source/scenes/player.tscn | 108 +++++++++++++++++- 33 files changed, 650 insertions(+), 2 deletions(-) create mode 100644 source/anims/pumpkin_kid_idle/IMG_4654.PNG create mode 100644 source/anims/pumpkin_kid_idle/IMG_4654.PNG.import create mode 100644 source/anims/pumpkin_kid_idle/IMG_4655.PNG create mode 100644 source/anims/pumpkin_kid_idle/IMG_4655.PNG.import create mode 100644 source/anims/pumpkin_kid_idle/IMG_4656.PNG create mode 100644 source/anims/pumpkin_kid_idle/IMG_4656.PNG.import create mode 100644 source/anims/pumpkin_kid_idle/IMG_4657.PNG create mode 100644 source/anims/pumpkin_kid_idle/IMG_4657.PNG.import create mode 100644 source/anims/pumpkin_kid_idle/IMG_4658.PNG create mode 100644 source/anims/pumpkin_kid_idle/IMG_4658.PNG.import create mode 100644 source/anims/pumpkin_kid_idle/IMG_4659.PNG create mode 100644 source/anims/pumpkin_kid_idle/IMG_4659.PNG.import create mode 100644 source/anims/pumpkin_kid_idle/IMG_4660.PNG create mode 100644 source/anims/pumpkin_kid_idle/IMG_4660.PNG.import create mode 100644 source/anims/pumpkin_kid_idle/IMG_4661.PNG create mode 100644 source/anims/pumpkin_kid_idle/IMG_4661.PNG.import create mode 100644 source/anims/pumpkin_kid_walk/down1.png create mode 100644 source/anims/pumpkin_kid_walk/down1.png.import create mode 100644 source/anims/pumpkin_kid_walk/down2.png create mode 100644 source/anims/pumpkin_kid_walk/down2.png.import create mode 100644 source/anims/pumpkin_kid_walk/left1.png create mode 100644 source/anims/pumpkin_kid_walk/left1.png.import create mode 100644 source/anims/pumpkin_kid_walk/left2.png create mode 100644 source/anims/pumpkin_kid_walk/left2.png.import create mode 100644 source/anims/pumpkin_kid_walk/right1.png create mode 100644 source/anims/pumpkin_kid_walk/right1.png.import create mode 100644 source/anims/pumpkin_kid_walk/right2.png create mode 100644 source/anims/pumpkin_kid_walk/right2.png.import create mode 100644 source/anims/pumpkin_kid_walk/up1.PNG create mode 100644 source/anims/pumpkin_kid_walk/up1.PNG.import create mode 100644 source/anims/pumpkin_kid_walk/up2.PNG create mode 100644 source/anims/pumpkin_kid_walk/up2.PNG.import diff --git a/source/anims/pumpkin_kid_idle/IMG_4654.PNG b/source/anims/pumpkin_kid_idle/IMG_4654.PNG new file mode 100644 index 0000000000000000000000000000000000000000..30163a0cdaa14d7591af85cdad59366c5bf9096f GIT binary patch literal 1892 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}6{!)PX}-P; zT0k}j0}G=R11m@g5Zf_I!`W_(8Vt-}aV7?a_DlvAs2V>Y4FWAd4AKLknHMlZRRhHq zFu_$TEMP{kLE4_kt``JSoCO|{#S9E0z97svl#hD=EpgRf_NpP;kyKN>wn^ zGte_ovg1-vP_QXVNwW%aaf50H@@$ndN=gc>^!3Zj%k|2Q_413-^$jg8E%gnI^o@*k zfhu&1EAvVcD|GXUl_7?}%yCIAPAFh}T4HHViISa9Vr6QPf{BejL=mcHh$yO=Hu~t+LsTJo7!sOb6M?~L z$7Q1rj~Y9!rKw3L85mghc)B=-L~y z$x3G4vy3aQcyZ|2im*J{Bx)KS;A#51_- z@r7eIGUwcQeOB*tn(@11arGwQ6_?)4uARTX()e>)F zJ=Rb)ea77;<(6wLpf&x5z!%N-`EsJzqtJmdXenbXJZKBj2TiedY2_w(|c zX%~&xeV)8o^l`Y!jsFF!e_orICwJq-vd^5E3cFt?OuxB*@~obI=gTWt7CjQ0G2zRO zhoLrGOHW8-=A1ivU1ghkYS{;qZ3Po<1xd{++3%D+;kKPtSVK;^?Ut)0S3NQkRO^23 zOng`O>b8MfAKS$#oz3cL44rmAUa@B^WAg6}Ec})dFX#}TuzTi3UX$xy5|SK`E?*P~ z*(Tq|&sO*SUt=T>|_qj687PHFy% zSqGm_?5^0jpM7GdW{pVKv@^=nxy|N1NS9%oG4pLet%OzhlQ0eMv^BzlzH9F8Xzfd7 z4ETAE-*xACYx_3K{gZtTzAh9$_R#2(Am{wa3po}|UpH-z?agVSlMY^3S61w4JmKnE zA({6#eUoysvYy23arvaL7x!$D?d+78eXEmmR@Kbb<8GLgUzS<%?IT}Jy>8=5>r9=^ zy>2R}P3MU36FJ%{w!X)1zqs)B=Z1Fc6|0ovjQmg96;zxzGk!3+FysE>hK)_jch~-~ zTCBWtNrK_&UmvsrovZ^tRau^PiPN*Yu&r@nuJK~w?Xr#{j1sTjJ=p4(YCI$M1cSDv z#I9rKN`%g?Y7=kD^+@BDkh*L*DfU|7V#AYSrJUjUsT+5!Nt}PbJ-S$PU(G?i{VO+_ z)qT75MM|M>_J^ej@<$I(oX0nB&aqt+j|T6)U9ms?>QQA~UzKAwdM%PZf3GNF3SK{> zBJF+IpSfGg?0pZdmZ~V-F#oprJ{d-i#cffm_uT(0_gty)<_G@E4(XfOxw+Oi&#EH{-~L_H}USa7(MYd)xN!=$4;awtd{#zWXrazKU3#~ zrrOJ{Zw(QPAM~w#c4$&t)zrJJx1|c6u4fh0KF{gVw>6VdVf_Z)7hx(wg}GXGC2JTm zL$0=7o+xS8-S_O4ll|-HsMmUFI-6gnZxzk^eDZ}!|5KTU(3Mjjy_qWMnOJY%x#gH6 zPwDnYv+u8YJ=L#uE*sM|QJs`6G3WVNcIcnfn07(*(Q%(9@A7|8Mc1_`r*D0-dbJk-*3+XI5SEkB!RLg(!GY|Jmdv7h&_c+ZO`LKZ48A*0GPZPlUvRQD{_3BN4fmHEKiSB+w5Up5e$rp=^gY`ZnnkNG PgQ^`*S3j3^P6UIVyHHI*!dO*_a)Mv*8e8Z1d7=v)$M@>X5~xl&3cx z2hVyz-f}!C<#gyM?mj^{3 zj(`IIpigxr(^ZI4$0{AwSCo)2sR9iVo#F(PcbJT*He$9Pl|!QeJ5>29KwAR=z|<5~ z5H+@}C64Cu zM0l|SdWnHo44xUbS`6O5E9MBOE zB*24Ue0)46-Uh=LhJ#of4hQbC2Cc2FR17PTgas$ZS!VFj4?T@_8t= zFEf-M3pt?C>P9PTc}`Z?N*_V2kh|1{6$Y}o>}WO*5`kC@7F;n`X$h<_JQN9W*-KNe zm@SRJmkWJfRrA&TxsmE);kis+xC2^j#bR@qv0MmEbZ1J~Ley>oxJ>$7yj=aPk?JCsLbvcb;QpnDdKO7I)Its{jiTia98`giYHI& zEc;|VA57=JwfxfFI6v{)ma5IZO{Ye8r)O&ojC|7{J$0G+&4Z1)CDgi2Zt_bdh<6_l zUE6ZxX!F&cR!z0$0h@N53Z!0o!yT_Yb#Y)cEb$-I4e0pC()%+9e^N{&y>8a=#?dN? z%GT_E7eYg0kDR_;bl$W^p{RS7a68D()?nPq@qAOcb+=?X_R)#)7=g~+6pNcMJ$lr` zNsIHh^llncf`nMD?lmn_1wM1+6ZiI+9D%Mo8K3Mkbl&NB(=;&-TS#((f#W+ty;bjR z6h{OTet^#$T6@>p6T^oq4yM#^j960@F?}(3_YaK=G;W{LwpTev#73#Nq{!xtupuf6snZG6?`voHOIj=7k(uEBB^w`Uj-voc9E zUYjKu8`E0Xq&O;xsqWWOj+SNqITL$5YWLhP)_M3@R0wZiBo4g&n2}z-J$>7(LoHQ1 z;!92Ntbvz_Sv|2+jLfP&i42qGo9PbS3%5?`F$DZg5B-O+D74Fz_TjIdOwF;L%{eZ2 z`AR@|kbXK!Ka?Z|3MDP>1H;KKF^cOGgJxqs;}q(>*{OhYLqB;8{LCQL+!=EZH{g-G z`aP*)Z^Ny~8jEm1aqRdu*PePemr3QY+^DS4#qyl28lg|nA@dsV*0z_(P7cC<#ZfoyxZ`Q)&+*>snj4Mwz z-AU>1ua-Q7`x$!6#GTXT`%>Dm9c%SWsZajUPhut%n=71mhCDAlk655gAAQA|^$g6b z{UmFtDB*}S#UOWgiF@0ijMy;iHp6+owY@XPl5LRcmE;3%AG7r`` h+A(&R-)EC*4{3O~b&%w>rAO7z5Y^d(T<#Q-@)s{w5Z?d* literal 0 HcmV?d00001 diff --git a/source/anims/pumpkin_kid_idle/IMG_4655.PNG.import b/source/anims/pumpkin_kid_idle/IMG_4655.PNG.import new file mode 100644 index 00000000..1ded29b0 --- /dev/null +++ b/source/anims/pumpkin_kid_idle/IMG_4655.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjcfxp6u0po3i" +path="res://.godot/imported/IMG_4655.PNG-8cccd5148ca31d4a7d23f8d8030f9dd1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_idle/IMG_4655.PNG" +dest_files=["res://.godot/imported/IMG_4655.PNG-8cccd5148ca31d4a7d23f8d8030f9dd1.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/source/anims/pumpkin_kid_idle/IMG_4656.PNG b/source/anims/pumpkin_kid_idle/IMG_4656.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b3948f64d214c458d5d7649da94b4dd4b730810a GIT binary patch literal 1855 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}6{!)PX}-P; zT0k}j0}G=R11m@g5Zf_I!`W_(8Vt-}aV7?a_DlvAs2V>Y4FWAd4AKLknHMlZRRhHq zFu_$TEMP{kLE4_kt``JSoCO|{#S9E0z97svl#hD=EpgRf_NpP;kyKN>wn^ zGte_ovg1-vP_QXVNwW%aaf50H@@$ndN=gc>^!3Zj%k|2Q_413-^$jg8E%gnI^o@*k zfhu&1EAvVcD|GXUl_7?}%yCIAPAFh}T4HHViISa9Vr6QPf{BejL=mcHh$yO=Hu~t+LsTJo7!sOb6M?~L z$7Q1rj~Y9!rKw3L85mfmd%8G=L~y<|CP!!CivnKS2J&5xO;%3cGQ~n#{p0q% zdn#X-mc_omwMt;Q-OIP<_RKW@Ty6aM8KeHOZjL|ff-`1G1ZLRvYi_*kd--wV(dS4|Tzi*3WcKOc*XHO$I5uose|LW}LyCun?AFc4pRVsO zDP7|3CHq{0>N49hQshaFzO^x>&H4u?PL&#wOQF;PtWWURORG^evt zmj4qJ*KORfd)lKC9WxGImZeL=LK;u1nr^VqP5pShjPL&6c}8C^2MS&~nR#c=-k#H+ zH_w>aQ6y)X5Ib!`)vopk9R>@gg6haxgO|PM^NQ!%^#@-y{ke^`pl`0-E$KtSKN%Re zuTFGhzO2pa`1#rO?wGO|(Fek-K3InwzZIIBlcUt4_D^!#`rWUqE+{Uz{ru>g9~sX7 zo=@Iy_~5%@xW=L9Wyw`35{oCbgtPy8ASiR=#`#4-!3FwTlcnm6mZ_~yyykJ?WoBw- z_VoEd`nCDb_RM=~;@Wh{@z+F$w?zk5PMH^&6}7=d++H|LujQ`ARoMg2`HfCpZQZfd zZt2Tw=l3VxSij)9y3&g+$(74HYOeBaes^OV8^?y}lC$KCZrJVI+_X4Ja_X|+7dP#; zH~ok(FIuYA*T-FOQd#uyvvP(9yOyi3&|u%2C6_@J&xe6_z{kAQ+y-Sk_W z%h_BjBx=pxxM!Vjy?XahXA$=*RfbcwE1md##TO}>zgcrUy+~B0{Ci?~N5yZ^uYsRB z)Md@%HzvL}=nvY;<{EfIZWk+S0M~V+H6k<4hGk}OI`D^>E?IZtr_h`x+2?-MKbcNW z>i_O|F5HZN6=kNKxnL{g-O<}Ql<^o+tV9;FAQuX*+_eh}i*UJ#=i@|mQ z&!hLxKiK{?uk!J2RiFN^Nrka)8#De|&5Ap`;B?;=`>br$@b2vD6`QJKHKIeNbe;TQ zd-ti^wMRy?m=v^UKIXFDdv8&K^~v3Ju}Q7&*C(i5Ge)t$5At~$(Sve1w+ zKkM6~aO0|(gXTrG$jNg|_n1CBde>dkZhh>V=dQoAqugAI9QC-D)hUX8)lSu$f(=<)z25szI;(mkOI|(5I=XbVnb^Wxv)`W)y6wu~ z8rEJK>Ars(Lj}ivrm5dfe_%`QbXjyUY~AK1HHux|XS~_EYx{n=C6{lP{`&traPEZ~ cx&Hr5$$RHX{h2Y9A5^1wy85}Sb4q9e0HMa?ApigX literal 0 HcmV?d00001 diff --git a/source/anims/pumpkin_kid_idle/IMG_4656.PNG.import b/source/anims/pumpkin_kid_idle/IMG_4656.PNG.import new file mode 100644 index 00000000..8a78c388 --- /dev/null +++ b/source/anims/pumpkin_kid_idle/IMG_4656.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnvhhsvu13aws" +path="res://.godot/imported/IMG_4656.PNG-9628fed33c8cc672d0339c35e7b933b5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_idle/IMG_4656.PNG" +dest_files=["res://.godot/imported/IMG_4656.PNG-9628fed33c8cc672d0339c35e7b933b5.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/source/anims/pumpkin_kid_idle/IMG_4657.PNG b/source/anims/pumpkin_kid_idle/IMG_4657.PNG new file mode 100644 index 0000000000000000000000000000000000000000..3f71fef8ac2204bb846bf25bf3a92239b7e1184b GIT binary patch literal 1862 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}6{!)PX}-P; zT0k}j0}G=R11m@g5Zf_I!`W_(8Vt-}aV7?a_DlvAs2V>Y4FWAd4AKLknHMlZRRhHq zFu_$TEMP{kLE4_kt``JSoCO|{#S9E0z97svl#hD=EpgRf_NpP;kyKN>wn^ zGte_ovg1-vP_QXVNwW%aaf50H@@$ndN=gc>^!3Zj%k|2Q_413-^$jg8E%gnI^o@*k zfhu&1EAvVcD|GXUl_7?}%yCIAPAFh}T4HHViISa9Vr6QPf{BejL=mcHh$yO=Hu~t+LsTJo7!sOb6M?~L z$7Q1rj~Y9!rKw3L85mgRdAc};L~y6TsZ*%V88gUmS;6&nMbg}15(2=K0*awYT9ge{zYGS@f$ z{ZoBr?(^sI_crqiNng?Ky?YR5lV|k(W4XU&{&|swCya7t z-BNjfq+_lKkEN_!H;bkAtyqI&nd{l5PqPQy<(j_N)|!tg=gsRcZ>1O{Cvna6`?llH zp@{tOswG!S*CjnZ995&zvGTf~(tO)T>?~bXKYC5}7z?kGt;tvJyxo6!$L?*Hzx8Z$ zIxHnym#UYyVaMiK4?aiaaIkTBdAeS0T*_6IP=Cwk@xl3#e?GV$`ZQ-<*905&U1i0b z)6o+c zkZa$Yc8tOJ!RMx9Tl2+syjh`hP<86VurJNMtD|n;Fq#Y|yDOb;!`Jbqc zioA2@VVs%Q{aIGGPkgd;ZMx+6>+rl&sr|m%GQnAq8QpqyMl0rWTNNxi-z>fVZT9VXxY->`b47P<;#mFe#zr=d4U;8j$p*HZ&%5jDrn~6MBUfeV zf{YITFN)C`%EeRKW3Nawxb;5UsoKzeaf4ZXm#N6J;{C@@9-ry?;QCfs9sAYNiViNz zo#kYnb#;88D9Th`(C8XNg;$Sl-<|2On@zL_EGg%ui`SDBx9 zzv=p-gf)`)7uK0q-I#57W?e#W1jFWE_mA8Pdc8#MaTw?0mGVDC_P)3`Tl%S#$i%v9 zX)Ay68r`dZCH&lN@1L-me~+zlHg(*clOS1l>%JI+ra;HW0*>Fa{dbhjT6&DZ^;6iQ z+s<1iUi6)9I{%n$?k|T}T@hJLepmOP?)dv@--9$Z{o=U3^hB4?>;6qDB3GLxXmM0) z_iz7FZ@}vncDYY*LGQ86Jj<`|+qB8)?ELUs(r@Zt9qyd?_T^7*#!I`uUJYuhlt~Q! m?4`Q&e-lRn?-P5Q2l;EaPuv?^s%8PISUg?*T-G@yGywpqPvy=4 literal 0 HcmV?d00001 diff --git a/source/anims/pumpkin_kid_idle/IMG_4657.PNG.import b/source/anims/pumpkin_kid_idle/IMG_4657.PNG.import new file mode 100644 index 00000000..eff8b37e --- /dev/null +++ b/source/anims/pumpkin_kid_idle/IMG_4657.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://clhia0q8hyhqo" +path="res://.godot/imported/IMG_4657.PNG-4fdee99f3f976ffc103078fac082a420.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_idle/IMG_4657.PNG" +dest_files=["res://.godot/imported/IMG_4657.PNG-4fdee99f3f976ffc103078fac082a420.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/source/anims/pumpkin_kid_idle/IMG_4658.PNG b/source/anims/pumpkin_kid_idle/IMG_4658.PNG new file mode 100644 index 0000000000000000000000000000000000000000..9df15f130f3e478cbed869df0604adc63d39b8ff GIT binary patch literal 1818 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}6{!)PX}-P; zT0k}j0}G=R11m@g5Zf_I!`W_(8Vt-}aV7?a_DlvAs2V>Y4FWAd4AKLknHMlZRRhHq zFu_$TEMP{kLE4_kt``JSoCO|{#S9E0z97svl#hD=EpgRf_NpP;kyKN>wn^ zGte_ovg1-vP_QXVNwW%aaf50H@@$ndN=gc>^!3Zj%k|2Q_413-^$jg8E%gnI^o@*k zfhu&1EAvVcD|GXUl_7?}%yCIAPAFh}T4HHViISa9Vr6QPf{BejL=mcHh$yO=Hu~t+LsTJo7!sOb6M?~L z$7Q1rj~Y9!rKw3L85mfKJY5_^A~@fMozItc75Vojc76TvKHmbTSoOjjmL)+fp`$nZq_V(-8 zXJ^YE-7P7X!0m@AuA(d?0DteIVE+!Nh(+aCO&Gf1Qc*C+y&8W50ao z<&}2j81J9U&K*xw&4>)my;4wIdOBIqiszqb!-gwPhab1^zvN>3=<%PW+@^KwGB>gy|=jC%|( zq{hB9m?S0IE?Hf8+~(rBlRsDgJ*mtce>T4;uH}FJ{E2N28a+p)>k|@_xlfmO%jQlN z3}3o3eABPf%bhB0li%2_%eZ6M8oN5&(*NA_>GB12HuIm_*6y1TYa!Utr#T~9_wlK# zycN}K8|9^$EdO|SKRSL}cTMhb!HOsBmSX49pRFqv5T3bD*&wgywdR7yA|Ewt{+`($ z9+>O7V6ubB-*c7sF1OF|^WS&!_{9eK+fQv%swXW--hD|?bREMBiC!DK-@-FZ%)R2O z9vQytkrA92>?q$m|0x64ZEL3|x5|ASLoQ0cTw&(h>gv{7yg9TeOYM?ktx{p-%;#tK zB(r2B23-0O<#jO5dG^Ip(c&{2tziuUdv7Xyj6bLMLcT}EhToe#;+B<-U9O}xlY;L4 z@b>n(lS`CZ#H&@Wyqogj>)QJ|Y-gB_#6JEunEA2N$?N!oPfOP^cqmWqQk>26;9Z{V z;x``mbXL_QF1`1})>5QIkG1F7nydb=MJ-qSFWH??{Unz$;Ky%et52N_+uu$Veep|C zN|!e|Q}SenfaA`;64ycwe>>;MyEN^sTCYuF3uu$cb{;`)U`cfQhPi>vhz3pyaQ9h~t+^ zT*INxoy+g4AAVbY(B}D(+i`qOGv75Y+`(?G(=Wf@_QYYo-HVF-R4zH#h)O^G9kc&q zK`y(VbI?wU6{(^hq!$-JYTW7RfKI$8dBu!4xoyRaDv z6$-H}?n0T1y&Jr26iXuaZ@fRnD1UGMA8COGzbk?bHyhR@#e7|;A@k?Y-_l!(jE^2l zp4&H}@!j4VSzFa+=p2u7|D9x>X5aUxXrqUHeR)fh&guOzW=ji~ZrIrv@aD3#z0STP pvvd}zfBC0fr@~NOd?6d0@~y<8v+RinL=e0WGF;K5@;ZkNhD#Af`q{b+6Y(> z0Rd$Ql~To_Or=FE2x0|M5D<%K848#b#1s&lfaN{k`M!PEKKom1?S0PuaZdYsyKAT$ zr~?3?LGW<#mm^FOs+;6rZhZWL93WhOcW2=H2RoIJ0)Pw}p!|X3El0%?%0r=9M`$VJ16y7zRoY;~N}>PF6|$E`b=q=J zV|#>f0bskAA|QEPXF$1I3oRg+7wmNiLuN5hBnm5niV`r`3Kifez{pbul}CaJ7<48V zBfuio7#Ml3D1!*t8if~wMFe~K!Va=HRG1yg0%d`~sl#9}M-C+toL_8kqsGEcr+fJx;FKO z+1mJcI`8AEg0JXLrzwtwp_7-mw^;5m#^2v4yxllPFrc@-)u+HGlNt+sKp-30moWhw5gNc)c_3V@>a#n-Lb> zguT53%V`DU_2t0{Mspb327ibXia9uKhuqNzxi_*9K)iV>r$=pqr0;s^Gs#;fuU}k3 zFpikRNfMiLi+@#n6>2rpr1u)_q{qtIlS^SDU-x43ANi^B(QB!z-Hcpu zt)r=4j)!$|QMS|Yv(RU&g81;?tyV4;Uf7i1k>&9G{n-nTHSU9T_ih|{WdLu31p0-k zgo6)i>vYkFZPhPNkY}b)nkcuPN1qr~vbM)wF4(rzDO*{&q|}<18OTUPTXOfBZjVZ= zEs`#CM`V7r$Hla0%dCsHkCX`$t{G24^;fzjK z6<3vht~zoaO<^OSs+5VL?b-}Y*punDznI$4W)t05eI=#_e?U{HWMwwy>|mi)*ZQva z7O*pR|MDEMk#zK{Ng%CtxI?7cAY|U11IX^O$kRj063=|Ypz^4{ccuQ~PMoNEHUCG_ zt}H|Sc8A|!FR$&MWW!sy!W`lcS2NSMsP0?Y#+ZkXGVRKIl7@bD7|2kbf{s#%hN{0X zqB8kKDP{TXIC~MY0L>7MAGouKkg53S#3cI;R^?yUFgp;`nK2krS9%U^P#CTgGhNVU z?rHqcVyW_~%uY5lpUS&YU=HJmCJLuZHjSP6y*dnk_gDcDJqPJ_h*K_lqT83#R*-U& zu6^eup7iHz?;`*8h)-&|PW7#&SZBXMu%P&nXJr|*A6HM+IZ4t?3h9p6Uw61F{^;I@ za}vp?k+DoG#3#Lhchkq(rQKr58=}-WoLIA!b>PJDt$(jf%r@3$UMhQB5yTC5f0^a{ zRLfknT)!_twlrY$kaTran652S{|n>9?|FAx*vyWp`7t@CDz@^`?f7q=t27M-v}o1( z9sRDWU2J@#LBEa+W&Jd`ug$xv9Ahe?!5mwP?=ZbP(wOsQjrP}^hrN7!7Am)Br6wM# zw$!%iHce}E9nU{opI$y8agTpywcxD(-iG1QZoX|y$NF=%4Esbja zL$m+eQSiH=hhOAlM>1gipXr;gbSmvKNZH0w|E9C;Q}F1S-qqQ^>+E*`Piv{0JzT!wg3PC literal 0 HcmV?d00001 diff --git a/source/anims/pumpkin_kid_idle/IMG_4659.PNG.import b/source/anims/pumpkin_kid_idle/IMG_4659.PNG.import new file mode 100644 index 00000000..a6e159fa --- /dev/null +++ b/source/anims/pumpkin_kid_idle/IMG_4659.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ba4gck47lgab2" +path="res://.godot/imported/IMG_4659.PNG-c9985083810b684ec4d5126d6e95458a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_idle/IMG_4659.PNG" +dest_files=["res://.godot/imported/IMG_4659.PNG-c9985083810b684ec4d5126d6e95458a.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/source/anims/pumpkin_kid_idle/IMG_4660.PNG b/source/anims/pumpkin_kid_idle/IMG_4660.PNG new file mode 100644 index 0000000000000000000000000000000000000000..22ae77d763dd384f1a025e80b40d042aab452ccb GIT binary patch literal 2019 zcmZ8ic{tnI8jcW4Y9~~+nr3ubTcSY`1ZmX1R*hvWk;IyWCLv+eHfZTs+g?@6*rhtu z(y4u!q8Bw(I}9q;UbR%KT1zYCCiJ?u_dL({d%yEN@B4n=Iln(nvV)zu82A_%004+t zT40^H2<3&aAooj)jQq$2KAMv`22eeCe2KeZ5?w9*Y;6Im+*}wSz;_G);!(JP=2JY( zFY=uQ@bA}w0Km0CfWTLd9T#~kfg3!{0rD5}ePwfNg}_5Lw2=S5IZyWL!~-cVh=f|W z(EtEhTVC+p>Q6;*-P!`3UFoj2HYj`u8IB`__!8kvawty)Fl3^*DVa#eL78L{g@$4p z!S)#_Zq6$sV9K5JDwF&%-t0nlLmN3WXX{34SOi?8UEg?#>7nK&OYI z5C{f?0cU8zL#Y0UbNc%F2u&mciPYdSG-weNI*zG9p?!B?@*f{8k%p%RhSCE=C{Ug+ z&Nn2CZUlqz8Xc~KISKf~KA~Y$(tZ~L9zi4#$wUgBhBya5hd4CnY7Gf^6g`kmBJNLp zXtqDTDT)4VmB;7xCk673g(Bf7{zfpS27%~@3nS5CXd7GvkqXr|L>!R56(3Z;^)y8M zfBOU0{~Y+>HuoL5*NFxjA`X8I8eB&7?E?Tn29{V;XIGI`7i*Ht53)vDO6hx_#*(k( znS`Pfw4=b+)2-A@94>!h3Exv}uI#R4hq14=ye(HN4L2);7dbJ`vaGB{5-~@vck9I^ zj7h#x4xbxh`gy&}ua&u}cmCn+=2Nwjz3N=r=~1( zb|hZ!W+IxFXNVqxC&vw9w+2r{jo%v@R~x#jvt3wbbxo*wpqPS)v^Vb+JsFTa@~=9b zm1ic|KKZIgemPUnE1Nd5s2zGk9;|4)wKrO;xkITI%d z^!_m~7Dk`EYp1g@tqm02U8+4g;rs%a?TLPf1Fb3v6&TrIv|=BvdZ@$v0(*iw42=lC zdwXW}j0mL$m#FaBQcXW3W^Q~|ujt``A7f`Gi|jNNITY_;gp?R=OyTrR&>-kG-DPRcsLd4xTo9QzG4cUc%3*@#9mYlwUgY&HKuCbC2as z8bPUMVo8CID^!_VYf$CB0++(iH|*`8$Ax{KjtbYA#nl?mVX;0%tgfow#`F3wBuk3c z>+wQ~(<_eyI8v8&Gb&Ucup7KaOuGfZ&6an7(b@UKzT?>OXYV%$(dw_Qw-@@i%k_TW z{Y`ST{fSn%qk=v@GUd?mV0#@%2}6mJQg3=CO7HuA+2GWa z#Z;EeQheMW1(J~*=`3rrZWQN!@N;^K1uGXUl|fS(6o60m&Xiom2_&B-2*Iaqe2^ul zyj}d4CRY{ObT^JKxX-z;foFt#_39b&O`uJ(L~%n;+;FmXqML)O3gq^+BlgzDNw;h< z7TRx1|I*X>@rJ+8KW-Faiew@0N7Fp@q+d?B^Vd#PSr-~hFC3FI%;~Yz-_kpARP=@0 z5dX(H;;n$4CSmOv$63Y%{!I9WiLNyXbm{Mma@m^JQMQhM*l63b+-w8>?`M#;W&iY# zsIlm%NGUKoL@=M?!U>A+^-RWS*tEs;7xu0v3UrjB$l09@m5PoCt zmX$K4?MTI4r6r1KrjzoU(h;rNC+A_#Hu-jt*D(ck?VnL?i|LQ%8?fbRC3mC#3c#O2 zkoycXC4Ibe`^p6>f6}clF47uH!#+nlHLWdM>TtAjfN2uuOGxQE-i0N3b&eaCL#E0F z#_p_te?=DA1e}^wC`)nCyzOlSyk3wp-59)a+BL_-NDR|UTT6!4v-hK33D#P(&F*r zSVOhB`HItd%>_)@`>x0{OP}13t5qKPFIntRacv}p-0+UCqSz-gXme-dQ56}zVvPH; p9kco8o*>5ouv}hU8KcnI!PnUea50G)>*l?BmS%R?YK%|(zX2O-JlOyM literal 0 HcmV?d00001 diff --git a/source/anims/pumpkin_kid_idle/IMG_4660.PNG.import b/source/anims/pumpkin_kid_idle/IMG_4660.PNG.import new file mode 100644 index 00000000..e6e2133c --- /dev/null +++ b/source/anims/pumpkin_kid_idle/IMG_4660.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lwolivqyk7po" +path="res://.godot/imported/IMG_4660.PNG-57cc14d6d28b1bb4d9d172b3b2a30faf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_idle/IMG_4660.PNG" +dest_files=["res://.godot/imported/IMG_4660.PNG-57cc14d6d28b1bb4d9d172b3b2a30faf.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/source/anims/pumpkin_kid_idle/IMG_4661.PNG b/source/anims/pumpkin_kid_idle/IMG_4661.PNG new file mode 100644 index 0000000000000000000000000000000000000000..2254f90e92d3231b33d088ec8dab1a510249fa68 GIT binary patch literal 2040 zcmZ8idpOkF8lG{_r4&&K(-^lh7vnw*$|y2qBZfVOG4oS2W`-F|$faBp$;OF{+m2k4 zT-tWzvR&gSgruRT+%~6>a6ES6%+PjDXFbpNd%yKP@B4n=TE9P5lB2^p8OdXkAP`8# z)&}RqM~EOK#Q0xUSlB8bz$~Y8XF!i$9-rrLH~_)c*WMm}Y)<*I{x*vGVS zXMsTS_JROs^rj&BZcTnJ1UA7QkD)LE5M(OD2S9KFm;x2ZjDz8)0RWo};RMj=EDQ$= z-C~}eThlO5dvzZtq zGBh+45vqq^1YJVvnwXd%QD`I@4d*l9tgCc3nFFV@)OJn&_Q3%xN{}Cu?Z==)1ioY+ zMlc%-g$f$&t=&1Pl)XO8;2_#g7b*n_(0~Ad&SoKX5xU4dbH3J$O2M%G*fd~g>OHfa z@lVs(KUM{NL4TT`;8++MnSKci<-nj;TRArP@d70|*9O)CX_QX9GuIoZfoSc>B>0pQ97zi31r!|5%l@rT znj1n2U2JD1QL@m7|K_mpb>VmD$$z6-lNSELW%CZNn0x{tD^168k%SL zfSHkp&;U$P-%HlL>Vg)0mL+j0T8c8^jl$FJc8?=Xt(cA1yiKIi5h6MIaL-7#Q(XcU|WJc6rwx7ti$WM{Fv9!Uqj!G?Xb(;3Sn5WPhmnQ84^nu8rzhXyb zgUM!pCDtfCcg`ApUFjAqi;@zZfZbDgOANs!19E^>x01N{<2>Ytii%OCw`C)mL;{a^ zfoBU?{_(-l^2lHhBs{uB=xF(|^~QiHS`Q56E9wv9mR)>G8JBgx_+>`;tB$z#iZR|C z#_fxq4r=Sb?1uKTnBH z>o(LYgY!?OC$GKB^Rg~@5ogJ%La712Bvwu{Er7`v9~?GUM|H9c4wDkLtVqt?b8mTi zkx?PZFB()h0gvRJSLKZ+HHV0IJ#e1( zO&&jASQ?Sb@$d&b8G`MKf;Hp1%E;)Pcz4A0Lvd$ZVkgsPteUXN1{#L(!Qcq2Zj$LT z2bK-T5MJ5pt{W>G%ieFyQ!FK0WR-3bsl!V@4bIk$zHF`&Z*cd~zF812ANQUfVIH{g z5=*)zan`<87}TBEB0k^uX~X&2qnKzVXDN5BY0?d1fBdQSG)J}BnpW-ERo}#|Zd2Pq zmfpRd`_1{!!d=jTbV@b)4Y=TBfsJt&Wo%x-uCvCIp7O<`B)uZN$AEA`<)7&WT|-{b z+DfeBgiYlBmD)zGVSfX+HrV_XFBKa1yynL1=FCPDo?l@b3v-dU8SL68*3k4ub+J{o zdUf_?%3xOcTf)KtP8n=Pq)q6fKTZaG>jG9jXUIfmf~%aU{^?YvT$M^-n{MZjXztPd zLli1m-OA0x`q%P`cg^u20>=k)qFV9Q713v5DE!e%Z$sdc@k;IL1cx21n{uVNEX|UKJBAg=n zXDWNLx9_A*Q*6bZ*DX{y`0>G#!5C5ngDtV~3FBIn%>HTY_MI2SIS&+B$mMKw=n^(F zFsm~BupY%Ud%q?YM>obI`ucUCZf)Wvu`}nS>?~?^T5=qW)RmO|M(XTB8&ktp9*8lo z_@*|gOFnCoUK*ZsDs(NJ*RHeHRQtH;M!ZuA7#-ghj;=UDZ)*)v5Ilvp)(*HwXS}cf E2Rna2djJ3c literal 0 HcmV?d00001 diff --git a/source/anims/pumpkin_kid_idle/IMG_4661.PNG.import b/source/anims/pumpkin_kid_idle/IMG_4661.PNG.import new file mode 100644 index 00000000..58ae612b --- /dev/null +++ b/source/anims/pumpkin_kid_idle/IMG_4661.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cuwo0yh8l0tot" +path="res://.godot/imported/IMG_4661.PNG-e3d45248accc34abccda46720d3a8d7a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_idle/IMG_4661.PNG" +dest_files=["res://.godot/imported/IMG_4661.PNG-e3d45248accc34abccda46720d3a8d7a.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/source/anims/pumpkin_kid_walk/down1.png b/source/anims/pumpkin_kid_walk/down1.png new file mode 100644 index 0000000000000000000000000000000000000000..1b57818c75888bef762076fbfe9d87d8f6fe6d78 GIT binary patch literal 1894 zcmZ8idpy+X8vl)3=vWeV+>SY8Q^<_VAj43`Wkv{vF^LAFo#whTziEapmTVWdGK#68 zs6-@}ZA<00!jxrPVnyuc&Z)L`WYw6CGegHYo%i#3e&6SPKHu;6dEWQ;$9py;*k4E6 zL>mAA9X!q_Oo1?EXlf|FoaE&93V?9J{JnuY60>>5hEFEo6N7>P8%3@Os6k8sbtOd+ zo)FXZ+z+x1P+hI70KjPqp!S&)tU%>TSAx=Vt^#R9fM=JX7V2&A2KJNO<{o)CIhDQ zCB-qhAO;RsHdAq<>vmq1P=acLmjGmw--X2Vb($TiZJ;Lkn6w3Q@fNL_Y?rsn(#im_7Sw+M0D?o4mVh76pPNOsDe1# z(tR2r@x04VVZ}SP?K85$i=bom<-3BS=dL|`ugju-I`hzBWUjSMD1^FNMYvB41eQ6s zoq!wMh=9^ANqUWiNelHoNB@`%o;`ZAt>{X^%x^r;6SKUYM@yp{r3nd0SoYiYlFVB>X&yQt{{E#>k zA}rS&PIJn%LE>+EPa8#s&;NCl7>MnA_iNu+h=F>pJ5^<2?5dIDbFl@}H?QdI>}D^- zJl>Mx<^CgKQ}eaQB^!v{uIIpw2lE3G^!t6d1OM1x@X2g2{Mgi0>=u2)*i@}{O{apH z+f`V>mKuz?1YcNmVfp9b=WyIVE4Ai2$F!&Idy>lu5b2u-DW@sbp}j4;<^4|A;qob0 zNS4K7iM8=5T$h%hVP$%$H%Lcf67k*QRBZ0fW?sQ16!bFHFiThV?rFM(OOr*8&PSFs z@VvdFpjW5CrFF4ct+*n%#EVP1Nz1A0h&;XA1z~Re&CNM=$lv0ZZz>X{QSUrrpmV;g zWFre1cFRKfbjwZnMApgFM`ZH~UHKvHRw=jd1{dy~JDM%BAmjrV-(pg5Z4IBWJF{G` zJJc8E95XAiG(DT;Hm(Z?$JtK@^O#YVZdvc|iYn3A&YA$$Z65MgZPl&NEa@Jr6}jBE zWaNHOd;5M3t3$uspAS9a=$vp+mbdc(z^X;w%@f1=eVwwXDD}Kw2cgd z2>hMUF;JJ&`xEPy$F^TL;O=|gW0uWxEBO;G*uqZqmDfimD{rLERh;5yERE}wqz`*P zeKlwh`5;}^ch9bnE;7E{6neo2k~)sqb9scm{bJihfM75Fq%qp-St#lS=rK#hqS{+P z#^kk;s!2aif4h!)L3Np4?6dD$COZ~Oh5X}9h;x+5`m*Y-X+7)b=@;a_v0mfjIOb_w zFy~|`i_a9zEj2vk*OZ>3D(Q*k{e<#qvgO|cPe~HDqH^@2@Mn_BURe9pQ5!gdPam;wS{nyqLshP7NQ^!> zy}DtZqE}MRRK{n7xyMjNoF{R8k!MD^#m~LqiZ`0uJ#Z8&?DZ= zQK{SkREJqVp5MKY(b0SYu65u%be_>Z)Jz<*Ey|!7zb8i44D`K9KGJI&hxaG+=X>R& zaN=={-OPuOt)pDi*&xs-D#D7JtY8i*xP5u zkH4#G`=>LC_F(rZ`5b0rTA|tTJE24Jg^0h2=?s4$Q@>)4P^;pYVN=`rsD_ewAhZ98 zSdEzjeq(NGE*pIv7XIAO7RG54Zr&jN3Vy^rXZ~e)VDL(AUUAv=?$^?&uMLMQFA798 zP=HJuA;xy8i4v!KJDjy!aZ?MlD?}KUo1^|5w>Hq)$ literal 0 HcmV?d00001 diff --git a/source/anims/pumpkin_kid_walk/down1.png.import b/source/anims/pumpkin_kid_walk/down1.png.import new file mode 100644 index 00000000..02c0ac77 --- /dev/null +++ b/source/anims/pumpkin_kid_walk/down1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://us4hj7kyd5py" +path="res://.godot/imported/down1.png-c599537f8fe978e9fad7cdd3cebb7a09.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_walk/down1.png" +dest_files=["res://.godot/imported/down1.png-c599537f8fe978e9fad7cdd3cebb7a09.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/source/anims/pumpkin_kid_walk/down2.png b/source/anims/pumpkin_kid_walk/down2.png new file mode 100644 index 0000000000000000000000000000000000000000..86a8c04cfbefa8e4d97d8b5c705538659309c2c5 GIT binary patch literal 1884 zcmZ8ieLR%u8h!^;XtbPAhROVfjhvki#?+c-hD10SCi1<8876FFXyzTJ(uZ0s&e`O< zWeP)9szugEM}-J!W-7`@Bi}-VXd|&ZLu*gx`Tg$qx}W=ZUDtg-&-=%dNON(}P=~7n z0HERIXy+zJq#{%|$-lglCl}-Z;kh~30=Fav6Y`CK-tK1{;~D{CBR9jUay2l7m{L zqYn=Nw5f`Kq(Ax(R_=B;?1(q$O?4&)MTBD*!4XUrMi3sUPyr+XQJ#jgKn79}&gSrl z0y1iiL6ql;G8TngqkzZAC~qnac_4zzLhixfFgO%N9f?GexWPw>ZgvMh%jG*VDij1G ziCAoObTlR!kBQ)hV9l+ptgtu>tc3+y&Oq}{a6pCt&EXlXoBZWt$KnNX!y>`32o6%= z%V0+EK{5)ZXtc4`=L`TuTZLB7$Kco3%Fe zhS}Qq``O@^RRv$spB<(+7Lm>1gpg4JbTI2EgU<$06lcZ>78hwr!mg9P6t7pm^dw>b zzx_Jve-6BUn`@5p>!hfYup7UIqF%&ewgG@jrIX$MBi?G$p6#yRc^Is|9hHdc0mQR^ z?aqJ*b=f(-YBZv$w{GvQa3(lhu!(RyKY8+*b^XovTKu5Or*Vnq=H?j7@?Ndtqr^_l zm`3;k`gY|&c#d(SP*4qy??cqQ4KEzzzaKoemDzHRkgw{?D-7e6k-HK_J9 zc5E>#Hg2I6wS_0$QNE|!L9?vmGxuuS@1J`0bL-Mu>3prM_)4gKT3X`V#8ut*>6f_l zY87@blO2#H~&hO(YS_-~ot9!t#nx@Oo+o-S7m-D-TBbgjeHF#?2yxW+QFr-$%7{=!AS8LNwhdhksQc!~a&<{f zOjmuA^XRcV1^_eu@Z7Wu!ol!O{f91Qc5PY{yg$_Vy01}hqcxRR&@3vDzHaE8{@NKc z@uTeDnWY!pJ^&LhE>8D{eY|V-lR?Z62Yg!G`{*$l7McOi%TmWa%*NC9m(u1=62u-m z^C_~bI8iv>$i4c|c~d1^=V<#AevV^tSy}E7%_1;fA_Wb^TM<%ducj*=Cwy7+i)8A! zh%(^`gL*|2l~-IF&XXqlC99Rk#A2>a44jbq=ZKZvD%DCBlVd555{Ai$f^XkzWIjw= z?rl0P?P-31rWQVI5}S@?y-gfaxkks&EyVgS?z_^rVySlV!eBDg^g~)gG6j2kEx3g{}y+=r##gV6LRC-MDct6;QU93IfQ>b1FTfFUB*7=l6-Z!wlyioMrGtcf!f@4cQ z89g>0Xi~@5e=Q8KS+sW^DRC_QTQ=^*~S*Nqz9#(>s5Ir z)C{>iOp;QRa!R#`Xu9%n?y!U&E{TcmH#&FS_x1XGKcDaC^?tuUpYP}U$M+~Dzz=O` zY6t)TdIQNf5cZ(f^il9GOh_1k9YPrB=M5;D77xG&35&L2Cz%Y`!LdG|i!cTBv=G>c z2(#IEJ;D~yna(2tAcYO+e!&F5Ub_y$rsd3d9U0;a8qUd(vuIGJ^KY!B^)4whhMfVQ z6e0wG1!S!uPCZP6V6~gC&Wt# z*l7eFj zUL4WaSuI{$pTpK(3(ukRA_-WDJ(IPQ9>)=3iT?E6ECJ~30nLEECeLKQ*7Sh>Uw#Jl zp9{}Sb6OD|C(+OYntd9gVF4@R0RZU!w87Uah-NSxOy+D~hnX5utM@fPv46H5eUN@K zNS?;0Y(iF&f)44BLfz_azRE>XvwNN=Li%k^b8w4Y_seqAqVy@c%TGtRlV7POEv~*- z@0%#EfCg*S8p8G?Iw^`PQYZHcr|zalO{NluFyG%jkK7&_soMCy`;1`Z2AgLm*JPU? z(9kRE$Ll9zr%HE}2{D6N-)DKXBo7!Q@uj2I&^(9QI~|4H#QvH=8S1y5q%Eb3dOH^- zuFT9rcNY@=cK5CUCcM1t#kEL)Nh&fIRW$UKrGNa8@3)bl zwj&x-=jRzes*N@5`@=$vQLuX!va4!VbqGGaP|cOzs7-mwR6R*4pwKMUOYN<7kG(Ks z2Q>U?i2-e`8&gpwl&8pv_oL=h3AFl;;?@h&1UqlMTUzv*U_SeuM}HwB+s~L}vLOHb zFlhcQAOLt!@wYZNHGOEs{83kz9VfdLK+~nx29%E^_}RMK!@Dw#!%?TfsIZBhnaa6l z^Y#SlNJE4x6}zGtW)_w29+&q_-P)Xd`JnXtLUp0dw!acLpNn|*#-}`V|Ks6%9b=1Z z7U-4DP3bwoRq+xLynXGl#B5a%QZxCfh4DZ8H0 zRZFT>0Ake9=UCq5;fkzc*I(KwG46-Xp{uD@HWNRTtmgA+hm{IPAOUU3HT=D9;Ed+= zaTNuH3~SELLB6)Cpd|`82Z5Hi)mH*s-Tz2RX(_an=8HpV%8c~W?vy16%Io5|geVQh z=sG=;K-^klnc4U&&i!qZ@_Alw>|$|8VCUhS$$3R-HbGQY;>+(&c`fg_Umh5~+Pxsx z5+G0-f4&-MOYJ!|G$x zod>D5ev`iOB)`Jeq56QawK-7SvXu1n8+}jT@aQ}NMtKowXENB{GGdC_5ug8AwQa@q zZC%g24s;F*8s&0l|HIuU_wt59Lf3BrnAT#Ny0CrwDNe)g_OcZvZ(o`|u{wLNE0>Vr1M(Djm1UN$pR} z`u>51ay*PjprKqjd<%^&*ZFU(rOjI0 zHiDd9j90J#08D(e1}p5(10l7aIsQx`)5n__!H>3MMe@(E?L^TrS{6VO5uq@eEo5Ou z(OjN@C?exF5JV`}ra>Hb10wv2jAQ!vVcq$0Z0un>dpmoa3kr+HlHwxI5*ZZF4|M26 z#+?%iV~8M_kdR=P@VOm7E(&yTc6J8s2_S)hhY)x{B2UN?;duh9O_BfTP}qWqI8Ka^ z!{=eOx~wz&cp({w(-zuVn|($`Y}JX0kK=AsiHrc*Ty`{@Clr7Vb`Ic{IK(AIMi7M@ zA(y?;^_JL1`)*v}$5}02Tc69(UW>?O@uJ8$5k8WAmKDzx;#|C0iR?J6BMICDeN5iW zeym9X|G)eu>VGc0In514Xq+x661ep=E~rZO83h0!T4)qEf2N)$@HpK($mGv8O!68W zxm`!^G&X>?SGhl9XAriKXY27Esp;&$fer}0`BdE~vt>_sw1zg@{$OBh@_5;3OxNBr zt3W!YkM4>h{XC!FE80CcB5SKos#N_nUnUs**HU7r&boL#1G&E^+rM~y*6yJ%+9$uq ze@JsEXTE=%uk|GD75_!c12@vhSc547pOX(P^nlmjSemYy|C;i4<)m-2uWgKTX^ecI zPL~CXZ(aUIAv$xght^KbbOE#ABVo?2ikH(Jt7k8}rL71wofbM+kNn?hM^Z}G$NcK8 zoQ)Tq00qqRQ0`nRS^wqW@^1#~O{I6y;{5uKhA2+=-(+7|&Fl&F zS=?Lnz_s zu-Vo&QhNtd5xob3AotrGPu3EBYhtw~g&-=8EtQk+~=;e?0r6erISt*8R^-xF! z8c{v0!)snE@l$5+Yn#oIChgn*+&c&e|Fb0EXh(5V;Z6IAu=fUEr|ux%*lyWs@eTb8 z8=DK#_}&(0*R&MxA$6ie)A&*n%cyqcwRu>X?(pABZ7Tpjb5iV>YLM%@{+JmXjXKRE z)rGZJ94cH&Lpxe~roS^!W+q;!&IE>DB{%sx4ZX~i)b>WCRuC{X>K*i~Q#B#*@(~F; z>0Cw*6)_Sl9-L!y)fRV_;-+gQ%~XYor1|@{(d-AYFm@#>AYjzAIs<2usR}Mac}L0Z zn-Gt5{ZCeCys`-6hDYqmR$d!SN0Z2aY4|gjp1Jh7Jp12LLHn`$q+7Q7t}Q1jSA zP;DDZZXM1wdr}1$9`AAgJi^FH9b#Tyu<&hD)jzwpmZ@IQ-l_64)9aCp zUsz*EXdK*1_c!Lofh}lN&H+SLu95U%#dwY`L6zo-K7nE86#)+nDHQs|rvrrd6RD!n z?;RfD&6w@IwJ_DOqS|Y3)9(BC{Go4EF;;Bu?UlV2q&_CcyeQ)Q6-aW*SJfq(p=t_$v zDvbc+lI!!WgkMJtb{gJP(!zE}VVRTErFxxaL2KOCBe LFQx9->5P8^ry%{9 literal 0 HcmV?d00001 diff --git a/source/anims/pumpkin_kid_walk/left2.png.import b/source/anims/pumpkin_kid_walk/left2.png.import new file mode 100644 index 00000000..e81c7f4c --- /dev/null +++ b/source/anims/pumpkin_kid_walk/left2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dbp2j7m6xqfp" +path="res://.godot/imported/left2.png-9c2b57b4c5f7775afa1d7c6edd066357.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_walk/left2.png" +dest_files=["res://.godot/imported/left2.png-9c2b57b4c5f7775afa1d7c6edd066357.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/source/anims/pumpkin_kid_walk/right1.png b/source/anims/pumpkin_kid_walk/right1.png new file mode 100644 index 0000000000000000000000000000000000000000..82c6e1f1f200c8a0afc2afa97bc939be259c4873 GIT binary patch literal 1808 zcmZ8ieLT~79RJM-6UQ}$Jp8PCRgz6kwA~1ec^Xra%B5|79?mvv8#d3;9g`>(MWhE$ z$wS3CA$e$~q&hmu9Hld^TBmeruH0{Q?z->m_4&O&-_Ps)et$mS@9&SVi0VVuMj4?1 z0MPbuCvArjREEYf_{)onn}Gqr+fH@?YWj?);EezZ^a!O;fDLf20jMI305v5A4oAf5 zrQ8j%9zZVCRRAD80#NrBEUf~h))9rEGC;r5IA5K z7z8+1mT?$xfx?e;zywmL;I=3(1lnP(vDO$z6bOPuZb&F$JIU>n9Nsx#!ufm-0f&o? zjm5@(jg8`l;Wpv%c$~Ej&c?@wybTAEZFgd@Mn3;>344n-%Z>FaFedfiq{|+L(XY8WY&q|t`EJLogETt zu6mJzb0V@bc-MPkiGpzXb^}UYD|a_JYg^5*FQQW5$w$bLS zmbktg`yF>j$o@s@W%bV=+Q=+sU%$4K)rRyZTpSI%rWL00ph1;ar6z4^*4#C!tJBe0 zl9K$~JYl}>V8e(;3)z&qUoRn4PS&AgPHsVrcWsG5H0+@IHGSx{kM(0qN_@bABpJbM zitJpzuJ*N1^1PjWE`uMueBejRZ#|!Aq&yCk_I@~c=+KLv(nnx&%WM|Ezj33>`} zo8##{2VU$+J^I~1u6bgC&Pu#~``vvO6{p?PXGC4UL3xG3;pIoq`TjEP7UX)R?4E&} z39r|pG$2Ly!jSp&*?U-nS2=E_*XyUcv(B5U}p4u1+);?O*$*59bFm-Cx^SPZ_SMplgcFKMzy(A{1)=zSc4es!Z zldkR>aU4%i$KT0oRCSs%(=d{_wMrZBRCics`$bL~_+Ho3dOyZ%H0$(ior-@|m-?`X zXd~K3`oJdndZAC9QwrNCT5Y^wtVE95~wekx|Qov9DFY!@xsO34EbX6?VIJ2zkp0|;#iECR{f~jwchN;7UM%UBkG-cn(>#j8*8-%de?ukf- z8ReaBZ*LIqCsfFL+4rxG%RS^8Dd;YS%c>Q6507uL+~ygb(@`8*rb{X6z93yOJirTk z5jL#m;yl3q-YUqzo9&f*Mljb}l^f8Xb?a5q+Km%7Y}0UVW=|6yG3gdM&c1$s^Z4eK z2Tr2(cOH{wUVYuJ$nysARF5_>DcH{F$mozvnp_Y4FWAd4AKLknHMlZRRhHq zFu_$TEMP{kLE4_kt``JSoCO|{#S9E0z97svl#hD=EpgRf_NpP;kyKN>wn^ zGte_ovg1-vP_QXVNwW%aaf50H@@$ndN=gc>^!3Zj%k|2Q_413-^$jg8E%gnI^o@*k zfhu&1EAvVcD|GXUl_7?}%yCIAPAFh}T4HHViISa9Vr6QPf{BejL=mcHh$yO=Hu~t+LsTJo7!sOb6M?~L z$7Q1rj~Y9!rKw3L85mePJzX3_A~@fMp3Rqb75Trm{BQ2@KHpa^hJKH3glrMzEcFaf zp5^xCl6AO6;mV@5I}XV={IGb^b7Us-qpn+4f_h$}%B~j{I6b;_Oz}!)&hm|q-^V`d zoq0pL@_J_jvylI-x#q_Cb??pJ@14o`Z~FfvmSvA0OV$2oDSxV?Ag+Gs&dWo)gKK8K zJuUTqcdnnT&(64m&1Yjh%`+}o3NvoM;}pB;a9q}cXB&(D9+p0A^&(_h%NH{PVd;y0 z&W9F7=U!4g5dB&BPSYIwNbLuc&U1I)t^ITHNk|P#=k!=Lk6$Z;g)53{9QI#Ypnlz( z&3JG7?`NH5e&^!lx#g5=_IN1tBJdw-2r*@1iR zrmoY9(tNL8OdPeMZm%kex^AxG5LVXB);V`_ z!GYHBw$u${neZGVkFlgK~A{Z< z(nBjtZ=P%%eCBE^ZBEw+k%M9*Cq}}7(YuH_=>dFrmjA5aR0xb0`hxokMCdW z#Jrf1f06#qpE8z<&aXPL$KQOJg6m6TVP_`&8*XjvXT;~TtTT(sSSb}&_x29s%;%{; z-n8W<%wX~jo~V1R;Iq(b9ksf!oJWro_f9_%v|KM^-l7Tm+q<_-x9$D9#O-?eMn&Z} z+aDj#5&XGWEl+jx@AvNL7LE9wsHFZ#+2N+r!>B!zTuh=5xYkiZ3X*bobJ` z=6C0IU$9MI@_mm?i{V}N$#tB+b^71$H$8aRZ}*~NKc!0!R-)2Rf1ir@z3`XLSDvLs zvZ0|ycWl=ht2(efGF;f*c|>QvNS1iD{kiyB-ggHXYrdbY4SwE|Ucr?y$>qsA#moAA z?VBg0Of=iYvf>Ey8{tj0S0@Y9d88d6871PU-U6v-( zO6MK3d^o3*LAQZz=BLw7nigqXa#!b=;A(U-*xBrVUqE8lqd&Xl{;{|(o*z@`a>*T3 Ohj_aBxvX=o1|Y}Qqr;%z&vkf2T2WLoL3F1lGGpNuc+5KKTk(4JTTeXZ z|J$##{^!8!x4Gshy-uPs9<%Xlh{|P5h6n^wG;tyC^9@j%^><^zoVTsUw*_~QG$jP&t?c(s{?X#uj@8zu#}HnaU~9zA7hyGJ}uw(W|apcPcuVMKoE zA8#u3O;vP8E>^qF1uS^T*YXV-s}EOAS`zJ=10zD0PX4mg@c=Qbd%mG>FZ4Ny2r&=~ zh1kfh?pYDw^N~vE9J{z9yVS4IsA*cMWUE``QnPr*OZlW?9cRcSc!go_R{~-6((pqi$%_NCsuAxS)f1vcoA>NO+fwm$5Ed&pX3kZ zN?KrbU$-g|#B=h%1#mh51_`b$H|*hiaqvR7R_e|Nt45USGXiY~*V@YBqS zf%NP;>xr8Nq6#lC->T<2NiRpZ`T8*N*R(O&4y9e^ILn03+i z?{KR1@DA+1u~R1xjs(|iUJ=1O74Z{so!do7^Z4JUQ)dp=i!Q95e1N)8C5eHd%_n(- ztuD`hQxuM;`Nd9$^jlY_T&|oGno|+r$P1@OHAE-3Q3as9lv`V%lF6S>F!rg{!70_y zgcWi8LFYpQr%Z?C9i~OAbb*7A z+Cy!G+Ml@nsa%%egqPN13Nfhb^Qo+a%|i?0SxR^;pgMY_&cLI$JL6W9@!2Y<>t$;O zCu~vcLvq(^B^1R}^SgOS<&4NoWcY&PO1AGUv(aec8fIooocle`fqnAJ zFWH(`Kj9U07N;OLi>lAJB-5TdJ~__T>G6aF1izWPkXsa2b<<^Kw#O1k`!qRN+J=7e zeNkb$lcd10ykI#b7uGB|BS@S5L2qQc#>;fus2`i2+E~uJ_l@0IzINO7VP*Rvh%WjUyI#epe0ZBv&4GG@WK^!+e7>K*TnPU6eWa<7ydQdVPoQER+95B#2*+g$#`nAp@(q5>Jr~#h zz0RW!G&9rD?fk-oVuV`!y-`f@t5LH`$--TmgH5ZN<&uW+SO&PuJFb5nj;+T*O|w?8fIwvv2o)0T^9v1In7zU_{0RzKY^;Hw)B zt8FR{cyplLawK@?pcbnfcrzGi_pVEUV}wkst?7(GBHuT*I9b(inmFdr+kMQkGkEM3 bQ@pxqSHTB`q9k^p?3r_M^dMI{(2oBDRGm0R literal 0 HcmV?d00001 diff --git a/source/anims/pumpkin_kid_walk/up1.PNG.import b/source/anims/pumpkin_kid_walk/up1.PNG.import new file mode 100644 index 00000000..6a2f2961 --- /dev/null +++ b/source/anims/pumpkin_kid_walk/up1.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bk4ai1rlykip1" +path="res://.godot/imported/up1.PNG-3cce4e3bb22afdc69efe1512554c5d28.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_walk/up1.PNG" +dest_files=["res://.godot/imported/up1.PNG-3cce4e3bb22afdc69efe1512554c5d28.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/source/anims/pumpkin_kid_walk/up2.PNG b/source/anims/pumpkin_kid_walk/up2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..668487180a2b975554b970a86a559c74c28c00d6 GIT binary patch literal 2010 zcmZ8idpy(YAK%rUwl#d6 zffnWBG71h`r!arDhT}Z2Fnd}k31)^gKpMbpz%UrhDwIe@dpkINlZ$rN@L!lrIvRyy zu~Z5mbiGhRJ_?97qg8XfT}_OryfYzW6{| z7}FXK7dP5m8*>r~n|{}orc%E=ypwa_>I+S9^>c~KcxNuJUmK8o{(e+x(HR%EvXYvy)^#qx zbhg@5R(oiFT28liOkc&t`96ypUXGB*}W? zjhJqj2gt7d;{egTu)B>^wL=qUU**reo$C5lx2KMA5f*s1-(h9C2=5ik@*}_0GU?7b zC&lD}1R9ur;Wnp?&!$OfZJ%`nqr^t~iQzY&4mqnK3wH$M*cl~Z@;Mb5OGjst^RA8N z6WY~gl;jyu*xtWu$HBs?1FB2ow}pXUxl!Q4*izkY1Ab%yCAhWX;be2-Uf&n^quU=` zIGvNNXqPudlJ06{Q)G6wY7gB@J%ccE=Vz;`q)c#tg?d6KO3P19y}VnVP_j*qs&LM^ zKwx{R{=ou2!X!D(5V9r1;D;zrOHOBfa((b<;+bQ(r-ifaeY})?cNdc6f6d@!miXxU zOex4pr`g5vCBNz`W4G}?)N?KJ9Emr;eal4?NAvv$6^ag}_!!ECTT+ z6a4OV@4sSG7r%=()oHQ?4!l~OvY(J%sfIWRbl1FcOmFpP-K}|`r$aK@oo25l9xZz* z@NNKG582n03&~w=n22rXI1fRpT3LVI&8?hLR7x74=Vt21+|kKNv>a5PKMB9zD6o|8 zR++a@$(&L)@HR{Cc&=XAyWIw=F#7VEpH-h}=1Al#<)FtMyk~p#^KXT@aaeH0a(Ug9 zF9~lyy1Lk);DZzXBl*-^=Y-~hw7B8}b1tLfJ~E}+ayxAucIr2V>c``poLg=ndYXsK zZLFI>3?2G=a(r*1SFxZq^@)URxJ=JT<%uX=4=VZf5wPQgFukfu+rCSeyGxyg{RN7q zb{N-oIbu23w9{V-ZIT@K*uU92gENQmG6%&LH^ytV{;`jByzXGkTWeMZfSxFE}gked)o9-{``gGcl^=^vI6DfPiAI+nBm3$;~(Cb z6kbQsHdoZag}hQm6lFt440mLda!=1LTsgZ%mz=kJop3iypzH&Q`Z^Hp^)9~kYWp&w zIb@G_+Ih`85qg0XeT-w@SPy-y!SC5n-!#{@T=k`D5jy4MxRV^0NYi&OK%eXxd$-cxN<@I@%1Bw(r~1{z z_CJGs>mbL=BOk_OPWiQA`D$o1{CB0Ag9N?)r7t&Y#y*`R;4J-y?m=XI3RBE{0rGW@ z{EN}`=~l6(LzWN5i|+kAbKLiQY_LQ?Q*&>OEc9JJse!;K&TRzfg#c$uw?`Fz)hY03 ciq*`G1$aU~BLm9J+QpBZtD~nw4dz6`zhzQAs{jB1 literal 0 HcmV?d00001 diff --git a/source/anims/pumpkin_kid_walk/up2.PNG.import b/source/anims/pumpkin_kid_walk/up2.PNG.import new file mode 100644 index 00000000..66821186 --- /dev/null +++ b/source/anims/pumpkin_kid_walk/up2.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://casy5j3h566t6" +path="res://.godot/imported/up2.PNG-b4bfee9e3da11238ad9bf570ac604656.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_walk/up2.PNG" +dest_files=["res://.godot/imported/up2.PNG-b4bfee9e3da11238ad9bf570ac604656.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/source/scenes/player.tscn b/source/scenes/player.tscn index 66a6fffa..4082c545 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=40 format=3 uid="uid://rgfnpcsvv534"] +[gd_scene load_steps=56 format=3 uid="uid://rgfnpcsvv534"] [ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] [ext_resource type="Texture2D" uid="uid://bqrdval02y5ee" path="res://source/anims/ghost_kid_idle/idle_down_1.png" id="2_3e32p"] @@ -37,6 +37,22 @@ [ext_resource type="Texture2D" uid="uid://70xla3ginu86" path="res://source/anims/ghost_monster_walk+idle/float_up_2.PNG" id="35_d1kxc"] [ext_resource type="Texture2D" uid="uid://cvxeuqlint1b8" path="res://source/anims/ghost_monster_walk+idle/float_up_3.PNG" id="36_m37rc"] [ext_resource type="Texture2D" uid="uid://c14jjha6du28t" path="res://source/anims/ghost_monster_walk+idle/float_up_4.PNG" id="37_62mol"] +[ext_resource type="Texture2D" uid="uid://d316efmvuas7u" path="res://source/anims/pumpkin_kid_idle/IMG_4654.PNG" id="38_pfkgl"] +[ext_resource type="Texture2D" uid="uid://cjcfxp6u0po3i" path="res://source/anims/pumpkin_kid_idle/IMG_4655.PNG" id="39_4mq0d"] +[ext_resource type="Texture2D" uid="uid://cnvhhsvu13aws" path="res://source/anims/pumpkin_kid_idle/IMG_4656.PNG" id="40_dhmis"] +[ext_resource type="Texture2D" uid="uid://clhia0q8hyhqo" path="res://source/anims/pumpkin_kid_idle/IMG_4657.PNG" id="41_aehjy"] +[ext_resource type="Texture2D" uid="uid://dg3d8utyfj30x" path="res://source/anims/pumpkin_kid_idle/IMG_4658.PNG" id="42_r2hxm"] +[ext_resource type="Texture2D" uid="uid://ba4gck47lgab2" path="res://source/anims/pumpkin_kid_idle/IMG_4659.PNG" id="43_4vste"] +[ext_resource type="Texture2D" uid="uid://lwolivqyk7po" path="res://source/anims/pumpkin_kid_idle/IMG_4660.PNG" id="44_eohrl"] +[ext_resource type="Texture2D" uid="uid://cuwo0yh8l0tot" path="res://source/anims/pumpkin_kid_idle/IMG_4661.PNG" id="45_pbfcj"] +[ext_resource type="Texture2D" uid="uid://us4hj7kyd5py" path="res://source/anims/pumpkin_kid_walk/down1.png" id="46_j5o2x"] +[ext_resource type="Texture2D" uid="uid://dg4nh3x3yoy30" path="res://source/anims/pumpkin_kid_walk/down2.png" id="47_48yp3"] +[ext_resource type="Texture2D" uid="uid://oojl4yno5cwh" path="res://source/anims/pumpkin_kid_walk/left1.png" id="48_k30tv"] +[ext_resource type="Texture2D" uid="uid://dbp2j7m6xqfp" path="res://source/anims/pumpkin_kid_walk/left2.png" id="49_5debl"] +[ext_resource type="Texture2D" uid="uid://66ch50cs5ixo" path="res://source/anims/pumpkin_kid_walk/right1.png" id="50_j3sls"] +[ext_resource type="Texture2D" uid="uid://b30mv2tm73bmh" path="res://source/anims/pumpkin_kid_walk/right2.png" id="51_k13c4"] +[ext_resource type="Texture2D" uid="uid://bk4ai1rlykip1" path="res://source/anims/pumpkin_kid_walk/up1.PNG" id="52_7geue"] +[ext_resource type="Texture2D" uid="uid://casy5j3h566t6" path="res://source/anims/pumpkin_kid_walk/up2.PNG" id="53_ynnor"] [sub_resource type="SpriteFrames" id="SpriteFrames_1n7tg"] animations = [{ @@ -275,6 +291,94 @@ animations = [{ "loop": true, "name": &"ghost_monster_walk_up", "speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("38_pfkgl") +}, { +"duration": 1.0, +"texture": ExtResource("39_4mq0d") +}], +"loop": true, +"name": &"pumpkin_kid_idle_down", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("40_dhmis") +}, { +"duration": 1.0, +"texture": ExtResource("41_aehjy") +}], +"loop": true, +"name": &"pumpkin_kid_idle_left", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("42_r2hxm") +}, { +"duration": 1.0, +"texture": ExtResource("43_4vste") +}], +"loop": true, +"name": &"pumpkin_kid_idle_right", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("44_eohrl") +}, { +"duration": 1.0, +"texture": ExtResource("45_pbfcj") +}], +"loop": true, +"name": &"pumpkin_kid_idle_up", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("46_j5o2x") +}, { +"duration": 1.0, +"texture": ExtResource("47_48yp3") +}], +"loop": true, +"name": &"pumpkin_kid_walk_down", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("48_k30tv") +}, { +"duration": 1.0, +"texture": ExtResource("49_5debl") +}], +"loop": true, +"name": &"pumpkin_kid_walk_left", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("50_j3sls") +}, { +"duration": 1.0, +"texture": ExtResource("51_k13c4") +}], +"loop": true, +"name": &"pumpkin_kid_walk_right", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("52_7geue") +}, { +"duration": 1.0, +"texture": ExtResource("53_ynnor") +}], +"loop": true, +"name": &"pumpkin_kid_walk_up", +"speed": 3.0 }] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] @@ -286,7 +390,7 @@ script = ExtResource("1_ws1a7") [node name="Body" type="AnimatedSprite2D" parent="PlayerSprite"] sprite_frames = SubResource("SpriteFrames_1n7tg") -animation = &"ghost_kid_walk_up" +animation = &"pumpkin_kid_walk_up" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CapsuleShape2D_1d7hi") From 4b23eec942546c8851cd8345a272a305ce62f6c6 Mon Sep 17 00:00:00 2001 From: kedrickfudala Date: Thu, 14 Nov 2024 19:41:46 -0500 Subject: [PATCH 077/110] select screen --- source/gui/player_select_toggles.gd | 18 +++++++++ source/gui/player_select_toggles.tscn | 21 ++++++---- .../scenes/cut_scenes/pre_game_cut_scene.tscn | 3 +- source/scenes/menus/character_select.gd | 31 +++++++++++++++ source/scenes/menus/character_select.tscn | 38 +++++++++---------- 5 files changed, 83 insertions(+), 28 deletions(-) diff --git a/source/gui/player_select_toggles.gd b/source/gui/player_select_toggles.gd index 216144ff..1d9b5d9d 100644 --- a/source/gui/player_select_toggles.gd +++ b/source/gui/player_select_toggles.gd @@ -1,2 +1,20 @@ extends Control class_name PlayerSelectToggles + +@onready var sprite : Object = $Sprite2D +@onready var value : int = 0 +@onready var sprite_textures = [] + +func _physics_process(delta: float) -> void: + #sprite.texture = sprite_textures[value] + pass + +func _on_left_button_pressed() -> void: + value -= 1 + if value < 0: + value = 4 + +func _on_right_button_pressed() -> void: + value += 1 + if value > 4: + value = 0 diff --git a/source/gui/player_select_toggles.tscn b/source/gui/player_select_toggles.tscn index 176644d2..ef7a58b4 100644 --- a/source/gui/player_select_toggles.tscn +++ b/source/gui/player_select_toggles.tscn @@ -14,15 +14,20 @@ script = ExtResource("1_8og8h") [node name="Sprite2D" type="Sprite2D" parent="."] [node name="LeftButton" type="Button" parent="."] -offset_left = 43.0 -offset_top = 215.0 -offset_right = 68.0 -offset_bottom = 243.0 +layout_mode = 0 +offset_left = -36.0 +offset_top = 210.0 +offset_right = -11.0 +offset_bottom = 238.0 text = "<" [node name="RightButton" type="Button" parent="."] -offset_left = 88.0 -offset_top = 215.0 -offset_right = 113.0 -offset_bottom = 243.0 +layout_mode = 0 +offset_left = 13.0 +offset_top = 210.0 +offset_right = 38.0 +offset_bottom = 238.0 text = ">" + +[connection signal="pressed" from="LeftButton" to="." method="_on_left_button_pressed"] +[connection signal="pressed" from="RightButton" to="." method="_on_right_button_pressed"] diff --git a/source/scenes/cut_scenes/pre_game_cut_scene.tscn b/source/scenes/cut_scenes/pre_game_cut_scene.tscn index 14f5be47..79dffc69 100644 --- a/source/scenes/cut_scenes/pre_game_cut_scene.tscn +++ b/source/scenes/cut_scenes/pre_game_cut_scene.tscn @@ -15,8 +15,9 @@ text = "Continue" [node name="CutSceneLabel" type="Label" parent="."] offset_left = 19.0 offset_top = 27.0 -offset_right = 544.0 +offset_right = 494.0 offset_bottom = 139.0 +theme_override_font_sizes/font_size = 13 text = "4 kids enter a spooky, haunted mansion on halloween night, looking for fun But they find a cursed amulet that transforms them into monsters! diff --git a/source/scenes/menus/character_select.gd b/source/scenes/menus/character_select.gd index 4ef2a2ee..05291e23 100644 --- a/source/scenes/menus/character_select.gd +++ b/source/scenes/menus/character_select.gd @@ -2,13 +2,32 @@ extends Node2D enum {NONE, FRANKENSTEIN, PUMPKIN, WITCH, GHOST} +@onready var player_select_toggles : PackedScene = preload("res://source/gui/player_select_toggles.tscn") @onready var test = $test @onready var hbox_container = $HBoxContainer @onready var player_count : int = 2 @onready var player_classes = [NONE, NONE, NONE, NONE] +@onready var player_insts = [] + +func _ready(): + add_player() + add_player() func _physics_process(delta: float) -> void: test.text = str("Player Count: ") + str(player_count) + str(" ") + str(player_classes) + match(len(player_insts) - 1): + 1: + player_classes[0] = player_insts[0].value + player_classes[1] = player_insts[1].value + 2: + player_classes[0] = player_insts[0].value + player_classes[1] = player_insts[1].value + player_classes[2] = player_insts[2].value + 3: + player_classes[0] = player_insts[0].value + player_classes[1] = player_insts[1].value + player_classes[2] = player_insts[2].value + player_classes[3] = player_insts[3].value func _on_start_button_pressed() -> void: var counter = 0 @@ -26,7 +45,19 @@ func _on_right_button_1_pressed() -> void: func _on_remove_player_button_pressed() -> void: if player_count > 2: player_count -= 1 + remove_player() func _on_add_player_button_pressed() -> void: if player_count < 4: player_count += 1 + add_player() + +func add_player(): + var player_inst = player_select_toggles.instantiate() + player_inst.global_position = Vector2(0,0) + hbox_container.add_child(player_inst) + player_insts.append(player_inst) + +func remove_player(): + player_insts[player_count].queue_free() + player_insts.remove_at(player_count) diff --git a/source/scenes/menus/character_select.tscn b/source/scenes/menus/character_select.tscn index d3be6ea1..23dcdd46 100644 --- a/source/scenes/menus/character_select.tscn +++ b/source/scenes/menus/character_select.tscn @@ -5,6 +5,21 @@ [node name="CharacterSelect" type="Node2D"] script = ExtResource("1_f0ogi") +[node name="HBoxContainer" type="HBoxContainer" parent="."] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -1.0 +offset_top = 1.0 +offset_right = 511.0 +offset_bottom = 321.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 120 +alignment = 1 + [node name="CharacterSelectLabel" type="Label" parent="."] offset_left = 181.0 offset_top = 35.0 @@ -32,26 +47,11 @@ offset_right = 286.0 offset_bottom = 124.0 text = "+" -[node name="HBoxContainer" type="HBoxContainer" parent="."] -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -1.0 -offset_top = -1.0 -offset_right = 359.0 -offset_bottom = 344.0 -grow_horizontal = 2 -grow_vertical = 2 -theme_override_constants/separation = 120 -alignment = 1 - [node name="StartButton" type="Button" parent="."] -offset_left = 240.0 -offset_top = 261.0 -offset_right = 299.0 -offset_bottom = 289.0 +offset_left = 230.0 +offset_top = 260.0 +offset_right = 289.0 +offset_bottom = 288.0 text = "Start" [connection signal="pressed" from="RemovePlayerButton" to="." method="_on_remove_player_button_pressed"] From 44c570683db7b76d5efffb8b9237d5f2919c6198 Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:18:43 -0500 Subject: [PATCH 078/110] test player script update --- source/scripts/player.gd | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 1a0abaff..89bbfbd6 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -15,6 +15,13 @@ var maxHealth : int = 12 var damage : int = 0 var topSpeed : int = 10 +enum Character { + WITCH, + FRANKENSTEIN, + GHOST, + PUMPKIN +} +var character = Character.PUMPKIN var health :int = 0 #signal onAttack(player)#This signals will emit every attack From 2d063b42e234334241b4ae4116d8b7e942d16faa Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:24:01 -0500 Subject: [PATCH 079/110] added all player script parts --- source/scripts/player.gd | 61 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 89bbfbd6..4c2c613c 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -23,6 +23,13 @@ enum Character { } var character = Character.PUMPKIN +#Enemy attack instances +#const Projectile_Scene := preload("res://source/scenes/projectile.tscn") +#const Frank_Attack_Scene := preload("res://source/scenes/frankenstein_attack.tscn") +#const Pumpkin_Attack_Scene := preload("res://source/scenes/pumpkin_attack.tscn") +#const Ghost_Attack_Scene := preload("res://source/scenes/ghost_attack.tscn") + + var health :int = 0 #signal onAttack(player)#This signals will emit every attack #signal onGetHit(player)#This signal will emit every time the player gets hit @@ -60,6 +67,60 @@ func handle_move() -> void: move_and_slide() +func handle_attack(): #Right now, just enables, hitbox for 0.5 seconds + match character: + #THIS NEEDS TO BE UPDATED AFTER ATTACK SCENES MADE + Character.WITCH: + pass + #add_attack_instance_as_child(Projectile_Scene) + Character.FRANKENSTEIN: + pass + #add_attack_instance_as_child(Frank_Attack_Scene) + Character.GHOST: + pass + #add_attack_instance_as_child(Ghost_Attack_Scene) + Character.PUMPKIN: + pass + #add_attack_instance_as_child(Pumpkin_Attack_Scene) + _: + print("ERROR: Player not assigned character") + +func handle_damage(attackingPlayer: CharacterBody2D) -> void: + pass + #UPDATE + #Health -= attackingPlayer.get_damage() + +func shoot_projectile(projectile: PackedScene) -> void: + var proj_instance := projectile.instantiate() + # set the projectile instance at players locatio + proj_instance.position = self.global_position + # set direction of projectile towards mouse + proj_instance.direction = global_position.direction_to(get_global_mouse_position()) + # assign damage from players stats to projectiles damage + #UPDATE + #proj_instance.set_damage(stats.attackDamage) + # attach attacking player to projectile + proj_instance.set_attackingPlayer(self) + #spawn projectile + add_child(proj_instance) + +func add_attack_instance_as_child(attack_scene: PackedScene) -> void: + var attack_instance := attack_scene.instantiate() + attack_instance.position = self.global_position + attack_instance.direction = global_position.direction_to(get_global_mouse_position()) + #UPDATE + #attack_instance.set_damage(stats.attackDamage) + attack_instance.set_attackingPlayer(self) + add_child(attack_instance) + +func getPlayerPosition() -> Vector2: + return position +func get_damage() -> float: + return 0.0 + #UPDATE + #return stats.attackDamage + + func get_item(item : Item): damage += item.damage health += item.health From d89664a8250f58a24f52478217f50a31b6875a8e Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 18:24:48 -0500 Subject: [PATCH 080/110] Hurtbox and Hitbox --- source/scenes/player.tscn | 6 +++++- source/scripts/Hitbox.gd | 16 ++++++++++++++++ source/scripts/Hurtbox.gd | 29 +++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 source/scripts/Hitbox.gd create mode 100644 source/scripts/Hurtbox.gd diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index ec67b5cf..917a3134 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=4 format=3 uid="uid://rgfnpcsvv534"] +[gd_scene load_steps=5 format=3 uid="uid://rgfnpcsvv534"] [ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] +[ext_resource type="Script" path="res://source/scripts/Hurtbox.gd" id="2_lav1o"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] @@ -16,3 +17,6 @@ shape = SubResource("CapsuleShape2D_1d7hi") position = Vector2(1.07288e-06, 1.90735e-06) scale = Vector2(20, 15) mesh = SubResource("CapsuleMesh_tx0kn") + +[node name="PlayerHurtbox" type="Area2D" parent="."] +script = ExtResource("2_lav1o") diff --git a/source/scripts/Hitbox.gd b/source/scripts/Hitbox.gd new file mode 100644 index 00000000..ab8a78bd --- /dev/null +++ b/source/scripts/Hitbox.gd @@ -0,0 +1,16 @@ +class_name PlayerHitbox +extends Area2D + +@onready var collision_shape = $CollisionShape2D +func _init() -> void: + #collision_layer = 2 + #collision_mask = 0 + pass + +func _ready() -> void: + pass + +func _process(delta: float) -> void: + pass +func set_disabled(is_disabled: bool) -> void: + collision_shape.set_deferred("disabled", is_disabled) diff --git a/source/scripts/Hurtbox.gd b/source/scripts/Hurtbox.gd new file mode 100644 index 00000000..2daa1a0f --- /dev/null +++ b/source/scripts/Hurtbox.gd @@ -0,0 +1,29 @@ +class_name PlayerHurtbox +extends Area2D + +func _init() -> void: + pass + #collision_layer = 0 + #collision_mask = 2 + +func _ready() -> void: + connect("area_entered", self._on_area_entered) + +func _on_area_entered(hitbox: PlayerHitbox): + #Hurtbox recieves area2d PlayerHitbox + #check to make sure area2D is not null + if hitbox == null: + #print("NULL!") + return + if hitbox.owner == owner: + #print("this is the owners hitbox") + return + if owner.has_method("handle_damage") and hitbox.owner.has_method("get_attackingPlayer") and hitbox.owner.has_method("get_damage"): + #check to see if player is the owner of the attack + #here the hurt player can reference the attacking player instance + if (hitbox.owner.get_attackingPlayer() == owner): + return + #DO NOTHINGd + else: #else handle the damage + print("PLAYER HIT!") + owner.handle_damage(hitbox.owner.get_attackingPlayer() ) From 88bb002435537153248b27632604304299f0431f Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:00:27 -0500 Subject: [PATCH 081/110] projectile skeleton --- source/scenes/player.tscn | 9 ++++++++- source/scenes/projectile.tscn | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 source/scenes/projectile.tscn diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index 917a3134..8eafd337 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=5 format=3 uid="uid://rgfnpcsvv534"] +[gd_scene load_steps=6 format=3 uid="uid://rgfnpcsvv534"] [ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] [ext_resource type="Script" path="res://source/scripts/Hurtbox.gd" id="2_lav1o"] @@ -7,6 +7,10 @@ [sub_resource type="CapsuleMesh" id="CapsuleMesh_tx0kn"] +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_vlfgb"] +radius = 9.0 +height = 28.0 + [node name="Player" type="CharacterBody2D"] script = ExtResource("1_ws1a7") @@ -20,3 +24,6 @@ mesh = SubResource("CapsuleMesh_tx0kn") [node name="PlayerHurtbox" type="Area2D" parent="."] script = ExtResource("2_lav1o") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerHurtbox"] +shape = SubResource("CapsuleShape2D_vlfgb") diff --git a/source/scenes/projectile.tscn b/source/scenes/projectile.tscn new file mode 100644 index 00000000..4e14fe67 --- /dev/null +++ b/source/scenes/projectile.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=4 format=3 uid="uid://ctpkxi0s1em0j"] + +[ext_resource type="Script" path="res://source/scripts/Hitbox.gd" id="1_2d1wf"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_kly78"] +radius = 46.0 +height = 146.0 + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_h5cjd"] +radius = 44.0 +height = 148.0 + +[node name="Projectile" type="Node2D"] + +[node name="Sprite2D" type="Sprite2D" parent="."] + +[node name="PlayerHitbox" type="Area2D" parent="."] +script = ExtResource("1_2d1wf") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerHitbox"] +shape = SubResource("CapsuleShape2D_kly78") + +[node name="ImpactDetector" type="Area2D" parent="."] + +[node name="ID_ColShape" type="CollisionShape2D" parent="ImpactDetector"] +shape = SubResource("CapsuleShape2D_h5cjd") + +[node name="Timer" type="Timer" parent="."] From 23cd7bbae3a91f522307a5b14dc7ce92fd5af63d Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:18:02 -0500 Subject: [PATCH 082/110] attacking not finished --- source/scenes/frankenstein_attack.tscn | 20 +++++++++++++++ source/scenes/ghost_attack.tscn | 12 +++++++++ source/scenes/pumpkin_attack.tscn | 12 +++++++++ source/scripts/frankenstein_attack.gd | 35 ++++++++++++++++++++++++++ source/scripts/pumpkin_attack.gd | 35 ++++++++++++++++++++++++++ 5 files changed, 114 insertions(+) create mode 100644 source/scenes/frankenstein_attack.tscn create mode 100644 source/scenes/ghost_attack.tscn create mode 100644 source/scenes/pumpkin_attack.tscn create mode 100644 source/scripts/frankenstein_attack.gd create mode 100644 source/scripts/pumpkin_attack.gd diff --git a/source/scenes/frankenstein_attack.tscn b/source/scenes/frankenstein_attack.tscn new file mode 100644 index 00000000..5b4fdb51 --- /dev/null +++ b/source/scenes/frankenstein_attack.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3 uid="uid://j732yrg0amty"] + +[ext_resource type="Script" path="res://source/scripts/frankenstein_attack.gd" id="1_a0dgx"] +[ext_resource type="Script" path="res://source/scripts/Hitbox.gd" id="1_y4ubp"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_8irjp"] +radius = 56.0 +height = 188.0 + +[node name="FrankensteinAttack" type="Node2D"] +script = ExtResource("1_a0dgx") + +[node name="PlayerHitbox" type="Area2D" parent="."] +script = ExtResource("1_y4ubp") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerHitbox"] +position = Vector2(59, 1) +shape = SubResource("CapsuleShape2D_8irjp") + +[node name="lifespan_timer" type="Timer" parent="."] diff --git a/source/scenes/ghost_attack.tscn b/source/scenes/ghost_attack.tscn new file mode 100644 index 00000000..a2d234a0 --- /dev/null +++ b/source/scenes/ghost_attack.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://bps2krit10aa"] + +[ext_resource type="Script" path="res://source/scripts/Hitbox.gd" id="1_6hfiu"] + +[node name="ghost_attack" type="Node2D"] + +[node name="PlayerHitbox" type="Area2D" parent="."] +script = ExtResource("1_6hfiu") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerHitbox"] + +[node name="Timer" type="Timer" parent="."] diff --git a/source/scenes/pumpkin_attack.tscn b/source/scenes/pumpkin_attack.tscn new file mode 100644 index 00000000..28a7f952 --- /dev/null +++ b/source/scenes/pumpkin_attack.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://c0gynvjp0ikqw"] + +[ext_resource type="Script" path="res://source/scripts/Hitbox.gd" id="1_gy47r"] + +[node name="pumpkin_attack" type="Node2D"] + +[node name="PlayerHitbox" type="Area2D" parent="."] +script = ExtResource("1_gy47r") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerHitbox"] + +[node name="lifespan_timer" type="Timer" parent="."] diff --git a/source/scripts/frankenstein_attack.gd b/source/scripts/frankenstein_attack.gd new file mode 100644 index 00000000..b8387f91 --- /dev/null +++ b/source/scripts/frankenstein_attack.gd @@ -0,0 +1,35 @@ +extends Node2D + +@export var attackSpeed := 1000.0 #Does nothing right now +@export var lifetime := 0.1 #seconds +@onready var timer := $lifespan_timer #timer for projectile lifespan +@onready var hitbox := $PlayerHitbox #universal hitbox + +var direction := Vector2.ZERO +var damage = 0 +var attackingPlayer + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + set_as_top_level(true) + look_at(position + direction) + #start timer for attacks lifetime + timer.connect("timeout",self.queue_free) + timer.start(lifetime) + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _physics_process(delta: float) -> void: + #Follows the players position for the duration of attack lifetime + if (attackingPlayer!=null and attackingPlayer.has_method("getPlayerPosition")): + position = attackingPlayer.getPlayerPosition() + +func set_damage( newDamage : int) -> void: + damage = newDamage; +func get_damage() -> float: + return damage + +func set_attackingPlayer(player: CharacterBody2D) -> void: + attackingPlayer = player +func get_attackingPlayer() -> CharacterBody2D: + return attackingPlayer diff --git a/source/scripts/pumpkin_attack.gd b/source/scripts/pumpkin_attack.gd new file mode 100644 index 00000000..b8387f91 --- /dev/null +++ b/source/scripts/pumpkin_attack.gd @@ -0,0 +1,35 @@ +extends Node2D + +@export var attackSpeed := 1000.0 #Does nothing right now +@export var lifetime := 0.1 #seconds +@onready var timer := $lifespan_timer #timer for projectile lifespan +@onready var hitbox := $PlayerHitbox #universal hitbox + +var direction := Vector2.ZERO +var damage = 0 +var attackingPlayer + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + set_as_top_level(true) + look_at(position + direction) + #start timer for attacks lifetime + timer.connect("timeout",self.queue_free) + timer.start(lifetime) + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _physics_process(delta: float) -> void: + #Follows the players position for the duration of attack lifetime + if (attackingPlayer!=null and attackingPlayer.has_method("getPlayerPosition")): + position = attackingPlayer.getPlayerPosition() + +func set_damage( newDamage : int) -> void: + damage = newDamage; +func get_damage() -> float: + return damage + +func set_attackingPlayer(player: CharacterBody2D) -> void: + attackingPlayer = player +func get_attackingPlayer() -> CharacterBody2D: + return attackingPlayer From af92d8586a44f50bba2c0572d38a9cdd695db63e Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:21:33 -0500 Subject: [PATCH 083/110] add attack scenes --- source/scenes/frankenstein_attack.tscn | 2 +- source/scenes/ghost_attack.tscn | 6 ++++- source/scenes/pumpkin_attack.tscn | 9 ++++++- source/scripts/ghost_attack.gd | 35 ++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 source/scripts/ghost_attack.gd diff --git a/source/scenes/frankenstein_attack.tscn b/source/scenes/frankenstein_attack.tscn index 5b4fdb51..ef912d6d 100644 --- a/source/scenes/frankenstein_attack.tscn +++ b/source/scenes/frankenstein_attack.tscn @@ -4,7 +4,7 @@ [ext_resource type="Script" path="res://source/scripts/Hitbox.gd" id="1_y4ubp"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_8irjp"] -radius = 56.0 +radius = 59.0 height = 188.0 [node name="FrankensteinAttack" type="Node2D"] diff --git a/source/scenes/ghost_attack.tscn b/source/scenes/ghost_attack.tscn index a2d234a0..801dd41e 100644 --- a/source/scenes/ghost_attack.tscn +++ b/source/scenes/ghost_attack.tscn @@ -1,12 +1,16 @@ -[gd_scene load_steps=2 format=3 uid="uid://bps2krit10aa"] +[gd_scene load_steps=3 format=3 uid="uid://bps2krit10aa"] [ext_resource type="Script" path="res://source/scripts/Hitbox.gd" id="1_6hfiu"] +[sub_resource type="CircleShape2D" id="CircleShape2D_7bw4k"] +radius = 73.171 + [node name="ghost_attack" type="Node2D"] [node name="PlayerHitbox" type="Area2D" parent="."] script = ExtResource("1_6hfiu") [node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerHitbox"] +shape = SubResource("CircleShape2D_7bw4k") [node name="Timer" type="Timer" parent="."] diff --git a/source/scenes/pumpkin_attack.tscn b/source/scenes/pumpkin_attack.tscn index 28a7f952..929895f7 100644 --- a/source/scenes/pumpkin_attack.tscn +++ b/source/scenes/pumpkin_attack.tscn @@ -1,12 +1,19 @@ -[gd_scene load_steps=2 format=3 uid="uid://c0gynvjp0ikqw"] +[gd_scene load_steps=3 format=3 uid="uid://c0gynvjp0ikqw"] [ext_resource type="Script" path="res://source/scripts/Hitbox.gd" id="1_gy47r"] +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_nhxfr"] +radius = 14.0 +height = 376.0 + [node name="pumpkin_attack" type="Node2D"] [node name="PlayerHitbox" type="Area2D" parent="."] script = ExtResource("1_gy47r") [node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerHitbox"] +position = Vector2(188, 0) +rotation = 1.5708 +shape = SubResource("CapsuleShape2D_nhxfr") [node name="lifespan_timer" type="Timer" parent="."] diff --git a/source/scripts/ghost_attack.gd b/source/scripts/ghost_attack.gd new file mode 100644 index 00000000..b8387f91 --- /dev/null +++ b/source/scripts/ghost_attack.gd @@ -0,0 +1,35 @@ +extends Node2D + +@export var attackSpeed := 1000.0 #Does nothing right now +@export var lifetime := 0.1 #seconds +@onready var timer := $lifespan_timer #timer for projectile lifespan +@onready var hitbox := $PlayerHitbox #universal hitbox + +var direction := Vector2.ZERO +var damage = 0 +var attackingPlayer + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + set_as_top_level(true) + look_at(position + direction) + #start timer for attacks lifetime + timer.connect("timeout",self.queue_free) + timer.start(lifetime) + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _physics_process(delta: float) -> void: + #Follows the players position for the duration of attack lifetime + if (attackingPlayer!=null and attackingPlayer.has_method("getPlayerPosition")): + position = attackingPlayer.getPlayerPosition() + +func set_damage( newDamage : int) -> void: + damage = newDamage; +func get_damage() -> float: + return damage + +func set_attackingPlayer(player: CharacterBody2D) -> void: + attackingPlayer = player +func get_attackingPlayer() -> CharacterBody2D: + return attackingPlayer From 6da3e3ab04efb78c436d565321fb9f70adc10c9f Mon Sep 17 00:00:00 2001 From: Arti-Dev Date: Fri, 15 Nov 2024 19:22:10 -0500 Subject: [PATCH 084/110] Add ghost kid attack animations --- .../ghost_kid_attack/down/attack_down_1.PNG | Bin 0 -> 454 bytes .../down/attack_down_1.PNG.import | 34 +++ .../ghost_kid_attack/down/attack_down_10.png | Bin 0 -> 494 bytes .../down/attack_down_10.png.import | 34 +++ .../ghost_kid_attack/down/attack_down_11.PNG | Bin 0 -> 454 bytes .../down/attack_down_11.PNG.import | 34 +++ .../ghost_kid_attack/down/attack_down_2.png | Bin 0 -> 494 bytes .../down/attack_down_2.png.import | 34 +++ .../ghost_kid_attack/down/attack_down_3.png | Bin 0 -> 504 bytes .../down/attack_down_3.png.import | 34 +++ .../ghost_kid_attack/down/attack_down_4.png | Bin 0 -> 523 bytes .../down/attack_down_4.png.import | 34 +++ .../ghost_kid_attack/down/attack_down_5.png | Bin 0 -> 538 bytes .../down/attack_down_5.png.import | 34 +++ .../ghost_kid_attack/down/attack_down_6.png | Bin 0 -> 529 bytes .../down/attack_down_6.png.import | 34 +++ .../ghost_kid_attack/down/attack_down_7.png | Bin 0 -> 538 bytes .../down/attack_down_7.png.import | 34 +++ .../ghost_kid_attack/down/attack_down_8.png | Bin 0 -> 523 bytes .../down/attack_down_8.png.import | 34 +++ .../ghost_kid_attack/down/attack_down_9.png | Bin 0 -> 504 bytes .../down/attack_down_9.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_1.png | Bin 0 -> 423 bytes .../left/attack_left_1.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_10.png | Bin 0 -> 459 bytes .../left/attack_left_10.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_11.png | Bin 0 -> 440 bytes .../left/attack_left_11.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_12.png | Bin 0 -> 431 bytes .../left/attack_left_12.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_13.png | Bin 0 -> 423 bytes .../left/attack_left_13.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_2.png | Bin 0 -> 431 bytes .../left/attack_left_2.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_3.png | Bin 0 -> 440 bytes .../left/attack_left_3.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_4.png | Bin 0 -> 459 bytes .../left/attack_left_4.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_5.png | Bin 0 -> 469 bytes .../left/attack_left_5.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_6.png | Bin 0 -> 509 bytes .../left/attack_left_6.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_7.png | Bin 0 -> 466 bytes .../left/attack_left_7.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_8.png | Bin 0 -> 509 bytes .../left/attack_left_8.png.import | 34 +++ .../ghost_kid_attack/left/attack_left_9.png | Bin 0 -> 469 bytes .../left/attack_left_9.png.import | 34 +++ .../ghost_kid_attack/right/attack_right_1.png | Bin 0 -> 454 bytes .../right/attack_right_1.png.import | 34 +++ .../right/attack_right_10.png | Bin 0 -> 490 bytes .../right/attack_right_10.png.import | 34 +++ .../right/attack_right_11.png | Bin 0 -> 474 bytes .../right/attack_right_11.png.import | 34 +++ .../right/attack_right_12.png | Bin 0 -> 466 bytes .../right/attack_right_12.png.import | 34 +++ .../right/attack_right_13.png | Bin 0 -> 454 bytes .../right/attack_right_13.png.import | 34 +++ .../ghost_kid_attack/right/attack_right_2.png | Bin 0 -> 466 bytes .../right/attack_right_2.png.import | 34 +++ .../ghost_kid_attack/right/attack_right_3.png | Bin 0 -> 474 bytes .../right/attack_right_3.png.import | 34 +++ .../ghost_kid_attack/right/attack_right_4.png | Bin 0 -> 490 bytes .../right/attack_right_4.png.import | 34 +++ .../ghost_kid_attack/right/attack_right_5.png | Bin 0 -> 519 bytes .../right/attack_right_5.png.import | 34 +++ .../ghost_kid_attack/right/attack_right_6.png | Bin 0 -> 547 bytes .../right/attack_right_6.png.import | 34 +++ .../ghost_kid_attack/right/attack_right_7.png | Bin 0 -> 516 bytes .../right/attack_right_7.png.import | 34 +++ .../ghost_kid_attack/right/attack_right_8.png | Bin 0 -> 547 bytes .../right/attack_right_8.png.import | 34 +++ .../ghost_kid_attack/right/attack_right_9.png | Bin 0 -> 519 bytes .../right/attack_right_9.png.import | 34 +++ .../anims/ghost_kid_attack/up/attack_up_1.PNG | Bin 0 -> 398 bytes .../up/attack_up_1.PNG.import | 34 +++ .../ghost_kid_attack/up/attack_up_10.png | Bin 0 -> 415 bytes .../up/attack_up_10.png.import | 34 +++ .../ghost_kid_attack/up/attack_up_11.PNG | Bin 0 -> 398 bytes .../up/attack_up_11.PNG.import | 34 +++ .../anims/ghost_kid_attack/up/attack_up_2.png | Bin 0 -> 415 bytes .../up/attack_up_2.png.import | 34 +++ .../anims/ghost_kid_attack/up/attack_up_3.png | Bin 0 -> 437 bytes .../up/attack_up_3.png.import | 34 +++ .../anims/ghost_kid_attack/up/attack_up_4.png | Bin 0 -> 444 bytes .../up/attack_up_4.png.import | 34 +++ .../anims/ghost_kid_attack/up/attack_up_5.png | Bin 0 -> 454 bytes .../up/attack_up_5.png.import | 34 +++ .../anims/ghost_kid_attack/up/attack_up_6.png | Bin 0 -> 447 bytes .../up/attack_up_6.png.import | 34 +++ .../anims/ghost_kid_attack/up/attack_up_7.png | Bin 0 -> 454 bytes .../up/attack_up_7.png.import | 34 +++ .../anims/ghost_kid_attack/up/attack_up_8.png | Bin 0 -> 444 bytes .../up/attack_up_8.png.import | 34 +++ .../anims/ghost_kid_attack/up/attack_up_9.png | Bin 0 -> 437 bytes .../up/attack_up_9.png.import | 34 +++ source/scenes/player.tscn | 278 +++++++++++++++++- 97 files changed, 1908 insertions(+), 2 deletions(-) create mode 100644 source/anims/ghost_kid_attack/down/attack_down_1.PNG create mode 100644 source/anims/ghost_kid_attack/down/attack_down_1.PNG.import create mode 100644 source/anims/ghost_kid_attack/down/attack_down_10.png create mode 100644 source/anims/ghost_kid_attack/down/attack_down_10.png.import create mode 100644 source/anims/ghost_kid_attack/down/attack_down_11.PNG create mode 100644 source/anims/ghost_kid_attack/down/attack_down_11.PNG.import create mode 100644 source/anims/ghost_kid_attack/down/attack_down_2.png create mode 100644 source/anims/ghost_kid_attack/down/attack_down_2.png.import create mode 100644 source/anims/ghost_kid_attack/down/attack_down_3.png create mode 100644 source/anims/ghost_kid_attack/down/attack_down_3.png.import create mode 100644 source/anims/ghost_kid_attack/down/attack_down_4.png create mode 100644 source/anims/ghost_kid_attack/down/attack_down_4.png.import create mode 100644 source/anims/ghost_kid_attack/down/attack_down_5.png create mode 100644 source/anims/ghost_kid_attack/down/attack_down_5.png.import create mode 100644 source/anims/ghost_kid_attack/down/attack_down_6.png create mode 100644 source/anims/ghost_kid_attack/down/attack_down_6.png.import create mode 100644 source/anims/ghost_kid_attack/down/attack_down_7.png create mode 100644 source/anims/ghost_kid_attack/down/attack_down_7.png.import create mode 100644 source/anims/ghost_kid_attack/down/attack_down_8.png create mode 100644 source/anims/ghost_kid_attack/down/attack_down_8.png.import create mode 100644 source/anims/ghost_kid_attack/down/attack_down_9.png create mode 100644 source/anims/ghost_kid_attack/down/attack_down_9.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_1.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_1.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_10.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_10.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_11.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_11.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_12.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_12.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_13.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_13.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_2.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_2.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_3.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_3.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_4.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_4.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_5.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_5.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_6.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_6.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_7.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_7.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_8.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_8.png.import create mode 100644 source/anims/ghost_kid_attack/left/attack_left_9.png create mode 100644 source/anims/ghost_kid_attack/left/attack_left_9.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_1.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_1.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_10.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_10.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_11.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_11.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_12.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_12.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_13.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_13.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_2.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_2.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_3.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_3.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_4.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_4.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_5.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_5.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_6.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_6.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_7.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_7.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_8.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_8.png.import create mode 100644 source/anims/ghost_kid_attack/right/attack_right_9.png create mode 100644 source/anims/ghost_kid_attack/right/attack_right_9.png.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_1.PNG create mode 100644 source/anims/ghost_kid_attack/up/attack_up_1.PNG.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_10.png create mode 100644 source/anims/ghost_kid_attack/up/attack_up_10.png.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_11.PNG create mode 100644 source/anims/ghost_kid_attack/up/attack_up_11.PNG.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_2.png create mode 100644 source/anims/ghost_kid_attack/up/attack_up_2.png.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_3.png create mode 100644 source/anims/ghost_kid_attack/up/attack_up_3.png.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_4.png create mode 100644 source/anims/ghost_kid_attack/up/attack_up_4.png.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_5.png create mode 100644 source/anims/ghost_kid_attack/up/attack_up_5.png.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_6.png create mode 100644 source/anims/ghost_kid_attack/up/attack_up_6.png.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_7.png create mode 100644 source/anims/ghost_kid_attack/up/attack_up_7.png.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_8.png create mode 100644 source/anims/ghost_kid_attack/up/attack_up_8.png.import create mode 100644 source/anims/ghost_kid_attack/up/attack_up_9.png create mode 100644 source/anims/ghost_kid_attack/up/attack_up_9.png.import diff --git a/source/anims/ghost_kid_attack/down/attack_down_1.PNG b/source/anims/ghost_kid_attack/down/attack_down_1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..337547f28fd0906f6fca31e3ffbd31d60ad4a8d9 GIT binary patch literal 454 zcmV;%0XhDOP)SJ831|S+_q~N7#*kAY+!7FGehWD%Vj{x+AwO>|0XNN@ zgTwYFU<$~=?$LiN0XSOmc!|aE;!;xaMFeo#)v)t>!HY}e@IBTNXtVf>|MUtJ?*Xhi z))~Ki{mEy=L!$6kEPzM^jO3DprJ!P*z64c3t-$}P0Nn%1i4)z2Do{dj{rMJ&G^Z&* z0+W0I=YDQ$#N;;xa9|F~Z35C-Z|tF~n3E9j%jJ1Ddm2M=>T9iA0VG;rTI~JxP2=48 ziz`5Y)B@$>>ob6HA8hjPn3Rt9X|{WxpQb6nEX$H?7!=F>agh3n<}Cpd>1n#IOAiAM w;1r|xMwX|N1H-F8Xgtt1CZ;F20BfkP_Dg%UWV7P_DWq`oiR%zIyL#TzxHB6VL$Yd_LDO#29KU!fOKD%&#G*qDX|>KlI0AO~6$% zkHKMU6Q~ME!T#d@wglkO@{gC;3@t7dnGYg>b63Mo&jl?mk;8XeOHi7{PyD-gz`O^r z=2&N3>H5=Gi@QSM%PfE-0!DC2!a}fMl$M})bQW+dZV^)wu=&+%VfWq1L`VWGc)yl& z2>4$e;5o2mgKX-6h2Z`3V++6dGHOXAfk{3v#{Sr*8jqR%N>)2SFpeo12})yJC*_om zVkpfHjTnHy52yQ!*)xZ6-hYqT>=9EtfFuD7Zg-Vp&yP<`sg9)%WJLtzh=iB7SC<$2 zVAG$02oCM9*~K!9;}{_3c@8!V#!|me65EfMwgf2Tr|G&bd?H{6&KQ3;Ms-DUU}zoi kJYk4Ck^(^b07*qoM6N<$g4Gz;(EtDd literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/down/attack_down_10.png.import b/source/anims/ghost_kid_attack/down/attack_down_10.png.import new file mode 100644 index 00000000..2e4b0938 --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://x6sr4jjxpfc2" +path="res://.godot/imported/attack_down_10.png-0a939d767a383c93a117164c012fc3c2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_10.png" +dest_files=["res://.godot/imported/attack_down_10.png-0a939d767a383c93a117164c012fc3c2.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/source/anims/ghost_kid_attack/down/attack_down_11.PNG b/source/anims/ghost_kid_attack/down/attack_down_11.PNG new file mode 100644 index 0000000000000000000000000000000000000000..337547f28fd0906f6fca31e3ffbd31d60ad4a8d9 GIT binary patch literal 454 zcmV;%0XhDOP)SJ831|S+_q~N7#*kAY+!7FGehWD%Vj{x+AwO>|0XNN@ zgTwYFU<$~=?$LiN0XSOmc!|aE;!;xaMFeo#)v)t>!HY}e@IBTNXtVf>|MUtJ?*Xhi z))~Ki{mEy=L!$6kEPzM^jO3DprJ!P*z64c3t-$}P0Nn%1i4)z2Do{dj{rMJ&G^Z&* z0+W0I=YDQ$#N;;xa9|F~Z35C-Z|tF~n3E9j%jJ1Ddm2M=>T9iA0VG;rTI~JxP2=48 ziz`5Y)B@$>>ob6HA8hjPn3Rt9X|{WxpQb6nEX$H?7!=F>agh3n<}Cpd>1n#IOAiAM w;1r|xMwX|N1H-F8Xgtt1CZ;F20BfkP_Dg%UWV7P_DWq`oiR%zIyL#TzxHB6VL$Yd_LDO#29KU!fOKD%&#G*qDX|>KlI0AO~6$% zkHKMU6Q~ME!T#d@wglkO@{gC;3@t7dnGYg>b63Mo&jl?mk;8XeOHi7{PyD-gz`O^r z=2&N3>H5=Gi@QSM%PfE-0!DC2!a}fMl$M})bQW+dZV^)wu=&+%VfWq1L`VWGc)yl& z2>4$e;5o2mgKX-6h2Z`3V++6dGHOXAfk{3v#{Sr*8jqR%N>)2SFpeo12})yJC*_om zVkpfHjTnHy52yQ!*)xZ6-hYqT>=9EtfFuD7Zg-Vp&yP<`sg9)%WJLtzh=iB7SC<$2 zVAG$02oCM9*~K!9;}{_3c@8!V#!|me65EfMwgf2Tr|G&bd?H{6&KQ3;Ms-DUU}zoi kJYk4Ck^(^b07*qoM6N<$g4Gz;(EtDd literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/down/attack_down_2.png.import b/source/anims/ghost_kid_attack/down/attack_down_2.png.import new file mode 100644 index 00000000..775a6f57 --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv32xw3j2e5ue" +path="res://.godot/imported/attack_down_2.png-ba5efd7addfc3bf2fef2cafcb9dfe0f3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_2.png" +dest_files=["res://.godot/imported/attack_down_2.png-ba5efd7addfc3bf2fef2cafcb9dfe0f3.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/source/anims/ghost_kid_attack/down/attack_down_3.png b/source/anims/ghost_kid_attack/down/attack_down_3.png new file mode 100644 index 0000000000000000000000000000000000000000..dafc0de8f8ac04414a4a865622836c9cff6bf64b GIT binary patch literal 504 zcmV1*uv5M8A6liq`;o zjy~hk{TE%%?gGhAF#$305OhZkRgao>%9{#KWtVD5GZ%mG)=f8U8GQR545qj_hzI22hJWIFe2nF0eK@=#Ol4u965g-8^QT#kU zQlB_=*LBsIpQkgEBlm;AqXUl)Ts9uV#pquf{i-blT=IFIv)Fy#!wz2)iQ0G*E~Uhh zl_ydpQQCy4WEsa%;uq&W#>MBHO9UzawQZZjP;H2@5YG{CmG4PTj2H>Ge@M^A9D!Yx zb8yI|0T@6{@3njaj9J>2jf>af^=uhu}c@JRC zvCjC&^(S4XP1A(OJFRT=-pJyT$$?SofX@>K-Vq6$vjqSt`~nVUms$z_nI!-K N002ovPDHLkV1ksW+f4uf literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/down/attack_down_4.png.import b/source/anims/ghost_kid_attack/down/attack_down_4.png.import new file mode 100644 index 00000000..47ef5f99 --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://db7xb4a3xempt" +path="res://.godot/imported/attack_down_4.png-b21ff838d80917f3329b8e22dfdc3599.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_4.png" +dest_files=["res://.godot/imported/attack_down_4.png-b21ff838d80917f3329b8e22dfdc3599.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/source/anims/ghost_kid_attack/down/attack_down_5.png b/source/anims/ghost_kid_attack/down/attack_down_5.png new file mode 100644 index 0000000000000000000000000000000000000000..b7a66d57669aad01e51e7a70e07982221cb63dca GIT binary patch literal 538 zcmV+#0_FXQP)k+ zoP$Ho6_6w#!EUj?F9LYA{OhGQBWKrw%oh>B=~P3O_d?FDC5P_5Mi8swFZ$CvU_Jww zIp&N<&YyHCy9-qQnF&x51tX|5V!;>@Vk3xNoe><1TE&zE+^5%`N^%T5ro-pHd<2_6 z^Er@3ro!g40wV6ag6x0==TM)2MWCeD=+F`cn9mWusvX*aJq2tcU`cTO`4%;&x01kO z3>uiGLkh0vGEXnt51S+aol1g(av1@shkUiQ z$8>53xZTN=Y-N}gG28p=o94dK#X7KZBtTl>@bUHO{J0J>=~p0%BKOm5F@~<|0>m&3 zL54s!srOE5`(e`#p^tG30_l(INnY8A2#bp*2Z(tDaIUHfi~6K&YJgYfMj&JPNMvOx co5TtGU#o+XOjsNWp#T5?07*qoM6N<$g0NotR{#J2 literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/down/attack_down_5.png.import b/source/anims/ghost_kid_attack/down/attack_down_5.png.import new file mode 100644 index 00000000..d63cf343 --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_5.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkie5iwmwa71g" +path="res://.godot/imported/attack_down_5.png-43ea108a4b1b1b1d22a0e0dbffd5ddcd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_5.png" +dest_files=["res://.godot/imported/attack_down_5.png-43ea108a4b1b1b1d22a0e0dbffd5ddcd.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/source/anims/ghost_kid_attack/down/attack_down_6.png b/source/anims/ghost_kid_attack/down/attack_down_6.png new file mode 100644 index 0000000000000000000000000000000000000000..e84cd7e48e1272ff6ac93fe1a5a0b7697e397bd2 GIT binary patch literal 529 zcmV+s0`C2ZP)8GQSFsNrp%>545qj_hzI22hJWICd2nF0cK@=#OqGUIP6Cef>QT#kU zk+g!;UDs7dK2Jv`NA3rKM+FYAz-i-KuoU{&g?`l*0xtPH&n9-?_prmah(uj@5iPmI zl9eZtC6Su}oMaitQQ~L!KE}mc&N%`VfZDdTFjO02N{Cwo+{yPOCq|5fn;+8i)grL# z%fDV~F>-b-sQ4lRI88NVc`xMbT5{;_s|Bf3{6&9w1&U_? zJx8DM$o`Ygvb#X#tC#>KQ80o^BNmJaK@vz_nThx8y z8AsyqA-pL9^|i~cwZ!KLGjLNC&SNi|0I$roK*sWx$dg$%i4*p}iD`=n T6n#qk00000NkvXXu0mjfXJqHF literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/down/attack_down_6.png.import b/source/anims/ghost_kid_attack/down/attack_down_6.png.import new file mode 100644 index 00000000..9bda11e3 --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b3v711e1db3bs" +path="res://.godot/imported/attack_down_6.png-3806595d4688fe77bdb3c6aff8810cd5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_6.png" +dest_files=["res://.godot/imported/attack_down_6.png-3806595d4688fe77bdb3c6aff8810cd5.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/source/anims/ghost_kid_attack/down/attack_down_7.png b/source/anims/ghost_kid_attack/down/attack_down_7.png new file mode 100644 index 0000000000000000000000000000000000000000..b7a66d57669aad01e51e7a70e07982221cb63dca GIT binary patch literal 538 zcmV+#0_FXQP)k+ zoP$Ho6_6w#!EUj?F9LYA{OhGQBWKrw%oh>B=~P3O_d?FDC5P_5Mi8swFZ$CvU_Jww zIp&N<&YyHCy9-qQnF&x51tX|5V!;>@Vk3xNoe><1TE&zE+^5%`N^%T5ro-pHd<2_6 z^Er@3ro!g40wV6ag6x0==TM)2MWCeD=+F`cn9mWusvX*aJq2tcU`cTO`4%;&x01kO z3>uiGLkh0vGEXnt51S+aol1g(av1@shkUiQ z$8>53xZTN=Y-N}gG28p=o94dK#X7KZBtTl>@bUHO{J0J>=~p0%BKOm5F@~<|0>m&3 zL54s!srOE5`(e`#p^tG30_l(INnY8A2#bp*2Z(tDaIUHfi~6K&YJgYfMj&JPNMvOx co5TtGU#o+XOjsNWp#T5?07*qoM6N<$g0NotR{#J2 literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/down/attack_down_7.png.import b/source/anims/ghost_kid_attack/down/attack_down_7.png.import new file mode 100644 index 00000000..6ba98b07 --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_7.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccwx0tngwv0k0" +path="res://.godot/imported/attack_down_7.png-f693455a78e18d88eed93f9d7501d0ca.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_7.png" +dest_files=["res://.godot/imported/attack_down_7.png-f693455a78e18d88eed93f9d7501d0ca.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/source/anims/ghost_kid_attack/down/attack_down_8.png b/source/anims/ghost_kid_attack/down/attack_down_8.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ba6601b92e2a24337178ce827f948d95920965 GIT binary patch literal 523 zcmV+m0`&cfP)8GQR545qj_hzI22hJWIFe2nF0eK@=#Ol4u965g-8^QT#kU zQlB_=*LBsIpQkgEBlm;AqXUl)Ts9uV#pquf{i-blT=IFIv)Fy#!wz2)iQ0G*E~Uhh zl_ydpQQCy4WEsa%;uq&W#>MBHO9UzawQZZjP;H2@5YG{CmG4PTj2H>Ge@M^A9D!Yx zb8yI|0T@6{@3njaj9J>2jf>af^=uhu}c@JRC zvCjC&^(S4XP1A(OJFRT=-pJyT$$?SofX@>K-Vq6$vjqSt`~nVUms$z_nI!-K N002ovPDHLkV1ksW+f4uf literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/down/attack_down_8.png.import b/source/anims/ghost_kid_attack/down/attack_down_8.png.import new file mode 100644 index 00000000..eb86eae6 --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_8.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpq6wa32nn3x8" +path="res://.godot/imported/attack_down_8.png-b6b81a216e409e4ee06cf7ddf691e653.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_8.png" +dest_files=["res://.godot/imported/attack_down_8.png-b6b81a216e409e4ee06cf7ddf691e653.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/source/anims/ghost_kid_attack/down/attack_down_9.png b/source/anims/ghost_kid_attack/down/attack_down_9.png new file mode 100644 index 0000000000000000000000000000000000000000..dafc0de8f8ac04414a4a865622836c9cff6bf64b GIT binary patch literal 504 zcmV1*uv5M8A6liq`;o zjy~hk{TE%%?gGhAF#$305OhZkRgao>%9{#KWtVD5GZ%mG)=f8UPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0X#`WK~z{r?U&6B zf-n?-t8o{WfrBG>VFpL=zyw?z!2`3ng(H|~9(g6t+V^Koh^AlCv{c*o(I23jwr#_j zY%yPrDo_QgfLGvQOlCX}qPgQ~n&u0RuIsQAHkgZ81s+=96ckYSE_k7>?VH`)idV#*}(st|-O`8H}NYg_69)y&EZI|LX9Y=Df95Dz_2v36PhrFId RevJSC002ovPDHLkV1mD(sCEDV literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/left/attack_left_1.png.import b/source/anims/ghost_kid_attack/left/attack_left_1.png.import new file mode 100644 index 00000000..268910fa --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chouilgygbua7" +path="res://.godot/imported/attack_left_1.png-29a3a8967f6ebe7bf7cdfc0fae2196a6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_1.png" +dest_files=["res://.godot/imported/attack_left_1.png-29a3a8967f6ebe7bf7cdfc0fae2196a6.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/source/anims/ghost_kid_attack/left/attack_left_10.png b/source/anims/ghost_kid_attack/left/attack_left_10.png new file mode 100644 index 0000000000000000000000000000000000000000..eb3c09e81825c3b60daea48e2d773fc0096476d5 GIT binary patch literal 459 zcmV;+0W|)JP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0bof)K~z{r?U&1q z!ypib$!dFXGxi}RRCtr(L1-vxFF;Q=fuvc5OC{v1>RFn~ltp~krW zT>gI&YV0mRIt#XqD8xA4n7IBJ|G(t9U=mP^B%nzMc3lN9UgN1M0ky_Kv49rF0VhEG zh-hUTG)cl5Oaf}MTtgM`_AW8yuTukvQXhqKTJdipk#98t<_XDTsoxGE;a`6BF002ovPDHLkV1ls@ Bz%&2= literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/left/attack_left_10.png.import b/source/anims/ghost_kid_attack/left/attack_left_10.png.import new file mode 100644 index 00000000..622e4bc1 --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cw0y780wqksyn" +path="res://.godot/imported/attack_left_10.png-30cd837b13e8e9213214385594817ee1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_10.png" +dest_files=["res://.godot/imported/attack_left_10.png-30cd837b13e8e9213214385594817ee1.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/source/anims/ghost_kid_attack/left/attack_left_11.png b/source/anims/ghost_kid_attack/left/attack_left_11.png new file mode 100644 index 0000000000000000000000000000000000000000..69211ea79e3b1fc10a8e6d78bd603a6010b55cf9 GIT binary patch literal 440 zcmV;p0Z0CcP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0ZmCnK~z{r?U&sR zgCG#cvFR=@qYoXSFV4^r`rrhEA9xgz%^CdS5JLO>Mm&vAehRaLny zIr)4u4grUNLx5GlpiF8k8`0Qt-}mDKMP1jvPDV2N>{EXyE*g%hx7$sCp~^ zAA}N{3*gRzX(I}A9B)iieT@Guc`m2~8xuXa6>wz^!52ysB zq8yCpM1MdO@cO)cX&F*`Rse3C>WK1!MRZmW216;KS`j7zxbslHKOgRPxy}rx>Qb0J zz;&uI7<2Zy3K$gzMjwdZX_2mGv;X;~XPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0YpheK~z{r?U&09 z!Y~Ym17eph(;gUsOJ`sN4xOMEM&Qs{*n$y|iX0`C3H7T%stWm}D19aVW5-FetLxgW z$v)JpQ3MnLMSxYns4QwM3z6@57zTes(KJoCa=TEoXa$Ut;gldm6d{GcyVPnN=(-Ln zF(l#~SYjNgsw#?L;RGxiIR=R!y|B47Gy`7X*oFrnrBHrPP|q!h0>A)FBq-Pz_1wzu zPeO^+1#o-8v=GG@rwbGHJSBWLyDz8&H}Gzkwj+;dQV5_SE)(&85XuZ>yA;dmI5Kz2VU5r@ Z_X7JcioC*E&D;P0002ovPDHLkV1mY}sz3k$ literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/left/attack_left_12.png.import b/source/anims/ghost_kid_attack/left/attack_left_12.png.import new file mode 100644 index 00000000..d95d6cb9 --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_12.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bomxp8srccfkm" +path="res://.godot/imported/attack_left_12.png-2f8f3fd2daeafddbfc78b970e70bd1b3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_12.png" +dest_files=["res://.godot/imported/attack_left_12.png-2f8f3fd2daeafddbfc78b970e70bd1b3.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/source/anims/ghost_kid_attack/left/attack_left_13.png b/source/anims/ghost_kid_attack/left/attack_left_13.png new file mode 100644 index 0000000000000000000000000000000000000000..e511087fea4ac985963a60d7c6129df3b5b4ca20 GIT binary patch literal 423 zcmV;Y0a*TtP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0X#`WK~z{r?U&6B zf-n?-t8o{WfrBG>VFpL=zyw?z!2`3ng(H|~9(g6t+V^Koh^AlCv{c*o(I23jwr#_j zY%yPrDo_QgfLGvQOlCX}qPgQ~n&u0RuIsQAHkgZ81s+=96ckYSE_k7>?VH`)idV#*}(st|-O`8H}NYg_69)y&EZI|LX9Y=Df95Dz_2v36PhrFId RevJSC002ovPDHLkV1mD(sCEDV literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/left/attack_left_13.png.import b/source/anims/ghost_kid_attack/left/attack_left_13.png.import new file mode 100644 index 00000000..459a801f --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_13.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b5bxngy2t835q" +path="res://.godot/imported/attack_left_13.png-ebd7945888f74c7939e8aad728fbe38f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_13.png" +dest_files=["res://.godot/imported/attack_left_13.png-ebd7945888f74c7939e8aad728fbe38f.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/source/anims/ghost_kid_attack/left/attack_left_2.png b/source/anims/ghost_kid_attack/left/attack_left_2.png new file mode 100644 index 0000000000000000000000000000000000000000..dcfcb2b4d47e52033726257047e5872595a4fd62 GIT binary patch literal 431 zcmV;g0Z{&lP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0YpheK~z{r?U&09 z!Y~Ym17eph(;gUsOJ`sN4xOMEM&Qs{*n$y|iX0`C3H7T%stWm}D19aVW5-FetLxgW z$v)JpQ3MnLMSxYns4QwM3z6@57zTes(KJoCa=TEoXa$Ut;gldm6d{GcyVPnN=(-Ln zF(l#~SYjNgsw#?L;RGxiIR=R!y|B47Gy`7X*oFrnrBHrPP|q!h0>A)FBq-Pz_1wzu zPeO^+1#o-8v=GG@rwbGHJSBWLyDz8&H}Gzkwj+;dQV5_SE)(&85XuZ>yA;dmI5Kz2VU5r@ Z_X7JcioC*E&D;P0002ovPDHLkV1mY}sz3k$ literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/left/attack_left_2.png.import b/source/anims/ghost_kid_attack/left/attack_left_2.png.import new file mode 100644 index 00000000..1abdf687 --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djln1im73loc5" +path="res://.godot/imported/attack_left_2.png-0741594a253c94f5fba2a66e41b2739a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_2.png" +dest_files=["res://.godot/imported/attack_left_2.png-0741594a253c94f5fba2a66e41b2739a.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/source/anims/ghost_kid_attack/left/attack_left_3.png b/source/anims/ghost_kid_attack/left/attack_left_3.png new file mode 100644 index 0000000000000000000000000000000000000000..69211ea79e3b1fc10a8e6d78bd603a6010b55cf9 GIT binary patch literal 440 zcmV;p0Z0CcP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0ZmCnK~z{r?U&sR zgCG#cvFR=@qYoXSFV4^r`rrhEA9xgz%^CdS5JLO>Mm&vAehRaLny zIr)4u4grUNLx5GlpiF8k8`0Qt-}mDKMP1jvPDV2N>{EXyE*g%hx7$sCp~^ zAA}N{3*gRzX(I}A9B)iieT@Guc`m2~8xuXa6>wz^!52ysB zq8yCpM1MdO@cO)cX&F*`Rse3C>WK1!MRZmW216;KS`j7zxbslHKOgRPxy}rx>Qb0J zz;&uI7<2Zy3K$gzMjwdZX_2mGv;X;~XPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0bof)K~z{r?U&1q z!ypib$!dFXGxi}RRCtr(L1-vxFF;Q=fuvc5OC{v1>RFn~ltp~krW zT>gI&YV0mRIt#XqD8xA4n7IBJ|G(t9U=mP^B%nzMc3lN9UgN1M0ky_Kv49rF0VhEG zh-hUTG)cl5Oaf}MTtgM`_AW8yuTukvQXhqKTJdipk#98t<_XDTsoxGE;a`6BF002ovPDHLkV1ls@ Bz%&2= literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/left/attack_left_4.png.import b/source/anims/ghost_kid_attack/left/attack_left_4.png.import new file mode 100644 index 00000000..da2a64d9 --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://karm4nop4wa1" +path="res://.godot/imported/attack_left_4.png-e9515abb118cb8b32e773218469dcd67.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_4.png" +dest_files=["res://.godot/imported/attack_left_4.png-e9515abb118cb8b32e773218469dcd67.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/source/anims/ghost_kid_attack/left/attack_left_5.png b/source/anims/ghost_kid_attack/left/attack_left_5.png new file mode 100644 index 0000000000000000000000000000000000000000..3a3c22f499f6ab7cd453b5bf3fa54575ac3ef309 GIT binary patch literal 469 zcmV;`0V@89P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0cuG^K~z{r?U&7M zgfI|=O_W|}1`a797ivfeIZy$Yl#m0pq>GdgX`^vGXfo^hV~LQX{Ui(QUHd(I1{=Cz z7}A+MlZvD~GuTvfaVE|xH-7%@#)A;?P_6$j>d zhKm^zGY9sF1AX742^G!2u9;Ja32_ygdkn+CDrmH^0`N$Y=X*nHk6;=A0Z1e$R7`4* z^8b_2;&cPrS+H$H7-POMN$s5Szv{W*GH@%Jf%bC%W{08J!)^m83}Lz@R5b(Y8Ge*7 z!VToalLkIg7-=I3Vdj4YH_&mhkFU>i_p{+d&CvceYAdjrpq=sFW5N=pNFh*Pr_lry zE{1iliBJ;K!C&9sa(Q`r&UG$`?G_;e03Q@h03JckW4XFOAq2z`{+k!;)9h+ToTe!) z%Tj8;pn1dli8*D306NmLf$xJ*Dv13!;T$-c$mcmyJE+uI%B1uSDj%-A$uH7H00000 LNkvXXu0mjfRwcf? literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/left/attack_left_5.png.import b/source/anims/ghost_kid_attack/left/attack_left_5.png.import new file mode 100644 index 00000000..ed4f1238 --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_5.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d4d0r8rpw5bn" +path="res://.godot/imported/attack_left_5.png-2270731a83369194756815e1b0161cb5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_5.png" +dest_files=["res://.godot/imported/attack_left_5.png-2270731a83369194756815e1b0161cb5.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/source/anims/ghost_kid_attack/left/attack_left_6.png b/source/anims/ghost_kid_attack/left/attack_left_6.png new file mode 100644 index 0000000000000000000000000000000000000000..79adec4686386d57f5c184c780760a71d6cc09cf GIT binary patch literal 509 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0g_2XK~z{r?UzqV z#V`=YQ}HgnOuKNU7F@XL$^!_33s)|>5?9>_3f;QsS>7!?g79R*B#db?Gf9O~c|QnA z`d<2dotgAc)ijOSk~8c#<7D7uV0Q+N%BCjgK44Eg&$FGRXxkP?rox^@Yv3pehoBMB zgp>js(p+(17zXIXl!!G@A`aAb?M$$628ynnLQEv1u)A%T4Mc%s9}$2pMfSHRbvy^r z00=-KL8D@+h_heNx(U}MYf4H1 zETqlj-Up#YNUjUXu7STsNPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0cS}>K~z{r?U%uA z!!Qg*a_OI|0|iQjF&uh!fBA93OJ@eVswT5K*ry9<_s2xH6-rd&TK{ZG6XiUj-?kAT&YnOm`hCbm?-YQ-=}d-k9SII@5W zXsj4(zt{3`ArQTQegEMF$pb49pWk1p^@CRgAJ55!Af^l*Oxq{|ie$htN~zuhAmZ)g zJzQST(I6V-wS`LnogCXJf`h^=+#b*-EiuSBrMd{dQdm7Ad7%XB)9mhjei()@O;dVW zLC<Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0g_2XK~z{r?UzqV z#V`=YQ}HgnOuKNU7F@XL$^!_33s)|>5?9>_3f;QsS>7!?g79R*B#db?Gf9O~c|QnA z`d<2dotgAc)ijOSk~8c#<7D7uV0Q+N%BCjgK44Eg&$FGRXxkP?rox^@Yv3pehoBMB zgp>js(p+(17zXIXl!!G@A`aAb?M$$628ynnLQEv1u)A%T4Mc%s9}$2pMfSHRbvy^r z00=-KL8D@+h_heNx(U}MYf4H1 zETqlj-Up#YNUjUXu7STsNPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0cuG^K~z{r?U&7M zgfI|=O_W|}1`a797ivfeIZy$Yl#m0pq>GdgX`^vGXfo^hV~LQX{Ui(QUHd(I1{=Cz z7}A+MlZvD~GuTvfaVE|xH-7%@#)A;?P_6$j>d zhKm^zGY9sF1AX742^G!2u9;Ja32_ygdkn+CDrmH^0`N$Y=X*nHk6;=A0Z1e$R7`4* z^8b_2;&cPrS+H$H7-POMN$s5Szv{W*GH@%Jf%bC%W{08J!)^m83}Lz@R5b(Y8Ge*7 z!VToalLkIg7-=I3Vdj4YH_&mhkFU>i_p{+d&CvceYAdjrpq=sFW5N=pNFh*Pr_lry zE{1iliBJ;K!C&9sa(Q`r&UG$`?G_;e03Q@h03JckW4XFOAq2z`{+k!;)9h+ToTe!) z%Tj8;pn1dli8*D306NmLf$xJ*Dv13!;T$-c$mcmyJE+uI%B1uSDj%-A$uH7H00000 LNkvXXu0mjfRwcf? literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/left/attack_left_9.png.import b/source/anims/ghost_kid_attack/left/attack_left_9.png.import new file mode 100644 index 00000000..e9c66c12 --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_9.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://tp36uighrsu3" +path="res://.godot/imported/attack_left_9.png-87db0881033c73e83c86d3a119d7d36c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_9.png" +dest_files=["res://.godot/imported/attack_left_9.png-87db0881033c73e83c86d3a119d7d36c.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/source/anims/ghost_kid_attack/right/attack_right_1.png b/source/anims/ghost_kid_attack/right/attack_right_1.png new file mode 100644 index 0000000000000000000000000000000000000000..41ad57e40b031453602174ff9ae08f0c747dd091 GIT binary patch literal 454 zcmV;%0XhDOP)I zN3<%yLvR*zN&v1}x^9_{nm+@j!I1}17LO!!Jz>*{ulciJHaJxQ#?x$G0-DbN_8j|- zM*B~;4%D(;q=d|nJP(?Yjge%V9WHQSWm(eu z{5x#jwrzFh^Kzy*v@d{b22P)WTjD8LjPbQGu1W!L;`2OD;zY$}f?VFO1mFcet04lE zj@|+-0$2)^#uNeIsIAA%AJo zz46fclO6NBz{o2bfW#s-J)l@W_hs(^8YM55V`l^KCCCw`oNNFTI0B*w;0TCffCLEl zNr!m;90I@#rrJ*fu$~eT;PLyDIv_9Jl5f6Wjt0XIcUT(ptj~pRkW+ zCX9=n*jM#^Uro~#)rmRb(`JARZfejsAv%U(;QeAA4@}+zJoyM)TLMjE gvkdPx#07*qoM6N<$f^$CEO8@`> literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/right/attack_right_10.png.import b/source/anims/ghost_kid_attack/right/attack_right_10.png.import new file mode 100644 index 00000000..1f4f7257 --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhdtvedx7g4yl" +path="res://.godot/imported/attack_right_10.png-e3b160dac42823944583b57bd7ecd686.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_10.png" +dest_files=["res://.godot/imported/attack_right_10.png-e3b160dac42823944583b57bd7ecd686.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/source/anims/ghost_kid_attack/right/attack_right_11.png b/source/anims/ghost_kid_attack/right/attack_right_11.png new file mode 100644 index 0000000000000000000000000000000000000000..b722a3a93ea2c1c219a28bf745e936b1f4062bf1 GIT binary patch literal 474 zcmV<00VV#4P)o2cAz}!`&F)8{@h&1VZs`+f?k^?S^^8nn?7U;*&PxCr2?9oH@5QSwJYhjHdX6y>7`uP1b#_>w0;gHM2sEDo>^b%u zgZocC=MRCIpJoCqmcfh&<>sZY`3!KC60AjUCLp(~UMDghLD zdwGp;>3jdU2S02Qp^Op~qe>vn)e2~HDGqJ(%P8#v0U*;kc1FgO^xCHxzHH=>pIYf$ zH%(KwuB(ivF7xOMvetoOBC`3P5c)jN5FBbAgCJ`ikg+-aR~LYp3oQA50I+n6guK|o QmH+?%07*qoM6N<$g2Q*rp8x;= literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/right/attack_right_11.png.import b/source/anims/ghost_kid_attack/right/attack_right_11.png.import new file mode 100644 index 00000000..eabcaf31 --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_11.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cb367xtd41t0x" +path="res://.godot/imported/attack_right_11.png-3550f59a03dec9017839c1b4bcee1652.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_11.png" +dest_files=["res://.godot/imported/attack_right_11.png-3550f59a03dec9017839c1b4bcee1652.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/source/anims/ghost_kid_attack/right/attack_right_12.png b/source/anims/ghost_kid_attack/right/attack_right_12.png new file mode 100644 index 0000000000000000000000000000000000000000..bbaa76ff3435e7e88d5fe411319603ac28d2bb34 GIT binary patch literal 466 zcmV;@0WJQCP)w&drpc)eP@Zb_B2aw>u;)n`Cf$;oQ;Y63OIaxv8e_zdI{du`POyag=W|0clK z&su58f2sr8P0)NyMkVm|^Uc`9x+h*Gz!g2o1kYI3#m~}3K$5UTi$6Z^L2R7#h;9-< zf%n%pH777aM5G!(PLlv(qpB6qeEU2ycfX9ZF6@2S8t|t3`Dg2CxkwZBZLe!PC$@W2N;{v|8xO4bHI}A7c?(_gj*^r&j0`b07*qo IM6N<$f**d)Q~&?~ literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/right/attack_right_12.png.import b/source/anims/ghost_kid_attack/right/attack_right_12.png.import new file mode 100644 index 00000000..8d7d69c2 --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_12.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvq5vx2wfnyey" +path="res://.godot/imported/attack_right_12.png-9c5e7e0581f81506e6a394db8290d78a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_12.png" +dest_files=["res://.godot/imported/attack_right_12.png-9c5e7e0581f81506e6a394db8290d78a.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/source/anims/ghost_kid_attack/right/attack_right_13.png b/source/anims/ghost_kid_attack/right/attack_right_13.png new file mode 100644 index 0000000000000000000000000000000000000000..41ad57e40b031453602174ff9ae08f0c747dd091 GIT binary patch literal 454 zcmV;%0XhDOP)I zN3<%yLvR*zN&v1}x^9_{nm+@j!I1}17LO!!Jz>*{ulciJHaJxQ#?x$G0-DbN_8j|- zM*B~;w&drpc)eP@Zb_B2aw>u;)n`Cf$;oQ;Y63OIaxv8e_zdI{du`POyag=W|0clK z&su58f2sr8P0)NyMkVm|^Uc`9x+h*Gz!g2o1kYI3#m~}3K$5UTi$6Z^L2R7#h;9-< zf%n%pH777aM5G!(PLlv(qpB6qeEU2ycfX9ZF6@2S8t|t3`Dg2CxkwZBZLe!PC$@W2N;{v|8xO4bHI}A7c?(_gj*^r&j0`b07*qo IM6N<$f**d)Q~&?~ literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/right/attack_right_2.png.import b/source/anims/ghost_kid_attack/right/attack_right_2.png.import new file mode 100644 index 00000000..64241dea --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1vyummojmcie" +path="res://.godot/imported/attack_right_2.png-1cfadef9ba4bb3d0291b49a8fccad2cc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_2.png" +dest_files=["res://.godot/imported/attack_right_2.png-1cfadef9ba4bb3d0291b49a8fccad2cc.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/source/anims/ghost_kid_attack/right/attack_right_3.png b/source/anims/ghost_kid_attack/right/attack_right_3.png new file mode 100644 index 0000000000000000000000000000000000000000..b722a3a93ea2c1c219a28bf745e936b1f4062bf1 GIT binary patch literal 474 zcmV<00VV#4P)o2cAz}!`&F)8{@h&1VZs`+f?k^?S^^8nn?7U;*&PxCr2?9oH@5QSwJYhjHdX6y>7`uP1b#_>w0;gHM2sEDo>^b%u zgZocC=MRCIpJoCqmcfh&<>sZY`3!KC60AjUCLp(~UMDghLD zdwGp;>3jdU2S02Qp^Op~qe>vn)e2~HDGqJ(%P8#v0U*;kc1FgO^xCHxzHH=>pIYf$ zH%(KwuB(ivF7xOMvetoOBC`3P5c)jN5FBbAgCJ`ikg+-aR~LYp3oQA50I+n6guK|o QmH+?%07*qoM6N<$g2Q*rp8x;= literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/right/attack_right_3.png.import b/source/anims/ghost_kid_attack/right/attack_right_3.png.import new file mode 100644 index 00000000..05b4731e --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ba05p04eve4ic" +path="res://.godot/imported/attack_right_3.png-9f0336d27467b3e9af87dd3425009f18.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_3.png" +dest_files=["res://.godot/imported/attack_right_3.png-9f0336d27467b3e9af87dd3425009f18.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/source/anims/ghost_kid_attack/right/attack_right_4.png b/source/anims/ghost_kid_attack/right/attack_right_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ded2eea6c28e4c424841d88dc5830b1aecef8e51 GIT binary patch literal 490 zcmV4%D(;q=d|nJP(?Yjge%V9WHQSWm(eu z{5x#jwrzFh^Kzy*v@d{b22P)WTjD8LjPbQGu1W!L;`2OD;zY$}f?VFO1mFcet04lE zj@|+-0$2)^#uNeIsIAA%AJo zz46fclO6NBz{o2bfW#s-J)l@W_hs(^8YM55V`l^KCCCw`oNNFTI0B*w;0TCffCLEl zNr!m;90I@#rrJ*fu$~eT;PLyDIv_9Jl5f6Wjt0XIcUT(ptj~pRkW+ zCX9=n*jM#^Uro~#)rmRb(`JARZfejsAv%U(;QeAA4@}+zJoyM)TLMjE gvkdPx#07*qoM6N<$f^$CEO8@`> literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/right/attack_right_4.png.import b/source/anims/ghost_kid_attack/right/attack_right_4.png.import new file mode 100644 index 00000000..5eb84648 --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dg04mktbywi34" +path="res://.godot/imported/attack_right_4.png-0feb908c2d0668db6e756fb85f0bdf8a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_4.png" +dest_files=["res://.godot/imported/attack_right_4.png-0feb908c2d0668db6e756fb85f0bdf8a.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/source/anims/ghost_kid_attack/right/attack_right_5.png b/source/anims/ghost_kid_attack/right/attack_right_5.png new file mode 100644 index 0000000000000000000000000000000000000000..747f3d15de0c71d55df28c1cf90fdaede7ca0afa GIT binary patch literal 519 zcmV+i0{H!jP)kyrQl>GIzf}O#t1lpw^E`6 z_U>LoI!ZuOU~kMW0=R1Hb#r)Z*`1(O$$1eu`2gYdgv=AaWp|Q=va184PO*3rC_V$2 zIp&Rr^QRoL+rYq|VgdvU)N}}i{L=P+&j8xYR?8jb%Ecq#+)0A^pAjGsffYpT7uAyI ze54$920#Qq5+OmZ^e;MzSl3|$2$Z|tjKEeWe1cH|pWk18d{hT0&jbSf{FPMM8Ssnw zOeDCBr5plB4b?Sd5v)&_$167U*XI|j%bi~XT*28nUC|LBNP;j4Hrn4l-VJ`x8P7P) znk3*CArN*BVEND|Z7Eqb0u*7ZLj`@GPb`!}Tk2mk=cTbE$vOHy({-I0$C0(=D)Xd0 zc?dTXQH9@xko&&J!Y7)?AgtMEKqem{r$&&%_%((lLA`qv{{dVDpj|BHcY*)_002ov JPDHLkV1l)*;*9_R literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/right/attack_right_5.png.import b/source/anims/ghost_kid_attack/right/attack_right_5.png.import new file mode 100644 index 00000000..20172ba5 --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_5.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dj7j7aohstasl" +path="res://.godot/imported/attack_right_5.png-b1387e0176319af5206fa406264733b7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_5.png" +dest_files=["res://.godot/imported/attack_right_5.png-b1387e0176319af5206fa406264733b7.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/source/anims/ghost_kid_attack/right/attack_right_6.png b/source/anims/ghost_kid_attack/right/attack_right_6.png new file mode 100644 index 0000000000000000000000000000000000000000..9da31b59c30a7aca0242a49836bce5c4632869b0 GIT binary patch literal 547 zcmV+;0^I$HP)+#qD(O6dy^FSq zi+DVqpU)oK+H|Yc%FNlW=1h*<7l6wS%)SGQfw$mXY2Q`anIQl+`RR00W3Sh1%)_<{ zqN{v}&ZWdLl>;e4l+FNFa^COvas1-g0b75~xCCI3e7Rg|F|uYfUxvv6xH7&49Orr! z;Opl*=afX#jSE5%Aogd17z%cri+!|lH2@OkT0AFr zE9XOf>8}}IEpJbu@8dbM-EPg{a1bV5Ox7Q>r5(sR!kOQMkaxQsIyTjhM(C@rp> lE|s8^>rWYahw9ZM_%HF+pmrx3PFDZ`002ovPDHLkV1iX%`+@)f literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/right/attack_right_6.png.import b/source/anims/ghost_kid_attack/right/attack_right_6.png.import new file mode 100644 index 00000000..49c8a19a --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://l2jsexbc2a5n" +path="res://.godot/imported/attack_right_6.png-4368aa9f40ba7a4063ec953a7708a20e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_6.png" +dest_files=["res://.godot/imported/attack_right_6.png-4368aa9f40ba7a4063ec953a7708a20e.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/source/anims/ghost_kid_attack/right/attack_right_7.png b/source/anims/ghost_kid_attack/right/attack_right_7.png new file mode 100644 index 0000000000000000000000000000000000000000..0fba94b385e1eff40c4fc57ecc6417632daea79d GIT binary patch literal 516 zcmV+f0{i`mP)*A5^>5=5%z64wqcz6YFJ8!{cj4zFG#U25Ud>ls=yJ;Hu5o;1r8XrVcia1oY z2uX@aodK+5>ia&#PmUMCE?)~y2`E5bRh5RZ>9bT#6W~^!OHNgy5}fjSO@J5pUjtRZ z(bZc-s{$+lM`I2Nz*SqWo2O%I-V0g=dmcnyK1g^yVe`aq&3nmWaHs+TC)>OPWS;@- zIrbZk`%gPI?*bz~*#bxw!Sn>h{BkZ^09Pr&Xv>OlZtmUdd>OBA$!q}|Bn}_qLcbi( z{`Gs|x&^0KAXa{H4tR6cGjO^9NoKK66(Cm+J8a9`x_bCk0pGtrA;#udk~2u=$H)<9 zzJ>sMxjhrx^_Y8qeRH}VOy*%_18?kK!7O^Qs^t%wk?KXh;hq2&!4Km zW+G7dO$fW|I&^Gm9)r;DJ_9oO3_G<2DUQ2sm=nya2lyZ3e3-_7;+-=90000+#qD(O6dy^FSq zi+DVqpU)oK+H|Yc%FNlW=1h*<7l6wS%)SGQfw$mXY2Q`anIQl+`RR00W3Sh1%)_<{ zqN{v}&ZWdLl>;e4l+FNFa^COvas1-g0b75~xCCI3e7Rg|F|uYfUxvv6xH7&49Orr! z;Opl*=afX#jSE5%Aogd17z%cri+!|lH2@OkT0AFr zE9XOf>8}}IEpJbu@8dbM-EPg{a1bV5Ox7Q>r5(sR!kOQMkaxQsIyTjhM(C@rp> lE|s8^>rWYahw9ZM_%HF+pmrx3PFDZ`002ovPDHLkV1iX%`+@)f literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/right/attack_right_8.png.import b/source/anims/ghost_kid_attack/right/attack_right_8.png.import new file mode 100644 index 00000000..d23904fc --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_8.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ckfr260lsg0q1" +path="res://.godot/imported/attack_right_8.png-94eb0f2f49aec8742adb4a4dd7bad39d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_8.png" +dest_files=["res://.godot/imported/attack_right_8.png-94eb0f2f49aec8742adb4a4dd7bad39d.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/source/anims/ghost_kid_attack/right/attack_right_9.png b/source/anims/ghost_kid_attack/right/attack_right_9.png new file mode 100644 index 0000000000000000000000000000000000000000..747f3d15de0c71d55df28c1cf90fdaede7ca0afa GIT binary patch literal 519 zcmV+i0{H!jP)kyrQl>GIzf}O#t1lpw^E`6 z_U>LoI!ZuOU~kMW0=R1Hb#r)Z*`1(O$$1eu`2gYdgv=AaWp|Q=va184PO*3rC_V$2 zIp&Rr^QRoL+rYq|VgdvU)N}}i{L=P+&j8xYR?8jb%Ecq#+)0A^pAjGsffYpT7uAyI ze54$920#Qq5+OmZ^e;MzSl3|$2$Z|tjKEeWe1cH|pWk18d{hT0&jbSf{FPMM8Ssnw zOeDCBr5plB4b?Sd5v)&_$167U*XI|j%bi~XT*28nUC|LBNP;j4Hrn4l-VJ`x8P7P) znk3*CArN*BVEND|Z7Eqb0u*7ZLj`@GPb`!}Tk2mk=cTbE$vOHy({-I0$C0(=D)Xd0 zc?dTXQH9@xko&&J!Y7)?AgtMEKqem{r$&&%_%((lLA`qv{{dVDpj|BHcY*)_002ov JPDHLkV1l)*;*9_R literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/right/attack_right_9.png.import b/source/anims/ghost_kid_attack/right/attack_right_9.png.import new file mode 100644 index 00000000..90ea4b0a --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_9.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5a4xoe5gatms" +path="res://.godot/imported/attack_right_9.png-b519cb741c08acbc13ad9fb66184eb76.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_9.png" +dest_files=["res://.godot/imported/attack_right_9.png-b519cb741c08acbc13ad9fb66184eb76.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/source/anims/ghost_kid_attack/up/attack_up_1.PNG b/source/anims/ghost_kid_attack/up/attack_up_1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..34e9a5cdf68e592060bd2d37346572d3ffe28cb1 GIT binary patch literal 398 zcmV;90df9`P)pJZDIqX>+YG;7lf!u+k^B9iC_`(<$JOHuyFbtx0(=_0RSQA8H{3RTi19&^MIe@oA86bBccfiyE@7eYoMH7HW&>Q<-0FT$x zyFoSH+yPpg+O)#l`rI1L5dpMhDnw(^#*xNxTLggMB@tYQ5p6DRnX3Sjh*VheQBBX) zEL=|Kn2Y1}e*2hHVXLiO%|8Cmw{1J=_I*FuV4#n$r=Z0vn)VeyB0ixk%jqG)Q5=2b sHiUW6pW?p;tphxPc7zK{KCUy(-)5*@bj*A-cK`qY07*qoM6N<$f`AvAW8go{Wh)KeF z2w^4e=0GMA4)vTIom&JDh}LA=IjU&{URpV4N0i{9FxLo(1yeg00`pTK?(fMSh50F9 zE#0fo|0!T8#N$7!Ksb6i+c)PTrli0mX8M|}TWfTW zB}|&9DnJt@TWhSvD3<5dtk`X~p%%ye@$fLGz`3^dYW8q|v~8Pk`@T;$7#QRJm?X*% zG3ypUAznpQRp}zY0UTpp*Tqn(8*L7WmI4TdBUOY0YcZ^U8gFf_Xmp^^>TCc2002ov JPDHLkV1h27vmO8d literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/up/attack_up_10.png.import b/source/anims/ghost_kid_attack/up/attack_up_10.png.import new file mode 100644 index 00000000..3974ba49 --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3o2y6njuirjm" +path="res://.godot/imported/attack_up_10.png-538f2915024d5553171348eeb0ad4198.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_10.png" +dest_files=["res://.godot/imported/attack_up_10.png-538f2915024d5553171348eeb0ad4198.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/source/anims/ghost_kid_attack/up/attack_up_11.PNG b/source/anims/ghost_kid_attack/up/attack_up_11.PNG new file mode 100644 index 0000000000000000000000000000000000000000..34e9a5cdf68e592060bd2d37346572d3ffe28cb1 GIT binary patch literal 398 zcmV;90df9`P)pJZDIqX>+YG;7lf!u+k^B9iC_`(<$JOHuyFbtx0(=_0RSQA8H{3RTi19&^MIe@oA86bBccfiyE@7eYoMH7HW&>Q<-0FT$x zyFoSH+yPpg+O)#l`rI1L5dpMhDnw(^#*xNxTLggMB@tYQ5p6DRnX3Sjh*VheQBBX) zEL=|Kn2Y1}e*2hHVXLiO%|8Cmw{1J=_I*FuV4#n$r=Z0vn)VeyB0ixk%jqG)Q5=2b sHiUW6pW?p;tphxPc7zK{KCUy(-)5*@bj*A-cK`qY07*qoM6N<$f`AvAW8go{Wh)KeF z2w^4e=0GMA4)vTIom&JDh}LA=IjU&{URpV4N0i{9FxLo(1yeg00`pTK?(fMSh50F9 zE#0fo|0!T8#N$7!Ksb6i+c)PTrli0mX8M|}TWfTW zB}|&9DnJt@TWhSvD3<5dtk`X~p%%ye@$fLGz`3^dYW8q|v~8Pk`@T;$7#QRJm?X*% zG3ypUAznpQRp}zY0UTpp*Tqn(8*L7WmI4TdBUOY0YcZ^U8gFf_Xmp^^>TCc2002ov JPDHLkV1h27vmO8d literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/up/attack_up_2.png.import b/source/anims/ghost_kid_attack/up/attack_up_2.png.import new file mode 100644 index 00000000..78b63803 --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://boary72h8x27b" +path="res://.godot/imported/attack_up_2.png-ef2dcf23adcfc9429249c4099f34f367.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_2.png" +dest_files=["res://.godot/imported/attack_up_2.png-ef2dcf23adcfc9429249c4099f34f367.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/source/anims/ghost_kid_attack/up/attack_up_3.png b/source/anims/ghost_kid_attack/up/attack_up_3.png new file mode 100644 index 0000000000000000000000000000000000000000..0d872e110e541dcd0a5dab1b2498befdff89820e GIT binary patch literal 437 zcmV;m0ZRUfP)q5pG0bBN<#>wtUpa6F$Z0emL3E;Jh&bfd^c8@!dT;KvQHyTTy z?WkCpm;@*sZ^2wZz2t5^cl1Az3&`%~a=T{nS3t7>+MLF;skAPw(HcoWxC~k`C8D_) z;|O_@{je?xfc0>lC~;5v*LBbFEgC&g0&XihTDHO^s_u;kOMI_&nY7RTfH6wN8I zHP$}Oq8CWt_knjD#}Gq+7+?2EqWyqrmjDX!teU0?Cn0v^hz-Nwp-`7>4vCrrNQNVI fgcIj5tbZCGEiQ0$9TW{r00000NkvXXu0mjf&!WQo literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/up/attack_up_3.png.import b/source/anims/ghost_kid_attack/up/attack_up_3.png.import new file mode 100644 index 00000000..531e553e --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dyuiu62ot5e2w" +path="res://.godot/imported/attack_up_3.png-7009bbf07133cff4e699f520cfc91191.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_3.png" +dest_files=["res://.godot/imported/attack_up_3.png-7009bbf07133cff4e699f520cfc91191.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/source/anims/ghost_kid_attack/up/attack_up_4.png b/source/anims/ghost_kid_attack/up/attack_up_4.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d2678f227c25e812fea576df16ba120c6a44f7 GIT binary patch literal 444 zcmV;t0Ymb7mGXMR4OIh1rCLe;VrYi&aA6S2)N7iIFa#$UB4uUYl{E_VNbT7qgslDgq*)CkGn3@8soB@(->`agZHW|)jG!jT))8R1^NPuf* zw)EMa0VD!Qpx$y2bMQ05Uo|AaHGgU)fussQ*UKVua`yx#2}B3raP+Z3i)%6L(Fg<; ztY!qlTK3seowj?5YXm4BZW08c1b;YAmVM4eY{0~Pi~!a|{nX%84gpJE&8pAi$@Q}R zI)6W`5jfYkUd$~?u%6UDQA5J)W}!WG)=ew*nx9y7zUpTebM1m mXeq#8Y*7&joXTL5cl_HkHYPB zz`OO<4*kClcpcLAKih$D^lI84&a*jn2QEJSJUBWNRv`RAvdQ6Nfyn9jwNn5Qz7=!_ ztoWnx*O%2i8{{axzh&35`AZuP3KATPyaG=X3g1jI{*Lx07*qoM6N<$g1Cv$1poj5 literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/up/attack_up_5.png.import b/source/anims/ghost_kid_attack/up/attack_up_5.png.import new file mode 100644 index 00000000..f4ddeb94 --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_5.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1stkr8gpkegm" +path="res://.godot/imported/attack_up_5.png-786889aff6291d69d2412cd2005a8066.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_5.png" +dest_files=["res://.godot/imported/attack_up_5.png-786889aff6291d69d2412cd2005a8066.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/source/anims/ghost_kid_attack/up/attack_up_6.png b/source/anims/ghost_kid_attack/up/attack_up_6.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c167366887d1184f6a8c6b8e65f8bb286b577d GIT binary patch literal 447 zcmV;w0YLtVP)}ocr-W!2Uf$9o;6}|=6%=|VpuPGtmn$Po`#2$u$;*^_3qRspeU9HBFl_z47 zu+9Ljq_{be@q}HyB!_d000Uu7ww7={z?`U^YMhE8AbyI`uiA(GxAXIOJpC-@ zYLVfz{+i(h(v0I6;HGH`HW?g~exIbuPcdr?sE~giYcc$ZF%hVXHYcQ_E$F&#(H$qL p80Jaa+5(x6TOwDMibzX9DCY$7qRkeUDh002ovPDHLkV1l;~%;o?9 literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/up/attack_up_6.png.import b/source/anims/ghost_kid_attack/up/attack_up_6.png.import new file mode 100644 index 00000000..91f91516 --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b22oai45smorg" +path="res://.godot/imported/attack_up_6.png-da669dfd37bea321f1fef73b52fd5c52.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_6.png" +dest_files=["res://.godot/imported/attack_up_6.png-da669dfd37bea321f1fef73b52fd5c52.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/source/anims/ghost_kid_attack/up/attack_up_7.png b/source/anims/ghost_kid_attack/up/attack_up_7.png new file mode 100644 index 0000000000000000000000000000000000000000..0a0e4aa2debebccb41edd10f0d1b7f1168f742bc GIT binary patch literal 454 zcmV;%0XhDOP)L5cl_HkHYPB zz`OO<4*kClcpcLAKih$D^lI84&a*jn2QEJSJUBWNRv`RAvdQ6Nfyn9jwNn5Qz7=!_ ztoWnx*O%2i8{{axzh&35`AZuP3KATPyaG=X3g1jI{*Lx07*qoM6N<$g1Cv$1poj5 literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/up/attack_up_7.png.import b/source/anims/ghost_kid_attack/up/attack_up_7.png.import new file mode 100644 index 00000000..f9345910 --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_7.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://drl01d8melrt7" +path="res://.godot/imported/attack_up_7.png-487dde8b27c4f0ba1659fa44020b4426.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_7.png" +dest_files=["res://.godot/imported/attack_up_7.png-487dde8b27c4f0ba1659fa44020b4426.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/source/anims/ghost_kid_attack/up/attack_up_8.png b/source/anims/ghost_kid_attack/up/attack_up_8.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d2678f227c25e812fea576df16ba120c6a44f7 GIT binary patch literal 444 zcmV;t0Ymb7mGXMR4OIh1rCLe;VrYi&aA6S2)N7iIFa#$UB4uUYl{E_VNbT7qgslDgq*)CkGn3@8soB@(->`agZHW|)jG!jT))8R1^NPuf* zw)EMa0VD!Qpx$y2bMQ05Uo|AaHGgU)fussQ*UKVua`yx#2}B3raP+Z3i)%6L(Fg<; ztY!qlTK3seowj?5YXm4BZW08c1b;YAmVM4eY{0~Pi~!a|{nX%84gpJE&8pAi$@Q}R zI)6W`5jfYkUd$~?u%6UDQA5J)W}!WG)=ew*nx9y7zUpTebM1m mXeq#8Y*7&joXTq5pG0bBN<#>wtUpa6F$Z0emL3E;Jh&bfd^c8@!dT;KvQHyTTy z?WkCpm;@*sZ^2wZz2t5^cl1Az3&`%~a=T{nS3t7>+MLF;skAPw(HcoWxC~k`C8D_) z;|O_@{je?xfc0>lC~;5v*LBbFEgC&g0&XihTDHO^s_u;kOMI_&nY7RTfH6wN8I zHP$}Oq8CWt_knjD#}Gq+7+?2EqWyqrmjDX!teU0?Cn0v^hz-Nwp-`7>4vCrrNQNVI fgcIj5tbZCGEiQ0$9TW{r00000NkvXXu0mjf&!WQo literal 0 HcmV?d00001 diff --git a/source/anims/ghost_kid_attack/up/attack_up_9.png.import b/source/anims/ghost_kid_attack/up/attack_up_9.png.import new file mode 100644 index 00000000..388d04f7 --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_9.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cyn8bd1w745xw" +path="res://.godot/imported/attack_up_9.png-8e3bff3ef3ba7ea171c6c7accce865ea.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_9.png" +dest_files=["res://.godot/imported/attack_up_9.png-8e3bff3ef3ba7ea171c6c7accce865ea.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/source/scenes/player.tscn b/source/scenes/player.tscn index 4082c545..4656b363 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -1,54 +1,102 @@ -[gd_scene load_steps=56 format=3 uid="uid://rgfnpcsvv534"] +[gd_scene load_steps=104 format=3 uid="uid://rgfnpcsvv534"] [ext_resource type="Script" path="res://source/scripts/player.gd" id="1_ws1a7"] +[ext_resource type="Texture2D" uid="uid://balmtbxy73uxl" path="res://source/anims/ghost_kid_attack/down/attack_down_1.PNG" id="2_2aqtn"] [ext_resource type="Texture2D" uid="uid://bqrdval02y5ee" path="res://source/anims/ghost_kid_idle/idle_down_1.png" id="2_3e32p"] [ext_resource type="Texture2D" uid="uid://c3v52b8sjthq2" path="res://source/anims/ghost_kid_walk/walk_down_1.png" id="2_nbe6p"] +[ext_resource type="Texture2D" uid="uid://cv32xw3j2e5ue" path="res://source/anims/ghost_kid_attack/down/attack_down_2.png" id="3_6h27e"] [ext_resource type="Texture2D" uid="uid://bf1iqsldq4n2i" path="res://source/anims/ghost_kid_walk/walk_down_2.png" id="3_r22th"] [ext_resource type="Texture2D" uid="uid://c3vwb77eu5fhn" path="res://source/anims/ghost_kid_idle/idle_down_2.png" id="3_wkeso"] [ext_resource type="Texture2D" uid="uid://4ldego01y0j1" path="res://source/anims/ghost_kid_idle/idle_left_1.png" id="4_2wq3a"] +[ext_resource type="Texture2D" uid="uid://6oq7nygajew3" path="res://source/anims/ghost_kid_attack/down/attack_down_3.png" id="4_7tppm"] [ext_resource type="Texture2D" uid="uid://bivr775fn04c0" path="res://source/anims/ghost_kid_walk/walk_left_1.png" id="4_8mwkj"] +[ext_resource type="Texture2D" uid="uid://db7xb4a3xempt" path="res://source/anims/ghost_kid_attack/down/attack_down_4.png" id="5_3nd8e"] [ext_resource type="Texture2D" uid="uid://ctnncwq1t7o81" path="res://source/anims/ghost_kid_walk/walk_left_2.png" id="5_43rkt"] [ext_resource type="Texture2D" uid="uid://k3fxuipkwp5t" path="res://source/anims/ghost_kid_idle/idle_left_2.png" id="5_bmchk"] [ext_resource type="Texture2D" uid="uid://b678mccqmxdxw" path="res://source/anims/ghost_kid_idle/idle_right_1.png" id="6_gvrum"] [ext_resource type="Texture2D" uid="uid://cki5irxi3hj48" path="res://source/anims/ghost_kid_walk/walk_left_3.png" id="6_kerl3"] +[ext_resource type="Texture2D" uid="uid://dkie5iwmwa71g" path="res://source/anims/ghost_kid_attack/down/attack_down_5.png" id="6_x2q5p"] +[ext_resource type="Texture2D" uid="uid://b3v711e1db3bs" path="res://source/anims/ghost_kid_attack/down/attack_down_6.png" id="7_5ryr0"] [ext_resource type="Texture2D" uid="uid://bwj0rcghjose2" path="res://source/anims/ghost_kid_walk/walk_left_4.png" id="7_d1e7p"] [ext_resource type="Texture2D" uid="uid://bqnj7e4twvsgo" path="res://source/anims/ghost_kid_idle/idle_right_2.png" id="7_dqwhe"] [ext_resource type="Texture2D" uid="uid://b013imtp4cvcv" path="res://source/anims/ghost_kid_walk/walk_right_1.png" id="8_pu6uy"] [ext_resource type="Texture2D" uid="uid://02qkl36wjtwr" path="res://source/anims/ghost_kid_idle/idle_up_1.png" id="8_uyddt"] +[ext_resource type="Texture2D" uid="uid://ccwx0tngwv0k0" path="res://source/anims/ghost_kid_attack/down/attack_down_7.png" id="8_v558q"] [ext_resource type="Texture2D" uid="uid://by31nucpbkt5w" path="res://source/anims/ghost_kid_idle/idle_up_2.png" id="9_0mqgr"] +[ext_resource type="Texture2D" uid="uid://dpq6wa32nn3x8" path="res://source/anims/ghost_kid_attack/down/attack_down_8.png" id="9_rcfm4"] [ext_resource type="Texture2D" uid="uid://2bn3s1exyb7x" path="res://source/anims/ghost_kid_walk/walk_right_2.png" id="9_tms2l"] [ext_resource type="Texture2D" uid="uid://bayr580mhyuwx" path="res://source/anims/ghost_kid_walk/walk_right_3.png" id="10_hbuop"] +[ext_resource type="Texture2D" uid="uid://dqjd42bhophe5" path="res://source/anims/ghost_kid_attack/down/attack_down_9.png" id="10_ohcxy"] [ext_resource type="Texture2D" uid="uid://cipjdt3k1fsm4" path="res://source/anims/ghost_kid_walk/walk_right_4.png" id="11_6joxg"] +[ext_resource type="Texture2D" uid="uid://x6sr4jjxpfc2" path="res://source/anims/ghost_kid_attack/down/attack_down_10.png" id="11_upge3"] +[ext_resource type="Texture2D" uid="uid://ctmca2q3yohbw" path="res://source/anims/ghost_kid_attack/down/attack_down_11.PNG" id="12_0xhk2"] [ext_resource type="Texture2D" uid="uid://dankfq2k2k0n3" path="res://source/anims/ghost_kid_walk/walk_up_1.png" id="12_gv1ak"] +[ext_resource type="Texture2D" uid="uid://chouilgygbua7" path="res://source/anims/ghost_kid_attack/left/attack_left_1.png" id="13_6fd2o"] [ext_resource type="Texture2D" uid="uid://dm4n0w3fb8tsw" path="res://source/anims/ghost_kid_walk/walk_up_2.png" id="13_s1ym5"] +[ext_resource type="Texture2D" uid="uid://djln1im73loc5" path="res://source/anims/ghost_kid_attack/left/attack_left_2.png" id="14_hpmdm"] +[ext_resource type="Texture2D" uid="uid://nbvh7rjo26pi" path="res://source/anims/ghost_kid_attack/left/attack_left_3.png" id="15_r67gg"] +[ext_resource type="Texture2D" uid="uid://karm4nop4wa1" path="res://source/anims/ghost_kid_attack/left/attack_left_4.png" id="16_3gn2t"] +[ext_resource type="Texture2D" uid="uid://d4d0r8rpw5bn" path="res://source/anims/ghost_kid_attack/left/attack_left_5.png" id="17_3vm8x"] +[ext_resource type="Texture2D" uid="uid://bew4bnotcanl0" path="res://source/anims/ghost_kid_attack/left/attack_left_6.png" id="18_gc17c"] +[ext_resource type="Texture2D" uid="uid://qqrmt57adde5" path="res://source/anims/ghost_kid_attack/left/attack_left_7.png" id="19_phea7"] +[ext_resource type="Texture2D" uid="uid://b8n1xcnmavp42" path="res://source/anims/ghost_kid_attack/left/attack_left_8.png" id="20_pq5l1"] +[ext_resource type="Texture2D" uid="uid://tp36uighrsu3" path="res://source/anims/ghost_kid_attack/left/attack_left_9.png" id="21_tfkg7"] +[ext_resource type="Texture2D" uid="uid://cw0y780wqksyn" path="res://source/anims/ghost_kid_attack/left/attack_left_10.png" id="22_diqvq"] [ext_resource type="Texture2D" uid="uid://cxt482dj3g0fc" path="res://source/anims/ghost_monster_walk+idle/float_down_1.PNG" id="22_j1tkh"] +[ext_resource type="Texture2D" uid="uid://bybksk21m5urx" path="res://source/anims/ghost_kid_attack/left/attack_left_11.png" id="23_nmj7d"] [ext_resource type="Texture2D" uid="uid://ctcxuwikon7cy" path="res://source/anims/ghost_monster_walk+idle/float_down_2.PNG" id="23_qei8t"] +[ext_resource type="Texture2D" uid="uid://bomxp8srccfkm" path="res://source/anims/ghost_kid_attack/left/attack_left_12.png" id="24_6j2nb"] [ext_resource type="Texture2D" uid="uid://16cnh38gai3w" path="res://source/anims/ghost_monster_walk+idle/float_down_3.PNG" id="24_unuhm"] [ext_resource type="Texture2D" uid="uid://bh87hucbfvq82" path="res://source/anims/ghost_monster_walk+idle/float_down_4.PNG" id="25_0wy31"] +[ext_resource type="Texture2D" uid="uid://b5bxngy2t835q" path="res://source/anims/ghost_kid_attack/left/attack_left_13.png" id="25_7kwbr"] +[ext_resource type="Texture2D" uid="uid://dmqw3iagrplme" path="res://source/anims/ghost_kid_attack/right/attack_right_1.png" id="26_1dwa7"] [ext_resource type="Texture2D" uid="uid://bnmv2t3kh22vh" path="res://source/anims/ghost_monster_walk+idle/float_left_1.PNG" id="26_nuk37"] +[ext_resource type="Texture2D" uid="uid://c1vyummojmcie" path="res://source/anims/ghost_kid_attack/right/attack_right_2.png" id="27_els6d"] [ext_resource type="Texture2D" uid="uid://l605db384sjc" path="res://source/anims/ghost_monster_walk+idle/float_left_2.png" id="27_u3f4d"] [ext_resource type="Texture2D" uid="uid://edm354l2g766" path="res://source/anims/ghost_monster_walk+idle/float_left_3.PNG" id="28_d1udg"] +[ext_resource type="Texture2D" uid="uid://ba05p04eve4ic" path="res://source/anims/ghost_kid_attack/right/attack_right_3.png" id="28_knewl"] +[ext_resource type="Texture2D" uid="uid://dg04mktbywi34" path="res://source/anims/ghost_kid_attack/right/attack_right_4.png" id="29_5x286"] [ext_resource type="Texture2D" uid="uid://b7xew2vc0fk63" path="res://source/anims/ghost_monster_walk+idle/float_left_4.PNG" id="29_i4guu"] +[ext_resource type="Texture2D" uid="uid://dj7j7aohstasl" path="res://source/anims/ghost_kid_attack/right/attack_right_5.png" id="30_glytj"] [ext_resource type="Texture2D" uid="uid://duhh3p0w3n2us" path="res://source/anims/ghost_monster_walk+idle/float_right_1.PNG" id="30_li174"] +[ext_resource type="Texture2D" uid="uid://l2jsexbc2a5n" path="res://source/anims/ghost_kid_attack/right/attack_right_6.png" id="31_fnmd3"] [ext_resource type="Texture2D" uid="uid://bqgyxecu8burf" path="res://source/anims/ghost_monster_walk+idle/float_right_2.png" id="31_rxtvl"] [ext_resource type="Texture2D" uid="uid://dckgn3crus6vt" path="res://source/anims/ghost_monster_walk+idle/float_right_3.PNG" id="32_1cs5m"] +[ext_resource type="Texture2D" uid="uid://fmwbq5yadufg" path="res://source/anims/ghost_kid_attack/right/attack_right_7.png" id="32_4wtkj"] [ext_resource type="Texture2D" uid="uid://di8sx2worp3pl" path="res://source/anims/ghost_monster_walk+idle/float_right_4.PNG" id="33_5ofd6"] +[ext_resource type="Texture2D" uid="uid://ckfr260lsg0q1" path="res://source/anims/ghost_kid_attack/right/attack_right_8.png" id="33_dqrjp"] +[ext_resource type="Texture2D" uid="uid://c5a4xoe5gatms" path="res://source/anims/ghost_kid_attack/right/attack_right_9.png" id="34_cain8"] [ext_resource type="Texture2D" uid="uid://d2t58n0qvanfr" path="res://source/anims/ghost_monster_walk+idle/float_up_1.PNG" id="34_op8n7"] [ext_resource type="Texture2D" uid="uid://70xla3ginu86" path="res://source/anims/ghost_monster_walk+idle/float_up_2.PNG" id="35_d1kxc"] +[ext_resource type="Texture2D" uid="uid://dhdtvedx7g4yl" path="res://source/anims/ghost_kid_attack/right/attack_right_10.png" id="35_yi65t"] +[ext_resource type="Texture2D" uid="uid://cb367xtd41t0x" path="res://source/anims/ghost_kid_attack/right/attack_right_11.png" id="36_8qc0e"] [ext_resource type="Texture2D" uid="uid://cvxeuqlint1b8" path="res://source/anims/ghost_monster_walk+idle/float_up_3.PNG" id="36_m37rc"] [ext_resource type="Texture2D" uid="uid://c14jjha6du28t" path="res://source/anims/ghost_monster_walk+idle/float_up_4.PNG" id="37_62mol"] +[ext_resource type="Texture2D" uid="uid://dvq5vx2wfnyey" path="res://source/anims/ghost_kid_attack/right/attack_right_12.png" id="37_yvfr7"] +[ext_resource type="Texture2D" uid="uid://d0by8r81gp11o" path="res://source/anims/ghost_kid_attack/right/attack_right_13.png" id="38_bxq05"] [ext_resource type="Texture2D" uid="uid://d316efmvuas7u" path="res://source/anims/pumpkin_kid_idle/IMG_4654.PNG" id="38_pfkgl"] [ext_resource type="Texture2D" uid="uid://cjcfxp6u0po3i" path="res://source/anims/pumpkin_kid_idle/IMG_4655.PNG" id="39_4mq0d"] +[ext_resource type="Texture2D" uid="uid://1kai83ehmp5u" path="res://source/anims/ghost_kid_attack/up/attack_up_1.PNG" id="39_864as"] +[ext_resource type="Texture2D" uid="uid://boary72h8x27b" path="res://source/anims/ghost_kid_attack/up/attack_up_2.png" id="40_a4ae1"] [ext_resource type="Texture2D" uid="uid://cnvhhsvu13aws" path="res://source/anims/pumpkin_kid_idle/IMG_4656.PNG" id="40_dhmis"] [ext_resource type="Texture2D" uid="uid://clhia0q8hyhqo" path="res://source/anims/pumpkin_kid_idle/IMG_4657.PNG" id="41_aehjy"] +[ext_resource type="Texture2D" uid="uid://dyuiu62ot5e2w" path="res://source/anims/ghost_kid_attack/up/attack_up_3.png" id="41_ptrv2"] [ext_resource type="Texture2D" uid="uid://dg3d8utyfj30x" path="res://source/anims/pumpkin_kid_idle/IMG_4658.PNG" id="42_r2hxm"] +[ext_resource type="Texture2D" uid="uid://dxid3at5wa0yw" path="res://source/anims/ghost_kid_attack/up/attack_up_4.png" id="42_vtjqe"] [ext_resource type="Texture2D" uid="uid://ba4gck47lgab2" path="res://source/anims/pumpkin_kid_idle/IMG_4659.PNG" id="43_4vste"] +[ext_resource type="Texture2D" uid="uid://c1stkr8gpkegm" path="res://source/anims/ghost_kid_attack/up/attack_up_5.png" id="43_dgt30"] [ext_resource type="Texture2D" uid="uid://lwolivqyk7po" path="res://source/anims/pumpkin_kid_idle/IMG_4660.PNG" id="44_eohrl"] +[ext_resource type="Texture2D" uid="uid://b22oai45smorg" path="res://source/anims/ghost_kid_attack/up/attack_up_6.png" id="44_oq8pu"] +[ext_resource type="Texture2D" uid="uid://drl01d8melrt7" path="res://source/anims/ghost_kid_attack/up/attack_up_7.png" id="45_3dr6p"] [ext_resource type="Texture2D" uid="uid://cuwo0yh8l0tot" path="res://source/anims/pumpkin_kid_idle/IMG_4661.PNG" id="45_pbfcj"] [ext_resource type="Texture2D" uid="uid://us4hj7kyd5py" path="res://source/anims/pumpkin_kid_walk/down1.png" id="46_j5o2x"] +[ext_resource type="Texture2D" uid="uid://bmuiy7ys4ofv4" path="res://source/anims/ghost_kid_attack/up/attack_up_8.png" id="46_s2pml"] +[ext_resource type="Texture2D" uid="uid://cyn8bd1w745xw" path="res://source/anims/ghost_kid_attack/up/attack_up_9.png" id="47_3ahm2"] [ext_resource type="Texture2D" uid="uid://dg4nh3x3yoy30" path="res://source/anims/pumpkin_kid_walk/down2.png" id="47_48yp3"] +[ext_resource type="Texture2D" uid="uid://d3o2y6njuirjm" path="res://source/anims/ghost_kid_attack/up/attack_up_10.png" id="48_e87vb"] [ext_resource type="Texture2D" uid="uid://oojl4yno5cwh" path="res://source/anims/pumpkin_kid_walk/left1.png" id="48_k30tv"] [ext_resource type="Texture2D" uid="uid://dbp2j7m6xqfp" path="res://source/anims/pumpkin_kid_walk/left2.png" id="49_5debl"] +[ext_resource type="Texture2D" uid="uid://2cybua77fk3k" path="res://source/anims/ghost_kid_attack/up/attack_up_11.PNG" id="49_k5hgi"] [ext_resource type="Texture2D" uid="uid://66ch50cs5ixo" path="res://source/anims/pumpkin_kid_walk/right1.png" id="50_j3sls"] [ext_resource type="Texture2D" uid="uid://b30mv2tm73bmh" path="res://source/anims/pumpkin_kid_walk/right2.png" id="51_k13c4"] [ext_resource type="Texture2D" uid="uid://bk4ai1rlykip1" path="res://source/anims/pumpkin_kid_walk/up1.PNG" id="52_7geue"] @@ -58,6 +106,230 @@ animations = [{ "frames": [{ "duration": 1.0, +"texture": ExtResource("2_2aqtn") +}, { +"duration": 1.0, +"texture": ExtResource("3_6h27e") +}, { +"duration": 1.0, +"texture": ExtResource("4_7tppm") +}, { +"duration": 1.0, +"texture": ExtResource("5_3nd8e") +}, { +"duration": 1.0, +"texture": ExtResource("6_x2q5p") +}, { +"duration": 1.0, +"texture": ExtResource("7_5ryr0") +}, { +"duration": 1.0, +"texture": ExtResource("8_v558q") +}, { +"duration": 1.0, +"texture": ExtResource("8_v558q") +}, { +"duration": 1.0, +"texture": ExtResource("8_v558q") +}, { +"duration": 1.0, +"texture": ExtResource("8_v558q") +}, { +"duration": 1.0, +"texture": ExtResource("8_v558q") +}, { +"duration": 1.0, +"texture": ExtResource("8_v558q") +}, { +"duration": 1.0, +"texture": ExtResource("9_rcfm4") +}, { +"duration": 1.0, +"texture": ExtResource("10_ohcxy") +}, { +"duration": 1.0, +"texture": ExtResource("11_upge3") +}, { +"duration": 1.0, +"texture": ExtResource("12_0xhk2") +}], +"loop": true, +"name": &"ghost_kid_attack_down", +"speed": 30.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("13_6fd2o") +}, { +"duration": 1.0, +"texture": ExtResource("14_hpmdm") +}, { +"duration": 1.0, +"texture": ExtResource("15_r67gg") +}, { +"duration": 1.0, +"texture": ExtResource("16_3gn2t") +}, { +"duration": 1.0, +"texture": ExtResource("17_3vm8x") +}, { +"duration": 1.0, +"texture": ExtResource("18_gc17c") +}, { +"duration": 1.0, +"texture": ExtResource("19_phea7") +}, { +"duration": 1.0, +"texture": ExtResource("19_phea7") +}, { +"duration": 1.0, +"texture": ExtResource("19_phea7") +}, { +"duration": 1.0, +"texture": ExtResource("19_phea7") +}, { +"duration": 1.0, +"texture": ExtResource("19_phea7") +}, { +"duration": 1.0, +"texture": ExtResource("19_phea7") +}, { +"duration": 1.0, +"texture": ExtResource("20_pq5l1") +}, { +"duration": 1.0, +"texture": ExtResource("21_tfkg7") +}, { +"duration": 1.0, +"texture": ExtResource("22_diqvq") +}, { +"duration": 1.0, +"texture": ExtResource("23_nmj7d") +}, { +"duration": 1.0, +"texture": ExtResource("24_6j2nb") +}, { +"duration": 1.0, +"texture": ExtResource("25_7kwbr") +}], +"loop": true, +"name": &"ghost_kid_attack_left", +"speed": 30.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("26_1dwa7") +}, { +"duration": 1.0, +"texture": ExtResource("27_els6d") +}, { +"duration": 1.0, +"texture": ExtResource("28_knewl") +}, { +"duration": 1.0, +"texture": ExtResource("29_5x286") +}, { +"duration": 1.0, +"texture": ExtResource("30_glytj") +}, { +"duration": 1.0, +"texture": ExtResource("31_fnmd3") +}, { +"duration": 1.0, +"texture": ExtResource("32_4wtkj") +}, { +"duration": 1.0, +"texture": ExtResource("32_4wtkj") +}, { +"duration": 1.0, +"texture": ExtResource("32_4wtkj") +}, { +"duration": 1.0, +"texture": ExtResource("32_4wtkj") +}, { +"duration": 1.0, +"texture": ExtResource("32_4wtkj") +}, { +"duration": 1.0, +"texture": ExtResource("32_4wtkj") +}, { +"duration": 1.0, +"texture": ExtResource("33_dqrjp") +}, { +"duration": 1.0, +"texture": ExtResource("34_cain8") +}, { +"duration": 1.0, +"texture": ExtResource("35_yi65t") +}, { +"duration": 1.0, +"texture": ExtResource("36_8qc0e") +}, { +"duration": 1.0, +"texture": ExtResource("37_yvfr7") +}, { +"duration": 1.0, +"texture": ExtResource("38_bxq05") +}], +"loop": true, +"name": &"ghost_kid_attack_right", +"speed": 30.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("39_864as") +}, { +"duration": 1.0, +"texture": ExtResource("40_a4ae1") +}, { +"duration": 1.0, +"texture": ExtResource("41_ptrv2") +}, { +"duration": 1.0, +"texture": ExtResource("42_vtjqe") +}, { +"duration": 1.0, +"texture": ExtResource("43_dgt30") +}, { +"duration": 1.0, +"texture": ExtResource("44_oq8pu") +}, { +"duration": 1.0, +"texture": ExtResource("45_3dr6p") +}, { +"duration": 1.0, +"texture": ExtResource("45_3dr6p") +}, { +"duration": 1.0, +"texture": ExtResource("45_3dr6p") +}, { +"duration": 1.0, +"texture": ExtResource("45_3dr6p") +}, { +"duration": 1.0, +"texture": ExtResource("45_3dr6p") +}, { +"duration": 1.0, +"texture": ExtResource("45_3dr6p") +}, { +"duration": 1.0, +"texture": ExtResource("46_s2pml") +}, { +"duration": 1.0, +"texture": ExtResource("47_3ahm2") +}, { +"duration": 1.0, +"texture": ExtResource("48_e87vb") +}, { +"duration": 1.0, +"texture": ExtResource("49_k5hgi") +}], +"loop": true, +"name": &"ghost_kid_attack_up", +"speed": 30.0 +}, { +"frames": [{ +"duration": 1.0, "texture": ExtResource("2_3e32p") }, { "duration": 1.0, @@ -390,7 +662,9 @@ script = ExtResource("1_ws1a7") [node name="Body" type="AnimatedSprite2D" parent="PlayerSprite"] sprite_frames = SubResource("SpriteFrames_1n7tg") -animation = &"pumpkin_kid_walk_up" +animation = &"ghost_kid_attack_right" +frame = 5 +frame_progress = 0.392947 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CapsuleShape2D_1d7hi") From f9f3371ca18d7d0363ca53c75b80dbd796491eeb Mon Sep 17 00:00:00 2001 From: kedrickfudala Date: Fri, 15 Nov 2024 19:26:40 -0500 Subject: [PATCH 085/110] fixed character select --- source/gui/player_select_toggles.gd | 6 +++--- source/scenes/menus/character_select.gd | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/gui/player_select_toggles.gd b/source/gui/player_select_toggles.gd index 1d9b5d9d..72a621eb 100644 --- a/source/gui/player_select_toggles.gd +++ b/source/gui/player_select_toggles.gd @@ -2,7 +2,7 @@ extends Control class_name PlayerSelectToggles @onready var sprite : Object = $Sprite2D -@onready var value : int = 0 +@onready var value : int = 1 @onready var sprite_textures = [] func _physics_process(delta: float) -> void: @@ -11,10 +11,10 @@ func _physics_process(delta: float) -> void: func _on_left_button_pressed() -> void: value -= 1 - if value < 0: + if value < 1: value = 4 func _on_right_button_pressed() -> void: value += 1 if value > 4: - value = 0 + value = 1 diff --git a/source/scenes/menus/character_select.gd b/source/scenes/menus/character_select.gd index 05291e23..cb1f1ea2 100644 --- a/source/scenes/menus/character_select.gd +++ b/source/scenes/menus/character_select.gd @@ -61,3 +61,4 @@ func add_player(): func remove_player(): player_insts[player_count].queue_free() player_insts.remove_at(player_count) + player_classes[player_count] = 0 From ff9ce33c0d70cc3638a0981f345e546a088a162b Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:26:46 -0500 Subject: [PATCH 086/110] test player attack --- source/scripts/player.gd | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 4c2c613c..8515962f 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -21,13 +21,13 @@ enum Character { GHOST, PUMPKIN } -var character = Character.PUMPKIN +var character = Character.WITCH #Enemy attack instances -#const Projectile_Scene := preload("res://source/scenes/projectile.tscn") -#const Frank_Attack_Scene := preload("res://source/scenes/frankenstein_attack.tscn") -#const Pumpkin_Attack_Scene := preload("res://source/scenes/pumpkin_attack.tscn") -#const Ghost_Attack_Scene := preload("res://source/scenes/ghost_attack.tscn") +const Projectile_Scene := preload("res://source/scenes/projectile.tscn") +const Frank_Attack_Scene := preload("res://source/scenes/frankenstein_attack.tscn") +const Pumpkin_Attack_Scene := preload("res://source/scenes/pumpkin_attack.tscn") +const Ghost_Attack_Scene := preload("res://source/scenes/ghost_attack.tscn") var health :int = 0 @@ -71,17 +71,13 @@ func handle_attack(): #Right now, just enables, hitbox for 0.5 seconds match character: #THIS NEEDS TO BE UPDATED AFTER ATTACK SCENES MADE Character.WITCH: - pass - #add_attack_instance_as_child(Projectile_Scene) + add_attack_instance_as_child(Projectile_Scene) Character.FRANKENSTEIN: - pass - #add_attack_instance_as_child(Frank_Attack_Scene) + add_attack_instance_as_child(Frank_Attack_Scene) Character.GHOST: - pass - #add_attack_instance_as_child(Ghost_Attack_Scene) + add_attack_instance_as_child(Ghost_Attack_Scene) Character.PUMPKIN: - pass - #add_attack_instance_as_child(Pumpkin_Attack_Scene) + add_attack_instance_as_child(Pumpkin_Attack_Scene) _: print("ERROR: Player not assigned character") From f2c233c705d05cc9c0f39125ea82e21af411cd06 Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:37:24 -0500 Subject: [PATCH 087/110] thinking before testing --- source/scenes/projectile.tscn | 4 ++- source/scripts/projectile.gd | 56 +++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 source/scripts/projectile.gd diff --git a/source/scenes/projectile.tscn b/source/scenes/projectile.tscn index 4e14fe67..7f4f01ab 100644 --- a/source/scenes/projectile.tscn +++ b/source/scenes/projectile.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=4 format=3 uid="uid://ctpkxi0s1em0j"] +[gd_scene load_steps=5 format=3 uid="uid://ctpkxi0s1em0j"] [ext_resource type="Script" path="res://source/scripts/Hitbox.gd" id="1_2d1wf"] +[ext_resource type="Script" path="res://source/scripts/projectile.gd" id="1_run20"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_kly78"] radius = 46.0 @@ -11,6 +12,7 @@ radius = 44.0 height = 148.0 [node name="Projectile" type="Node2D"] +script = ExtResource("1_run20") [node name="Sprite2D" type="Sprite2D" parent="."] diff --git a/source/scripts/projectile.gd b/source/scripts/projectile.gd new file mode 100644 index 00000000..41b98159 --- /dev/null +++ b/source/scripts/projectile.gd @@ -0,0 +1,56 @@ +class_name Projectile +extends Node2D + +@export var speed := 1000.0 #speed of projectile +@export var lifetime := 1.0 #seconds +@onready var timer := $lifespan_timer #timer for projectile lifespan +@onready var hitbox := $PlayerHitbox #universal hitbox +@onready var impact_detector := $ImpactDetector # detects collision for proj. + +@export var deathParticle : PackedScene + +#direction of projectile +var direction := Vector2.ZERO +var damage = 0; +var attackingPlayer + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + set_as_top_level(true) + look_at(position + direction) + #start timer for projectiles lifetime + timer.connect("timeout",self.queue_free) + timer.start(lifetime) + #destory projectile if hits a hurtbox + impact_detector.connect("body_entered",self.destroy_projectile) + + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _physics_process(delta: float) -> void: + position += direction*speed*delta #moves the projectile forward + +func destroy_projectile(_body: Node) -> void: + #explode_with_particles() + queue_free() + +func get_damage() -> int: + return damage; + +func set_damage( newDamage : int) -> void: + damage = newDamage; + +func set_speed( newSpeed : float ) -> void: + speed = newSpeed; + +func set_attackingPlayer(player: CharacterBody2D) -> void: + attackingPlayer = player +func get_attackingPlayer() -> CharacterBody2D: + return attackingPlayer + +func explode_with_particles() -> void: + var particle = deathParticle.instance() + particle.position = global_position + particle.rotation = global_rotation + particle.emitting = true + get_tree().current_scene.add_child(particle); From 38c44956602313a4b927223d1ef793454defc705 Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:48:24 -0500 Subject: [PATCH 088/110] empty --- .DS_Store | Bin 0 -> 8196 bytes source/.DS_Store | Bin 0 -> 8196 bytes source/Items_Final/.DS_Store | Bin 0 -> 6148 bytes source/scenes/projectile.tscn | 14 ++++++++++---- 4 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 .DS_Store create mode 100644 source/.DS_Store create mode 100644 source/Items_Final/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9fef35e2c7374ab8d5ba894359d447d1ee06d453 GIT binary patch literal 8196 zcmeHM!EVz)5S?ucbrh9Gl%jG#vc$E7q(V@{C4>}F1Ohb`Jpc-J99lzaM|RSHs!F-T zFTgKw=12G!xWJp;O=WMA9ub1wYIp4QyxEyIYdhl-k*E)XD$yDdIp{1)MGR9KU*|s2 z=Jd=8qyV1i16`+x+8EObZ98EZunbrRECZGS%fR2j0N&Z$oEh(Zb=8iR0n5OD$pAke zTy&N-Ek{bqM+XL30zfWcS~eV`4v-jE%bJ!WB_$L#RrMe=ROk{zC^)XWtPWYza-^h! zlTdIHdS#(26d_j!&XwvUYD(JCGGG~)WPoe;6;$k8v-`RF-NVdHDpLi$Pw%O}-HqFR zH}-+xo9rHX`Il@s;!g+-^5_tKpE^{h0lmTB9v$E;qQ?}|kRDP`T1zmO8uq>#_EvND z#&({<)&mNOEwEoxEQzazr4lS1!mF`Q+rV`&GYkLGz^}mX4&v$pcR<_n3kR?3;VZ{% zFMb$S9C+OZ3lY{$>4^68@z3oW`pc$1a3Q?z!A3GQ8(%WnSb|;x&A0Hd4Zq8XKc)cP z%p>!jMHXm>wvgQhJ%KD^#USsg`4LH!9V2x4LorWZgZkRyH@+-CLDACnp7G_1cZQJFR!! z!zkte(1d=M(vmtq9Y5hH7t~QRiMnybTa+=&`UdLJGrh@L^avYfYU0IDAU-+AjKQbZ)FSQc^-N$Z{M~mgA78|1iX{3suI{v>Yjk88rJL NK+<3b%fKIH;5Yj8P_qC4 literal 0 HcmV?d00001 diff --git a/source/.DS_Store b/source/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4aa255637f148931c0e6d14c277527ff503375e8 GIT binary patch literal 8196 zcmeI1&u-H|5XNWQ&^ii8Ie=6SNGoxT!07>sxR|sc^@N;3g2jH(Qrr!*}0~vSk8H;J+lG-wzU1Yvi=H zYF-^MCIx`D&}|CZ$OBA_bQ(FWt(s7r(`FCCg$kEq2pf)ZsokNG)7q*HCt<@$xGM{n zp$Kzz#7W~$BC^Vs2{3_m0y=l^&?!|kri(`Yo}cFGEX`F45B*TRKz;Pf6tp%*rSo#) zqJE^4JS(d({3&*JTetT1gCOVxALGwz9#=^3gwK}C zc5v_E%R{8`RoE;$Utd2$uTp>gtbDfxPXj;$ zj>Po&`)?qyVFK4cVAr1WKhGj!W#hw0~;prPYL`6x7$70 literal 0 HcmV?d00001 diff --git a/source/Items_Final/.DS_Store b/source/Items_Final/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..08dc376a09e7b055cd66239d3e507fb2262327c3 GIT binary patch literal 6148 zcmeHKO>fgc5S>j^uvI`gfCLAmmAFRW^Z>26m{1PA)(8%OLfk}P;d&$6A%`fE@9ss41-BkB-Q0B3B4XntWl&c0zSpVIXiOCunr>7};(t_t*X|A-QjK*xq2=`}>6q8@FgM3(Zc^0oNAd#x_`({Zzi`u8 zHSyfDbdqOP9YyD=wbkCfaWe>lo!~?A+02r9SWm0|uzbh8*T&@OWjsvZWaHVObN8hw z>S0!lOH0T`W0bsqn-wE7>zipYsw_8g13?&ugU*Bbd^hTKb#M3CqO0eUfS@OJXLFu%wJ8kau0k zQ`9aCxyqYZ9xuuoPd!}Yp(`c|hytR(RTc1CUa)gjqST85qQJFRfcFOtXN)~I4(--~ z#$Ew{ZKSOs=HEo-XpgbS#vw*v%29!is{9p0IXd#%*To(ihmKClUp|z7vhp_+WuK1u zwJj$VJCs%w5Cv8h*mB(tpZ~9ZfB#=4Nlz3I1+J9>s(p|g^zlmmY~6S{K5I4nBb<%v n8izkA2<%aeT0V;J!>u8&IRM5U8;8ii Date: Fri, 15 Nov 2024 19:52:52 -0500 Subject: [PATCH 089/110] character select background --- assets/backgrounds/Character_Selection.png | Bin 0 -> 9856 bytes .../Character_Selection.png.import | 34 ++++++++++++++++++ source/gui/player_select_toggles.gd | 6 +++- source/scenes/menus/character_select.tscn | 8 ++++- 4 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 assets/backgrounds/Character_Selection.png create mode 100644 assets/backgrounds/Character_Selection.png.import diff --git a/assets/backgrounds/Character_Selection.png b/assets/backgrounds/Character_Selection.png new file mode 100644 index 0000000000000000000000000000000000000000..2528498b52e10b11638ccd9c55a1f99c6085986e GIT binary patch literal 9856 zcmW++c{J4D`@geb?2}!#QA83-_H9rhYa#oV`jBkdm%-RWQYo}pN@d^4HZpc1Yltj^ zESWH4o3a0VfA4ed`?-JJbI*D1d0wyA^SlyFjC7b8&N2W1nDun8-#Lxg|1AXV>Ay|g zsrNKMeDCOJfzp2dzW|_s-gQm0Ap5n<;P?C;{#~>G!hSs4P2+kvRO*?)iD>7AKw?_> zpC#)Vz{&LVzgn(-O%UM2pqY&3sm@Q>7aY6VQgS@_`4NKZfgOAl)%Lu*uI zLk9%+aD~CsWseHWlw-c0JqU!NM?)({*7jY(pM2vr z>hd4^`WV;IW%QX7>-gaFLPugi;6X!1I9iuBN+W=53dI|`m)&aAoa2Nx1Ab|8{pd1> zd2oY)bF^L7s;FsCDxGfnFCzgzs4zRyz<qQO5>_qHw8 z(8zcisl1-b!s8CfxHY$D^@SnQMm)oqGeaZ|c0sfuF<1hr2qD?CXFJs1 z*HjdS;Mqqs30w>>IW^9=H8EK?nc9*VqagT%dqTGf&t@U z7N`JFCRZ@O|663E%GwZ0H>@%e7?rR=d&6Hc+XL+_k=bN>b} zcveIe`#^%X(6eHtgnz~YPVB{A>WKI;y1yDOW~n-szPlHl`W+SoA>3zk5c5&yFyeY8 zqK0NA`rc69-}ps40Gld~_aNdjcbf9O4Skm8>5$(ALa0MiStfSLdC@hJB)S&L4+% zOcP_+1o1{eDntIvqOd4Vs4Pc5FqkmNK6e~y6{OFS19cQTyf~`OwU!dVb)h^5*3!e5 zfwY9=v~L*C=kYHI@F8p|sRx(!a*QzML5*Bz5Y1U=8m!I9t0yNqOPlO*k^I0MQ`Tyl zTc~5=G#GrE-TLTUZz^6;-$C~3(3Xyry1io(9Rd7G@S^-(2fG)! zXN_?hHI=A`&6v6asyd@95rVU9-imgpdseph-pR5)#=IM0p;ehdfW5UC;y!hIw3>RUpgrFcK&i@G0xFJ?Htzjzsh9fEqVv~{iMzW z@N_p}ZJ^yLTESQbtPw^4@CE*hc5w*naediN@sIA(!D-CQt3>96K&9_`i8W;EY%&A+ z`{|6N7gz>-E#C&Vg6h7JETq(1juAW|d$FLE+XK(eHYRLztRC5Vdj>0Oni=CEgs{<_ zUSkbvg@-RFyk3u0ro#&pS{K4sWsqXgS-9<@k9sjEu9fHXvmOe3Jwgd7*?%CI#^Xa& zOoOkmEpN1W-i`Jvf-`pM-X*4I)F&8!sLa8mSfC2M76)db-wnn&KJDaVdhQbR2UH1l zsO#xW4K=0K8c^iJzt|d~Fc}E+aK2~bq>5_qa+GDU^M}r7RWlKll)efFReyt<)S9QC?_)hOLqDM2(^S z)C$a$Lap7mp(61-HtRg@w)FJ%7%wjy_xHY6=Uuddq){s<-CAlZOto(AcUD>q*~k~+ zH=#bZNCCQ-!*GnvrEMd?5Cq`w=RYL{qb72fALWah&{A^2rJ# zc0yaw(+Sh1AH&Ph6ZfsfmguDH`^d{ z%rqzY_4dQ7N37YGEiNDV`3g#Iq_kGxqM^WZj~_dp-XF7>2%`mzOZ_ps{TCE>T5Fx! zDvAh?80|R$hx^&c+I?C_aUGT-^^h%dYfYh07Z}FpwtO|~m}_lzz#4NWW#f1^o!(y& zE&--Pk5Q`*VK>g#B}7oPjekP}H%cO$Cb+0K*aWfG-q1)@po#qL%k)P}{xQDenS~Z85v7Jyv%mL}TB5Xjr;Q zmX3VR27W!~gCo$liAeXEDr0`dMLtz|+0aYpatE&nBD;QBq%mGf{Mz>7W7TDDR4O1u zen0=1dTXoW@kL3(ECN4S^Js3fS6V^635u;~mM-J@UZ`D;k}RWUnTXonxz}_#tSw%O z>$jBE4oz?HR)qat?E9w&i)Ej5DroR)&xE{wvOu??&U`GvY_q0QfyfBEhk|{?WM1HS zC{(8A@*SXAOt$T2ZPexAIwc+ge-`sO?%nF+sz_Ox>m4)8P`+jd;Rt68A$0 zijv}A#cfN^&Q6R3-QSfR4vlG=#SqX9+`*F#CzM?K#>p&2bn7*-Ez?JLyDDBCBD9aU zd+u<4gIchdSlpIYb}MOTK+y5C*rY*v-n$u5a)sx(J5eQQXuoRN0r92}@)L>gU@gY+ zeh&%M_L|TlC(vlR{uWP_uOXcQ$w%X!%8msACxyM2PZ+_u18{56!+#sj4+;%X2J4JT zGLDRR7s0>?op4HI<|I3htBT0C2x?ZZ0Hm(^&ILoa0!e+$x!}qsL!0rxy?;ONH#&JT zH<@z{vA`Z{@Y9oSgAS^{wm|vEa@rMBwa$U@e=+Y$Etz;2kTG`6`^FaJ0;m=i~zfsQq+$=v2@pnGwA({W}SffKBn z6c6m%M>S*|M#%gZuqIvhQd`KbKq@fYbI8zpdN<6=hWpEfk+|$ITH{Qb08_j@q?})R zo!$>=5`+Y{JNU9x76?C3Rn#PKgGNTV+(**ztv`dM&W>7`0Pf)Iufvh;DT_bH#>;Fz zuH9X};>Fr>llHLWcu`R5YEHyd|GKi;x7$($d_kt)o==kCzyxD|&C}p2?zD38LDl&EVr~*Gl;J}jGl4jsB{_Ne%Hmi zwlk@Ua&6c>!iOwO>`!Pz!pgQ76|$^DUm!KS$9yuTsLyDiP|*A{8Nqal;0s1Q0Ojhg z0?%N&cP^;y@_x|rA_EbJMie3;6);@7Dkd9SQ$GhW-N*-EKrzS?CQRw zC3yEv8!Ei3we|T)3JV(D`s|Y_l^cI3(GpR-(e@t5U zfu2(Xzz3Kk-UE}^uA>24$<(}Oc_%iOZibK35En&|3C25z=<!~7ro0n%hS;?(U=n-PU%HS2ECr!{@o%@#j5R&uJ8#q=Q+qwrqb8-sfaZxZCN~^w| z+y<}w_>j|L?ipU2f~WqyDhd41X2F{@k$4LyQSzDHuP4+?Fu+fH?{GXA@{cbV%H{wD zP3$CJ;wfP#H+t#o6J~eXMsFS!HizQx9Yx`(CZuP>=e_q^_XdY&AVsso%k0WUqjpS{ zv?}0zakjF)Jvb378iwRB7#$R~79l@DffwU|10CQNBH94FG!Og_J=@B&6r{|39wq#` z*EHf}uLbop?LXd~XkY2_e+O?~yaPlh&7le;BJy>FOF`0UskU^>>v6Jv=xfHWacn#9o8m7V&2q2h9id??bYE6 z^yAfzwe7LBH*&ckn+in7kDIEwa*T+_##p{9B0MM=V%G*#s5#%$$Ee`_3*xhsnzelk zE6FBUl=sAVmI4l|d|r1w8|3UZ+yq(4AuvFx(0?}7-n9k?$6;=5{Lb8`@AgUB04)?H zFh8Q{Hm2bL2;-Z3^}!Il43swNh6XJ(JY_5;&G^P2FfMgDnv~C>@X8~M5#jZ(AvX1S zx*WZN`V}VW>8XZI4wXPo+Kyo@GRMkTuNt*d6!ck<9CZ#M5zxrBMY&rH59m4QZ zY=0I)vLJn7uEmv=gXU8Ea*)9cU%u2?ZX^fy5^M=^$-&Szzz|?Q`zV0y&uetluCrd%a!^~# zr*1WG$Sm)#mG&H`wa@-14^ZTjup`7F@pUXxvg}GsUbDu@@BCjkkp^Bk5eQ&A*`4=5 zO7=x71n|c(roCqv`f!`95k6DfJP3eFQ8eC%Emdi7)Z>VGcF1|D$&aP2+T_Z1hlBZn z3#Iq7L;xT;2N`a=Cph!D>aLh6y`}Uxdl+`b;>+gb(Dm%SCF97W7j&@z0g<$e&vpCkW@ReJ#vBvLda;ik%pm)1MP z;h;PM0<@gqTP_34ldpr{vHhw4seZ`YQK4V(wiD&BLQ@czV{|A}yLjrEItNYSCiqg8G1z z>3`n)U~lgfrM3};bcA{5wm*(zxX}k}C{2{3`&I6S(8cb>;ZXals`ws>;_>kD zZ)6TLj{oREtM-ETMss%!R0!k#lNXfH<%HNn27|G!|MXmW`#BAT5hX)B1{|+j9zFUK z63`5u1X#MF5lA43(2OXCt9ze}Yy=|)TZy}+?7(F2Pl=D{sDRfGw(LUg@;@N(NQz10 zNS7D0O>QTjlY8=ePsYUM$a4H590kmfF}vO3*I}_-z*}X2=DjMQ!^TJUYwpQc(Tih` zU0H1@<@Hy`q)B3KN1Z>KUS!>DVX9G$n59T6ot{1(_PGdT?X6KzuL9f0UD4c7U5vX1 zn_T=ecuVZ-cZ3?xM}j^d6N`!C4*Vfph0%LRfoCly?$D69J{f*NLAq)TTlTIPqK;cP z1M%@Xvg&xHf<=GVnE3}+rkqk^hba~iUMB=L=VsAxg9Jd<1iV`)iXf?BEVzDOD<3x$HkdeU4< zCWKY(EA#F(TMwtPQ!%EA@cZoEfV-ER>=T(Qp_uqX-`+^RPf{8?6MY~FwpltIjrs+Yy{GGi;RwLB2^TvD513zY_FsYcAsrE}Bq&~E zDujIBI9sVdWzjMM{*i)}yIB}jDdA&&Szx|law&@oF zB&K}!rx=M}`p&6@4!X}27uSUe2JX?V;Mj0Xs5@2R>bE^odb>*#W%)X`UFeBJBW!If zHVXmaVreDE;EfKqRui2p;{AP|sYZH%QniQ=G{Bq$(;3Y>`TVa=5KoUS4QoV+De!6S zDSdSp$Ly@Er0q#*zc89y5k%{l z;FrP!rHbRPvdYwcmHg`hGdIqG0b-2Kg$`UbI}lOj4n8>+v<#S>g74}cN{5q8@BPl( zI7oyxU!j@P7(rExRmR_4FJOqkl($4savG(ZNy#anQTr%vdu` zpATMHh|NrPsHOP-r_coPil?7J4TaG>vZj?M%l3CA)- zT7c`JWSJZq$G=LO6KK1Ou8jEpsgCCi;D!=}+T(j7`j)%Z`Elq6x(K>x?P)c-eaY$L zKdX(v>wYdbzO@Y!0*yJnndgx>ZgqX+!Ja+!t}s3<&2S+8hTKv+KLzRuV$K#f8{VhW zBnYWDpMzk(q*K~vaN?gB@WgjQoXdjiGw!z0CXqX9uN#usY4+YnL72?%$*i<@xnV@3 z&$8t6eup7|RCwjbly-+Z1zE=GHU|V+sFuuL=iOXuV~l`?CK{~7Me45-o$i$j9M=S& zwY7XlYJ6msH-Y9?h}Q(F%G=N{go$fd!33ZmUxCrf{XM~yW&Nb=n&0HhCYQ* zx-P5Mmb=`k6avUuEQ*cxp8R;PSLSvmOz}iZR(_KHp;)m^m;x{=yA)sYV>7*TQpkZ$ zWjBM}OP|Y3Ya~(-|3;&R^ajl)L?pUak9Nxf*!iE z5fcD?nWj)<^_^$H(J=KmOevF2NOs^62a5lS8jUAn@v4_5@)gLRKRH_M9;9!#sFMLvyR&gD$`wT!i$kaxfU)hgicgHF|Lm{kn{}^KD(tJ?!yJH*y zTVf4W-Y1|_Z2ji*R?sUM&$aa>_~BAg;Ts+E1p+L9I~%T()D?A-N~JclgP-!X`;{>k z{-KTMMAXNO-qBH)PJ1Fs3bQ_2&ZLP%nn^`>jj2CS8Zqg9 z|9-N(&F=@}e`&z;{A^XM#{#pN*;s2()~MQlDYrI0hi?QV99W;nCWtT?M{R|fV2;(G z=&%`5TMfN1=%O$`s7KdEoWXXURr)?L;}q6>PN0jK35wT+rtSbC73nLvDV-7F_l}5T zL8T#p1?`{w-dv@o1v8nRbPI)oi>uFm^{Co=*P)-@!<4S=-Ou(&b@{j7J)@%6VQAst zx!mZ>Ue)-gR>H#9mRRqTue~}CsK*ja(zvX;tYLcK&L|v|+tHUNhzpNR(@~M}dmR>x zwUPQN)cS%{)^sfO2W?P?d5>rf#-c`l0&+@`!|YmhoMH%*O(ifcsn-d@UxWYDGjp+$4%*rxX%>}IS0MTS zR(u9N|HJDtU{f$FPh*ZgM(2Xq8YGh+jQ*r(`Mzx@pO)p!OoQ}A;O$U$Iv*lr3iS7~ zwcZv+D1!L&|GmsN8XX%Qh<$Oz_XdaOvI3^R4v*7+@_R7!xdH*0@LiiEfSB)nVwGmV zn*%M3%^q*~dPTf<$ao_33ctM$5#r`P!*1A``l})O$2%(;8Y}0oV8yoCG;ht(o2|J@ z+lV>6|LSaJ_CGl5PO?ozokfFFwf#D;IA*2u7?Ypy|BWsPwspaKkQqBuA<5%-DYBqU zR=>EXWMoGU)UAaatr@Wi@a^rTZo1qoU%3mPqZk24UCW@){w2z>5VqvW@mM-(zoNBI zFnA^v4mQ{!*xARY4B&Ai1JL5MYW{)Dn)KfU0U)T}$V>;2Vr`0@U4@m?TCI~-8sf~6 zhfu;#D^3vYn4 zE$8u>A9Y!fz^9Nc`?q7bz!`z|tT5OPN?_h@{a7KG5%^!U2Mb;sn~KIwTc?S9KBvr` zU7KrNvCgAPUI31E8uq8?;JR~dox+IkV<4`LqzNvM|F+?ZA<#4Les}0G>)rNUY<=p> z)${IJbMPnVss%sRRgsp?dO3<4c=J5b%Q@{XvKk?&9!X+$M(7vi4G-)+k&cb3LMF=` ze)OnVVExO94*xd#yov4e%Qqo~bS53k%Pw?LT-ZB{auP3e%_Kq3MG1enV=#)LCRtWM z2a+C6GFb7fo#_f>`{>hPdnUDio)g;W%m(T*YZp7-5!96_DYMRO-4HafOG_9m1M7XU z8sJT4tSZrN|L}N=HkBc2Au;C-%qLMU6G*C+K^jz{CX1->3wTsZCYYP|Mf)A(qo0!` z6n}nU2iG8fXt5INJ3}l{c%`aaY}_%gq_~NPcOZZj7wDB5aA7b-ZXmLF~8dbQt1jI4ggw?|9JsMqQ^v?_C}zC z9CU=f3cEoipSyPi9RnZ1xjL6e&%o6=|1I95mgK@ZjQRdzCCsskK&$-9?uFNN)Q5D0 zC7VA<=K|H0Xkit%b;ZChDNVHCT&Dby&Go}4uM-;HK)YEvltK6Eo)S?N&$+W#UOcov zIa3?Zqf%gF{Xpurt>cVojxE{%Zs%|6YYhl(`1-udSQq=C-yb4X;WZScj+wCM(%Fyq0!()Ohoc$ZZ!d_@r{E<4u2> zpXMtLdtI6<0?!$}M&=<)+}6u1x`#V9i^F|cPYwlC;e<82O^fUQ64`mG2SOo8Xmn_T zhnM_A2wJ?fa0Lo zYVM`F*^W)<69HSXbBa^i)dI?2Xb638`JZ$;fXLHX8;QsqPQ4>*w$ynD8$>#g+oUUv zf-vSxXCX!Qom3N-O?(-_>;EswMh&zjrivQ;bHvOv&dw0mstmldT@aHA{CBuG+Rom((MytPENv8#cBn|KfjC8|WeVB+}opE91r2xllz*VYsS5PYj} z&LiT5y24YJ$G0XQy&4JCa7ug9<$Lek$gh4i)%`{OG>daDnPCLVXg`xr>`Z0C?acO* z>zrJi2BEqNs^SH4EW!w0p>EJ2Uds6kypP|0Ybe@6OuI5XfeRP$*n>*~v4RG(m z44FmNaB5THxH=0V8SUV&1S9E5#+NYK%QNHr!sv>h3Ws)f?xdaV5m*K;LmQMV0w~Qf0Eb@(7{eD`&o)*j>vtfZ@Gy1_y zl3Oulj$?>*82A$i*IMqMD~CnJ)5KueTB=1(y%Ciml|gLw{*=N|;=OND^xO9eJQMB} zY6bt*R>r{v#3qy&IccL#6A*>`#0;v#-#6*s3{t*5x^K?73ya}{+qRoc*IS_OL_*ch zN;jSFmv-@gzbhyZ=Xhv1$HVfH9-?^I7FAUV!C3kE=GEWgUcl%*j+C#eZM3wvZO+sW zgtoCFJWZ&E$GE6DZZs#Y08ayP?;v;SmIG5095N%itpcgWO&Sct@&?{Wd4DRfdAh~1 z;Q!dZNyffCupvWP<|-t%KkBG+&j39KkNNGdjledgM_+^zeO z5=!wobEFmNabe-|7l~{VpE^!UbG)Y?*1mz_OSe@xdj^DHYOI zrb2;MnF^G3`9h&(j1ccVNn+WP{H`UZn6ETn;u(^kwiB<%neym%hNRX%?-A@`MVj); zubllgebW8Pi6%{2@dm(3IV{ib9fc}$|FBAaS}!oUZ?U S!=|bK3wk$#M*SZn)hu}c literal 0 HcmV?d00001 diff --git a/assets/backgrounds/Character_Selection.png.import b/assets/backgrounds/Character_Selection.png.import new file mode 100644 index 00000000..3247d1ff --- /dev/null +++ b/assets/backgrounds/Character_Selection.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c44cemfbuaipe" +path="res://.godot/imported/Character_Selection.png-684af16c22119085af579684ddf35e83.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/backgrounds/Character_Selection.png" +dest_files=["res://.godot/imported/Character_Selection.png-684af16c22119085af579684ddf35e83.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/source/gui/player_select_toggles.gd b/source/gui/player_select_toggles.gd index 72a621eb..12a7041e 100644 --- a/source/gui/player_select_toggles.gd +++ b/source/gui/player_select_toggles.gd @@ -3,7 +3,11 @@ class_name PlayerSelectToggles @onready var sprite : Object = $Sprite2D @onready var value : int = 1 -@onready var sprite_textures = [] +@onready var pumpkin_texture = null +@onready var frankenstein_texture = null +@onready var witch_texture = null +@onready var ghost_texture = null +@onready var sprite_textures = [pumpkin_texture, frankenstein_texture, witch_texture, ghost_texture] func _physics_process(delta: float) -> void: #sprite.texture = sprite_textures[value] diff --git a/source/scenes/menus/character_select.tscn b/source/scenes/menus/character_select.tscn index 23dcdd46..1183cd74 100644 --- a/source/scenes/menus/character_select.tscn +++ b/source/scenes/menus/character_select.tscn @@ -1,10 +1,16 @@ -[gd_scene load_steps=2 format=3 uid="uid://dmg3rcypapom8"] +[gd_scene load_steps=3 format=3 uid="uid://dmg3rcypapom8"] [ext_resource type="Script" path="res://source/scenes/menus/character_select.gd" id="1_f0ogi"] +[ext_resource type="Texture2D" uid="uid://c44cemfbuaipe" path="res://assets/backgrounds/Character_Selection.png" id="2_u755h"] [node name="CharacterSelect" type="Node2D"] script = ExtResource("1_f0ogi") +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(255, 161) +scale = Vector2(4.03125, 2.5625) +texture = ExtResource("2_u755h") + [node name="HBoxContainer" type="HBoxContainer" parent="."] anchors_preset = 8 anchor_left = 0.5 From 16f231011d82e66bc71f33cd85a5fd07ae3b47e5 Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:53:53 -0500 Subject: [PATCH 090/110] get rid of useless method --- source/scripts/projectile.gd | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/source/scripts/projectile.gd b/source/scripts/projectile.gd index 41b98159..30a268ce 100644 --- a/source/scripts/projectile.gd +++ b/source/scripts/projectile.gd @@ -45,12 +45,7 @@ func set_speed( newSpeed : float ) -> void: func set_attackingPlayer(player: CharacterBody2D) -> void: attackingPlayer = player + func get_attackingPlayer() -> CharacterBody2D: return attackingPlayer -func explode_with_particles() -> void: - var particle = deathParticle.instance() - particle.position = global_position - particle.rotation = global_rotation - particle.emitting = true - get_tree().current_scene.add_child(particle); From 95e341f8be7296f66d236f5b942e28b87200fcb7 Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:57:03 -0500 Subject: [PATCH 091/110] please dont break, changed code: --- source/scripts/player.gd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 8515962f..dc160537 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -91,10 +91,10 @@ func shoot_projectile(projectile: PackedScene) -> void: # set the projectile instance at players locatio proj_instance.position = self.global_position # set direction of projectile towards mouse - proj_instance.direction = global_position.direction_to(get_global_mouse_position()) + proj_instance.direction = movement # assign damage from players stats to projectiles damage #UPDATE - #proj_instance.set_damage(stats.attackDamage) + proj_instance.set_damage(0.0) # attach attacking player to projectile proj_instance.set_attackingPlayer(self) #spawn projectile From 24ae5a3dc018927f282fa8bd8f1de1e481be445f Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 20:03:12 -0500 Subject: [PATCH 092/110] removed useless function --- source/scripts/player.gd | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index dc160537..0b5f89ef 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -47,6 +47,7 @@ func _ready() -> void: func _process(delta) -> void: handle_move() + handle_attack() func handle_move() -> void: var player_num = str(get_meta("player_num")) @@ -86,19 +87,6 @@ func handle_damage(attackingPlayer: CharacterBody2D) -> void: #UPDATE #Health -= attackingPlayer.get_damage() -func shoot_projectile(projectile: PackedScene) -> void: - var proj_instance := projectile.instantiate() - # set the projectile instance at players locatio - proj_instance.position = self.global_position - # set direction of projectile towards mouse - proj_instance.direction = movement - # assign damage from players stats to projectiles damage - #UPDATE - proj_instance.set_damage(0.0) - # attach attacking player to projectile - proj_instance.set_attackingPlayer(self) - #spawn projectile - add_child(proj_instance) func add_attack_instance_as_child(attack_scene: PackedScene) -> void: var attack_instance := attack_scene.instantiate() From 285bc6ddae2411912bf6a55102988cd45b8a032c Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 20:29:37 -0500 Subject: [PATCH 093/110] hasseb controls implemented --- project.godot | 16 ++++++++++++++++ source/scenes/input_controls.tscn | 6 +++++- source/scenes/projectile.tscn | 2 +- source/scripts/player.gd | 7 ++++--- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/project.godot b/project.godot index 34b65f5d..3d18717e 100644 --- a/project.godot +++ b/project.godot @@ -117,3 +117,19 @@ esc={ , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] } +Attack1={ +"deadzone": 0.5, +"events": [] +} +Attack2={ +"deadzone": 0.5, +"events": [] +} +Attack3={ +"deadzone": 0.5, +"events": [] +} +Attack4={ +"deadzone": 0.5, +"events": [] +} diff --git a/source/scenes/input_controls.tscn b/source/scenes/input_controls.tscn index c490aa60..a64372af 100644 --- a/source/scenes/input_controls.tscn +++ b/source/scenes/input_controls.tscn @@ -4,7 +4,7 @@ [ext_resource type="PackedScene" uid="uid://caum2ucqak0ro" path="res://source/scenes/input_button.tscn" id="1_ygp52"] [node name="Input Controls" type="Control"] -custom_minimum_size = Vector2(0, 256) +custom_minimum_size = Vector2(0, 300) layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -57,4 +57,8 @@ metadata/input_name = "Down" layout_mode = 2 metadata/input_name = "Right" +[node name="Input Button5" parent="VBoxContainer" instance=ExtResource("1_ygp52")] +layout_mode = 2 +metadata/input_name = "Attack" + [connection signal="pressed" from="VBoxContainer/HBoxContainer/Button" to="." method="_on_button_pressed"] diff --git a/source/scenes/projectile.tscn b/source/scenes/projectile.tscn index 4ffb3638..2de80c38 100644 --- a/source/scenes/projectile.tscn +++ b/source/scenes/projectile.tscn @@ -33,4 +33,4 @@ position = Vector2(38, 0) rotation = 1.5708 shape = SubResource("CapsuleShape2D_h5cjd") -[node name="Timer" type="Timer" parent="."] +[node name="lifespan_timer" type="Timer" parent="."] diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 0b5f89ef..a85fa987 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -2,6 +2,7 @@ extends CharacterBody2D class_name Player +var player_num var Speed := 0.0 var movement := Vector2.ZERO @@ -43,14 +44,14 @@ var onGetHitFunctions : Array[Callable]#When this one is called. should also cal #@onready var statusEffects : StatusEffectManager = $StatusEffectManager func _ready() -> void: + player_num = str(get_meta("player_num")) pass func _process(delta) -> void: handle_move() - handle_attack() + if Input.is_action_just_pressed("Attack" + player_num): handle_attack() func handle_move() -> void: - var player_num = str(get_meta("player_num")) movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() if movement.length() : @@ -91,7 +92,7 @@ func handle_damage(attackingPlayer: CharacterBody2D) -> void: func add_attack_instance_as_child(attack_scene: PackedScene) -> void: var attack_instance := attack_scene.instantiate() attack_instance.position = self.global_position - attack_instance.direction = global_position.direction_to(get_global_mouse_position()) + attack_instance.direction = movement #wsdaglobal_position.direction_to(get_global_mouse_position()) #UPDATE #attack_instance.set_damage(stats.attackDamage) attack_instance.set_attackingPlayer(self) From d58e9eb2365cfdaab978f94dad6748e2d24833e4 Mon Sep 17 00:00:00 2001 From: Kuthan Kukrer Date: Fri, 15 Nov 2024 20:36:44 -0500 Subject: [PATCH 094/110] some changes to player scripts to add extra movement animations. --- source/scenes/Frankenstein.tscn | 9 +++++ source/scenes/Ghost.tscn | 8 +++- source/scenes/Pumpkin.tscn | 6 +++ source/scenes/witch.tscn | 6 +++ .../Characters/Frankenstein/frankenstein.gd | 40 ++++++++++++++----- .../Frankenstein/frankenstein_stats.tres | 17 ++++++++ source/scripts/Characters/Ghost/Ghost.gd | 38 ++++++++++++++---- source/scripts/Characters/Pumpkin/Pumpkin.gd | 38 ++++++++++++++---- source/scripts/Characters/witch/witch.gd | 38 ++++++++++++++---- source/scripts/player.gd | 15 ++++++- 10 files changed, 180 insertions(+), 35 deletions(-) create mode 100644 source/scripts/Characters/Frankenstein/frankenstein_stats.tres diff --git a/source/scenes/Frankenstein.tscn b/source/scenes/Frankenstein.tscn index efcc6bc8..f39c8c50 100644 --- a/source/scenes/Frankenstein.tscn +++ b/source/scenes/Frankenstein.tscn @@ -11,6 +11,9 @@ [node name="Frankenstein" type="CharacterBody2D" parent="."] script = ExtResource("1_yofpo") +base_attackDamage = 10.0 +base_maxHealth = 50.0 +base_speed = 10.0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Frankenstein"] shape = SubResource("CapsuleShape2D_cjxe8") @@ -38,3 +41,9 @@ script = ExtResource("2_nu6ev") [node name="DashAnimation" type="AnimatedSprite2D" parent="Frankenstein"] [node name="AnimationPlayer" type="AnimationPlayer" parent="Frankenstein"] + +[node name="WalkRightAnimation" type="AnimatedSprite2D" parent="Frankenstein"] + +[node name="WalkUpAnimation" type="AnimatedSprite2D" parent="Frankenstein"] + +[node name="WalkDownAnimation" type="AnimatedSprite2D" parent="Frankenstein"] diff --git a/source/scenes/Ghost.tscn b/source/scenes/Ghost.tscn index 548da66f..7e999169 100644 --- a/source/scenes/Ghost.tscn +++ b/source/scenes/Ghost.tscn @@ -31,10 +31,16 @@ script = ExtResource("2_es7fm") [node name="AttackAnimation" type="AnimatedSprite2D" parent="Ghost"] -[node name="RunAnimation" type="AnimatedSprite2D" parent="Ghost"] +[node name="WalkLeftAnimation" type="AnimatedSprite2D" parent="Ghost"] [node name="IdleAnimation" type="AnimatedSprite2D" parent="Ghost"] [node name="DashAnimation" type="AnimatedSprite2D" parent="Ghost"] [node name="AnimationPlayer" type="AnimationPlayer" parent="Ghost"] + +[node name="WalkRightAnimation" type="AnimatedSprite2D" parent="Ghost"] + +[node name="WalkUpAnimation" type="AnimatedSprite2D" parent="Ghost"] + +[node name="WalkDownAnimation" type="AnimatedSprite2D" parent="Ghost"] diff --git a/source/scenes/Pumpkin.tscn b/source/scenes/Pumpkin.tscn index ebb6e75f..089452b3 100644 --- a/source/scenes/Pumpkin.tscn +++ b/source/scenes/Pumpkin.tscn @@ -38,3 +38,9 @@ script = ExtResource("2_06xgp") [node name="DashAnimation" type="AnimatedSprite2D" parent="Pumpkin"] [node name="AnimationPlayer" type="AnimationPlayer" parent="Pumpkin"] + +[node name="WalkRightAnimation" type="AnimatedSprite2D" parent="Pumpkin"] + +[node name="WalkUpAnimation" type="AnimatedSprite2D" parent="Pumpkin"] + +[node name="WalkDownAnimation" type="AnimatedSprite2D" parent="Pumpkin"] diff --git a/source/scenes/witch.tscn b/source/scenes/witch.tscn index 4ee5c597..9647d0e0 100644 --- a/source/scenes/witch.tscn +++ b/source/scenes/witch.tscn @@ -38,3 +38,9 @@ script = ExtResource("2_g1yy8") [node name="DashAnimation" type="AnimatedSprite2D" parent="Witch"] [node name="AnimationPlayer" type="AnimationPlayer" parent="Witch"] + +[node name="WalkRightAnimation" type="AnimatedSprite2D" parent="Witch"] + +[node name="WalkUpAnimation" type="AnimatedSprite2D" parent="Witch"] + +[node name="WalkDownAnimation" type="AnimatedSprite2D" parent="Witch"] diff --git a/source/scripts/Characters/Frankenstein/frankenstein.gd b/source/scripts/Characters/Frankenstein/frankenstein.gd index 523659e6..8da77788 100644 --- a/source/scripts/Characters/Frankenstein/frankenstein.gd +++ b/source/scripts/Characters/Frankenstein/frankenstein.gd @@ -1,12 +1,15 @@ extends Player -class_name Frankeinstein +class_name Frankenstein var sprite #preload() @onready var hit_animation = $HitAnimation @onready var death_animation = $DeathAnimation @onready var attack_animation = $AttackAnimation -@onready var run_animation = $RunAnimation +@onready var walk_left_animation = $WalkLeftAnimation +@onready var walk_right_animation = $WalkRightAnimation +@onready var walk_up_animation = $WalkUpAnimation +@onready var walk_down_animation = $WalkDownAnimation @onready var idle_animation = $IdleAnimation @onready var dash_animation = $DashAnimation @onready var animator = $AnimationPlayer @@ -30,18 +33,37 @@ func attackAnimation(): func check_moving(): if(dash): dashAnimation() - elif(self.movement != Vector2.ZERO): - runAnimation() + elif (self.movement.x > 0): + walkRightAnimation() + elif (self.movement.x < 0): + walkLeftAnimation() + elif (self.movement.y > 0 and self.movement.x == 0): + walkUpAnimation() + elif (self.movement.y < 0 and self.movement.x == 0): + walkDownAnimation() elif (self.movement == Vector2.ZERO): idleAnimation() -func runAnimation(): - if(animator.current_animation != run_animation): - animator.play(run_animation) +func walkLeftAnimation(): + if(animator.current_animation != walk_left_animation and !animator.is_playing()): + animator.play(walk_left_animation) + +func walkRightAnimation(): + if(animator.current_animation != walk_right_animation and !animator.is_playing()): + animator.play(walk_right_animation) + +func walkUpAnimation(): + if(animator.current_animation != walk_up_animation and !animator.is_playing()): + animator.play(walk_up_animation) + +func walkDownAnimation(): + if(animator.current_animation != walk_down_animation and !animator.is_playing()): + animator.play(walk_down_animation) + func dashAnimation(): - if(animator.current_animation != run_animation): + if(animator.current_animation != dash_animation and !animator.is_playing()): animator.play(dash_animation) func idleAnimation(): - if(animator.current_animation != run_animation): + if(animator.current_animation != idle_animation and !animator.is_playing()): animator.play(idle_animation) diff --git a/source/scripts/Characters/Frankenstein/frankenstein_stats.tres b/source/scripts/Characters/Frankenstein/frankenstein_stats.tres new file mode 100644 index 00000000..6c6a58a3 --- /dev/null +++ b/source/scripts/Characters/Frankenstein/frankenstein_stats.tres @@ -0,0 +1,17 @@ +[gd_resource type="Resource" script_class="Item_Res" load_steps=2 format=3 uid="uid://b3dh2a4h4woge"] + +[ext_resource type="Script" path="res://source/item/item_resource.gd" id="1_dwp48"] + +[resource] +script = ExtResource("1_dwp48") +name = "" +description = "" +rarity = 0 +func_names = Array[String]([]) +health = 0.0 +topSpeed = 0.0 +attackSpeed = 0.0 +attackDamage = 0.0 +dashCooldown = 0.0 +abilityCooldown = 0.0 +cost = 0 diff --git a/source/scripts/Characters/Ghost/Ghost.gd b/source/scripts/Characters/Ghost/Ghost.gd index e301117c..ab7ded9c 100644 --- a/source/scripts/Characters/Ghost/Ghost.gd +++ b/source/scripts/Characters/Ghost/Ghost.gd @@ -6,7 +6,10 @@ var sprite #preload() @onready var hit_animation = $HitAnimation @onready var death_animation = $DeathAnimation @onready var attack_animation = $AttackAnimation -@onready var run_animation = $RunAnimation +@onready var walk_left_animation = $WalkLeftAnimation +@onready var walk_right_animation = $WalkRightAnimation +@onready var walk_up_animation = $WalkUpAnimation +@onready var walk_down_animation = $WalkDownAnimation @onready var idle_animation = $IdleAnimation @onready var dash_animation = $DashAnimation @onready var animator = $AnimationPlayer @@ -30,18 +33,37 @@ func attackAnimation(): func check_moving(): if(dash): dashAnimation() - elif(self.movement != Vector2.ZERO): - runAnimation() + elif (self.movement.x > 0): + walkRightAnimation() + elif (self.movement.x < 0): + walkLeftAnimation() + elif (self.movement.y > 0 and self.movement.x == 0): + walkUpAnimation() + elif (self.movement.y < 0 and self.movement.x == 0): + walkDownAnimation() elif (self.movement == Vector2.ZERO): idleAnimation() -func runAnimation(): - if(animator.current_animation != run_animation): - animator.play(run_animation) +func walkLeftAnimation(): + if(animator.current_animation != walk_left_animation and !animator.is_playing()): + animator.play(walk_left_animation) + +func walkRightAnimation(): + if(animator.current_animation != walk_right_animation and !animator.is_playing()): + animator.play(walk_right_animation) + +func walkUpAnimation(): + if(animator.current_animation != walk_up_animation and !animator.is_playing()): + animator.play(walk_up_animation) + +func walkDownAnimation(): + if(animator.current_animation != walk_down_animation and !animator.is_playing()): + animator.play(walk_down_animation) + func dashAnimation(): - if(animator.current_animation != run_animation): + if(animator.current_animation != dash_animation and !animator.is_playing()): animator.play(dash_animation) func idleAnimation(): - if(animator.current_animation != run_animation): + if(animator.current_animation != idle_animation and !animator.is_playing()): animator.play(idle_animation) diff --git a/source/scripts/Characters/Pumpkin/Pumpkin.gd b/source/scripts/Characters/Pumpkin/Pumpkin.gd index c561de55..6666b39d 100644 --- a/source/scripts/Characters/Pumpkin/Pumpkin.gd +++ b/source/scripts/Characters/Pumpkin/Pumpkin.gd @@ -6,7 +6,10 @@ var sprite #preload() @onready var hit_animation = $HitAnimation @onready var death_animation = $DeathAnimation @onready var attack_animation = $AttackAnimation -@onready var run_animation = $RunAnimation +@onready var walk_left_animation = $WalkLeftAnimation +@onready var walk_right_animation = $WalkRightAnimation +@onready var walk_up_animation = $WalkUpAnimation +@onready var walk_down_animation = $WalkDownAnimation @onready var idle_animation = $IdleAnimation @onready var dash_animation = $DashAnimation @onready var animator = $AnimationPlayer @@ -30,18 +33,37 @@ func attackAnimation(): func check_moving(): if(dash): dashAnimation() - elif(self.movement != Vector2.ZERO): - runAnimation() + elif (self.movement.x > 0): + walkRightAnimation() + elif (self.movement.x < 0): + walkLeftAnimation() + elif (self.movement.y > 0 and self.movement.x == 0): + walkUpAnimation() + elif (self.movement.y < 0 and self.movement.x == 0): + walkDownAnimation() elif (self.movement == Vector2.ZERO): idleAnimation() -func runAnimation(): - if(animator.current_animation != run_animation): - animator.play(run_animation) +func walkLeftAnimation(): + if(animator.current_animation != walk_left_animation and !animator.is_playing()): + animator.play(walk_left_animation) + +func walkRightAnimation(): + if(animator.current_animation != walk_right_animation and !animator.is_playing()): + animator.play(walk_right_animation) + +func walkUpAnimation(): + if(animator.current_animation != walk_up_animation and !animator.is_playing()): + animator.play(walk_up_animation) + +func walkDownAnimation(): + if(animator.current_animation != walk_down_animation and !animator.is_playing()): + animator.play(walk_down_animation) + func dashAnimation(): - if(animator.current_animation != run_animation): + if(animator.current_animation != dash_animation and !animator.is_playing()): animator.play(dash_animation) func idleAnimation(): - if(animator.current_animation != run_animation): + if(animator.current_animation != idle_animation and !animator.is_playing()): animator.play(idle_animation) diff --git a/source/scripts/Characters/witch/witch.gd b/source/scripts/Characters/witch/witch.gd index 5b530143..d56d8a6c 100644 --- a/source/scripts/Characters/witch/witch.gd +++ b/source/scripts/Characters/witch/witch.gd @@ -6,7 +6,10 @@ var sprite #preload() @onready var hit_animation = $HitAnimation @onready var death_animation = $DeathAnimation @onready var attack_animation = $AttackAnimation -@onready var run_animation = $RunAnimation +@onready var walk_left_animation = $WalkLeftAnimation +@onready var walk_right_animation = $WalkRightAnimation +@onready var walk_up_animation = $WalkUpAnimation +@onready var walk_down_animation = $WalkDownAnimation @onready var idle_animation = $IdleAnimation @onready var dash_animation = $DashAnimation @onready var animator = $AnimationPlayer @@ -30,18 +33,37 @@ func attackAnimation(): func check_moving(): if(dash): dashAnimation() - elif(self.movement != Vector2.ZERO): - runAnimation() + elif (self.movement.x > 0): + walkRightAnimation() + elif (self.movement.x < 0): + walkLeftAnimation() + elif (self.movement.y > 0 and self.movement.x == 0): + walkUpAnimation() + elif (self.movement.y < 0 and self.movement.x == 0): + walkDownAnimation() elif (self.movement == Vector2.ZERO): idleAnimation() -func runAnimation(): - if(animator.current_animation != run_animation): - animator.play(run_animation) +func walkLeftAnimation(): + if(animator.current_animation != walk_left_animation and !animator.is_playing()): + animator.play(walk_left_animation) + +func walkRightAnimation(): + if(animator.current_animation != walk_right_animation and !animator.is_playing()): + animator.play(walk_right_animation) + +func walkUpAnimation(): + if(animator.current_animation != walk_up_animation and !animator.is_playing()): + animator.play(walk_up_animation) + +func walkDownAnimation(): + if(animator.current_animation != walk_down_animation and !animator.is_playing()): + animator.play(walk_down_animation) + func dashAnimation(): - if(animator.current_animation != run_animation): + if(animator.current_animation != dash_animation and !animator.is_playing()): animator.play(dash_animation) func idleAnimation(): - if(animator.current_animation != run_animation): + if(animator.current_animation != idle_animation and !animator.is_playing()): animator.play(idle_animation) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 21deb115..89839b03 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -9,7 +9,20 @@ var TOP_SPEED_FACTOR := 15.0 var ACCELERATION := 15.0 var DECELERATION := 15.0 var dash: bool - +@export var base_attackDamage: float +@export var base_attackSpeed: float +@export var base_maxHealth : float +@export var base_speed : float +@export var base_cooldownReduction : float +@export var base_tenacity : float +@export var base_luck : float +var item_attackDamage: float +var item_attackSpeed: float +var item_maxHealth : float +var item_speed : float +var item_cooldownReduction : float +var item_tenacity : float +var item_luck : float #These are placeholder sprites for each character var sprite_list: Array = [preload("res://source/Items_Final/Item_Resources/BakingSoda.tres"), preload("res://source/Items_Final/Item_Resources/BaseballBat.tres"), preload("res://source/Items_Final/Item_Resources/BaseballCap.tres"), preload("res://source/Items_Final/Item_Resources/BoxingGloves.tres")] From 8773726f9c90e2af0507d933f9a62983b0329791 Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 20:57:34 -0500 Subject: [PATCH 095/110] fixed vector issue --- source/scenes/ghost_attack.tscn | 4 +++- source/scenes/pumpkin_attack.tscn | 4 +++- source/scripts/player.gd | 7 +++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/source/scenes/ghost_attack.tscn b/source/scenes/ghost_attack.tscn index 801dd41e..8bb71d94 100644 --- a/source/scenes/ghost_attack.tscn +++ b/source/scenes/ghost_attack.tscn @@ -1,11 +1,13 @@ -[gd_scene load_steps=3 format=3 uid="uid://bps2krit10aa"] +[gd_scene load_steps=4 format=3 uid="uid://bps2krit10aa"] [ext_resource type="Script" path="res://source/scripts/Hitbox.gd" id="1_6hfiu"] +[ext_resource type="Script" path="res://source/scripts/ghost_attack.gd" id="1_bmlm1"] [sub_resource type="CircleShape2D" id="CircleShape2D_7bw4k"] radius = 73.171 [node name="ghost_attack" type="Node2D"] +script = ExtResource("1_bmlm1") [node name="PlayerHitbox" type="Area2D" parent="."] script = ExtResource("1_6hfiu") diff --git a/source/scenes/pumpkin_attack.tscn b/source/scenes/pumpkin_attack.tscn index 929895f7..b5b44c65 100644 --- a/source/scenes/pumpkin_attack.tscn +++ b/source/scenes/pumpkin_attack.tscn @@ -1,5 +1,6 @@ -[gd_scene load_steps=3 format=3 uid="uid://c0gynvjp0ikqw"] +[gd_scene load_steps=4 format=3 uid="uid://c0gynvjp0ikqw"] +[ext_resource type="Script" path="res://source/scripts/pumpkin_attack.gd" id="1_6rkj1"] [ext_resource type="Script" path="res://source/scripts/Hitbox.gd" id="1_gy47r"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_nhxfr"] @@ -7,6 +8,7 @@ radius = 14.0 height = 376.0 [node name="pumpkin_attack" type="Node2D"] +script = ExtResource("1_6rkj1") [node name="PlayerHitbox" type="Area2D" parent="."] script = ExtResource("1_gy47r") diff --git a/source/scripts/player.gd b/source/scripts/player.gd index a85fa987..83f26264 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -5,6 +5,7 @@ class_name Player var player_num var Speed := 0.0 var movement := Vector2.ZERO +var last_movement := Vector2(0,1) const TOP_SPEED_FACTOR := 15.0 const ACCELERATION := 15.0 @@ -22,7 +23,7 @@ enum Character { GHOST, PUMPKIN } -var character = Character.WITCH +var character = Character.PUMPKIN #Enemy attack instances const Projectile_Scene := preload("res://source/scenes/projectile.tscn") @@ -50,6 +51,8 @@ func _ready() -> void: func _process(delta) -> void: handle_move() if Input.is_action_just_pressed("Attack" + player_num): handle_attack() + if(movement != Vector2.ZERO): + last_movement = movement func handle_move() -> void: movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() @@ -92,7 +95,7 @@ func handle_damage(attackingPlayer: CharacterBody2D) -> void: func add_attack_instance_as_child(attack_scene: PackedScene) -> void: var attack_instance := attack_scene.instantiate() attack_instance.position = self.global_position - attack_instance.direction = movement #wsdaglobal_position.direction_to(get_global_mouse_position()) + attack_instance.direction = last_movement #wsdaglobal_position.direction_to(get_global_mouse_position()) #UPDATE #attack_instance.set_damage(stats.attackDamage) attack_instance.set_attackingPlayer(self) From 04ee00919598aa44a60b2cf312ef12a614a5b2ab Mon Sep 17 00:00:00 2001 From: Quintin Levy <159190598+quintinlevy@users.noreply.github.com> Date: Fri, 15 Nov 2024 21:26:26 -0500 Subject: [PATCH 096/110] player attacks implemented --- source/scripts/Hitbox.gd | 2 -- source/scripts/player.gd | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/source/scripts/Hitbox.gd b/source/scripts/Hitbox.gd index ab8a78bd..cd846e71 100644 --- a/source/scripts/Hitbox.gd +++ b/source/scripts/Hitbox.gd @@ -3,8 +3,6 @@ extends Area2D @onready var collision_shape = $CollisionShape2D func _init() -> void: - #collision_layer = 2 - #collision_mask = 0 pass func _ready() -> void: diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 092ee5fa..62e1bcea 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -23,7 +23,7 @@ enum Character { GHOST, PUMPKIN } -var character = Character.PUMPKIN +var character = Character.WITCH #Enemy attack instances const Projectile_Scene := preload("res://source/scenes/projectile.tscn") From 626c975e65ee34526952da67b198fb6f70dae951 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Fri, 15 Nov 2024 21:32:28 -0500 Subject: [PATCH 097/110] settings menu visual changes --- source/scenes/input_button.tscn | 1 + source/scenes/input_controls.tscn | 8 +++++- source/scenes/player.tscn | 1 + source/scenes/settings.tscn | 41 +++++++++++-------------------- source/scripts/input_controls.gd | 3 +++ source/scripts/settings.gd | 21 +++++++++------- 6 files changed, 39 insertions(+), 36 deletions(-) diff --git a/source/scenes/input_button.tscn b/source/scenes/input_button.tscn index 124bb727..dfbe8d75 100644 --- a/source/scenes/input_button.tscn +++ b/source/scenes/input_button.tscn @@ -25,6 +25,7 @@ text = "Input Name" metadata/action_name = "" [node name="VSeparator" type="VSeparator" parent="HBoxContainer"] +modulate = Color(1, 1, 1, 0) layout_mode = 2 size_flags_horizontal = 3 diff --git a/source/scenes/input_controls.tscn b/source/scenes/input_controls.tscn index c490aa60..cd7fec33 100644 --- a/source/scenes/input_controls.tscn +++ b/source/scenes/input_controls.tscn @@ -4,7 +4,7 @@ [ext_resource type="PackedScene" uid="uid://caum2ucqak0ro" path="res://source/scenes/input_button.tscn" id="1_ygp52"] [node name="Input Controls" type="Control"] -custom_minimum_size = Vector2(0, 256) +custom_minimum_size = Vector2(500, 0) layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -22,6 +22,11 @@ offset_right = 400.0 offset_bottom = 400.0 theme_override_constants/separation = 16 +[node name="Label" type="Label" parent="VBoxContainer"] +layout_mode = 2 +text = "Player" +horizontal_alignment = 1 + [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] custom_minimum_size = Vector2(0, 32) layout_mode = 2 @@ -33,6 +38,7 @@ text = "Input Type" metadata/action_name = "" [node name="VSeparator" type="VSeparator" parent="VBoxContainer/HBoxContainer"] +modulate = Color(1, 1, 1, 0) layout_mode = 2 size_flags_horizontal = 3 diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index 4656b363..b598826c 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -657,6 +657,7 @@ animations = [{ [node name="Player" type="CharacterBody2D"] script = ExtResource("1_ws1a7") +metadata/player_num = "" [node name="PlayerSprite" type="Node2D" parent="."] diff --git a/source/scenes/settings.tscn b/source/scenes/settings.tscn index 7abcad16..fd0ce405 100644 --- a/source/scenes/settings.tscn +++ b/source/scenes/settings.tscn @@ -42,48 +42,37 @@ theme_override_constants/margin_bottom = 20 [node name="ScrollContainer" type="ScrollContainer" parent="TabContainer/Controls/MarginContainer"] layout_mode = 2 -[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Controls/MarginContainer/ScrollContainer"] +[node name="HBoxContainer" type="HBoxContainer" parent="TabContainer/Controls/MarginContainer/ScrollContainer"] layout_mode = 2 -size_flags_horizontal = 3 -theme_override_constants/separation = 16 -[node name="HSeparator" type="HSeparator" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer"] layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/separation = 16 -[node name="Label" type="Label" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] -layout_mode = 2 -text = "Player 1" - -[node name="Input Controls" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] +[node name="Input Controls" parent="TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer/VBoxContainer" instance=ExtResource("1_ovefd")] layout_mode = 2 metadata/player_num = 1 metadata/input_type = "Keyboard" -[node name="Label2" type="Label" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] -layout_mode = 2 -text = "Player 2" - -[node name="Input Controls2" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] +[node name="Input Controls3" parent="TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer/VBoxContainer" instance=ExtResource("1_ovefd")] layout_mode = 2 -metadata/player_num = 2 +metadata/player_num = 3 metadata/input_type = "Keyboard" -metadata/device_id = 1 +metadata/device_id = 2 -[node name="Label3" type="Label" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] +[node name="VBoxContainer2" type="VBoxContainer" parent="TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer"] layout_mode = 2 -text = "Player 3" +size_flags_horizontal = 3 +theme_override_constants/separation = 16 -[node name="Input Controls3" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] +[node name="Input Controls2" parent="TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer/VBoxContainer2" instance=ExtResource("1_ovefd")] layout_mode = 2 -metadata/player_num = 3 +metadata/player_num = 2 metadata/input_type = "Keyboard" -metadata/device_id = 2 - -[node name="Label4" type="Label" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer"] -layout_mode = 2 -text = "Player 4" +metadata/device_id = 1 -[node name="Input Controls4" parent="TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("1_ovefd")] +[node name="Input Controls4" parent="TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer/VBoxContainer2" instance=ExtResource("1_ovefd")] layout_mode = 2 metadata/player_num = 4 metadata/input_type = "Keyboard" diff --git a/source/scripts/input_controls.gd b/source/scripts/input_controls.gd index 33f12e8a..98d87570 100644 --- a/source/scripts/input_controls.gd +++ b/source/scripts/input_controls.gd @@ -1,6 +1,7 @@ extends Control class_name Input_Controls +@onready var label0 = $VBoxContainer/Label @onready var label = $VBoxContainer/HBoxContainer/Label as Label @onready var button = $VBoxContainer/HBoxContainer/Button as Button @@ -8,6 +9,8 @@ class_name Input_Controls @onready var input_type = get_meta("input_type") func _ready() -> void: + label0.text = "Player " + str(player_num) + custom_minimum_size.y = 50*len($VBoxContainer.get_children()) if input_type == "Keyboard": set_meta("device_id", -1) func _process(delta) -> void: diff --git a/source/scripts/settings.gd b/source/scripts/settings.gd index ebdadaaf..569bb2c3 100644 --- a/source/scripts/settings.gd +++ b/source/scripts/settings.gd @@ -1,13 +1,14 @@ extends Control -@onready var vbox = $TabContainer/Controls/MarginContainer/ScrollContainer/VBoxContainer +@onready var hbox = $TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer var deviceIDs = [] var old_joypads = [] func _ready(): - for node in vbox.get_children(): - if node.has_meta("player_num"): deviceIDs.append(node.get_meta("device_id")) + for vbox in hbox.get_children(): + for node in vbox.get_children(): + if node.has_meta("player_num"): deviceIDs.append(node.get_meta("device_id")) for joy in Input.get_connected_joypads(): old_joypads.append(Input.get_joy_guid(joy)) @@ -25,9 +26,10 @@ func _process(delta): if(get_node("..").has_node("ItemSelector")): get_node("../ItemSelector").visible = false - for node in vbox.get_children(): - if node.has_meta("player_num"): - deviceIDs[node.get_meta("player_num") - 1] = node.get_meta("device_id") + for vbox in hbox.get_children(): + for node in vbox.get_children(): + if node.has_meta("player_num"): + deviceIDs[node.get_meta("player_num") - 1] = node.get_meta("device_id") if deviceIDs.has(4): for i in range(4): @@ -50,6 +52,7 @@ func _process(delta): for joy in Input.get_connected_joypads(): old_joypads.append(Input.get_joy_guid(joy)) - for node in vbox.get_children(): - if node.has_meta("player_num"): - node.set_meta("device_id", deviceIDs[node.get_meta("player_num") - 1]) + for vbox in hbox.get_children(): + for node in vbox.get_children(): + if node.has_meta("player_num"): + node.set_meta("device_id", deviceIDs[node.get_meta("player_num") - 1]) From 62a6b6e94758aa584db3d43e991c7bb400c7e9c0 Mon Sep 17 00:00:00 2001 From: kedrickfudala Date: Fri, 15 Nov 2024 22:19:43 -0500 Subject: [PATCH 098/110] removed temp files --- source/scenes/Ite47CD.tmp | 21 ------------------ source/scenes/IteE421.tmp | 19 ---------------- source/scenes/IteEC4C.tmp | 19 ---------------- source/scenes/dem1D13.tmp | 22 ------------------- source/scenes/demCB7D.tmp | 22 ------------------- .../scenes/game_container/game_container.gd | 12 +++++----- 6 files changed, 6 insertions(+), 109 deletions(-) delete mode 100644 source/scenes/Ite47CD.tmp delete mode 100644 source/scenes/IteE421.tmp delete mode 100644 source/scenes/IteEC4C.tmp delete mode 100644 source/scenes/dem1D13.tmp delete mode 100644 source/scenes/demCB7D.tmp diff --git a/source/scenes/Ite47CD.tmp b/source/scenes/Ite47CD.tmp deleted file mode 100644 index dd3571d5..00000000 --- a/source/scenes/Ite47CD.tmp +++ /dev/null @@ -1,21 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://csmmvcufjnsl2"] - -[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Resource" uid="uid://6ukslotnk4y3" path="res://DmgBuffItem.tres" id="2_blmat"] -[ext_resource type="Resource" uid="uid://dkvnmfbifsaig" path="res://AdditionalShot.tres" id="3_slule"] - -[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] - -[node name="Node2D" type="Node2D"] - -[node name="Player" type="Node2D" parent="."] -script = ExtResource("1_rryau") -items = Array[Resource]([ExtResource("2_blmat"), ExtResource("3_slule")]) - -[node name="Area2D" type="Area2D" parent="Player"] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] -shape = SubResource("CircleShape2D_f54gc") - -[node name="Timer" type="Timer" parent="Player"] -one_shot = true diff --git a/source/scenes/IteE421.tmp b/source/scenes/IteE421.tmp deleted file mode 100644 index 9b5a0f2a..00000000 --- a/source/scenes/IteE421.tmp +++ /dev/null @@ -1,19 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] - -[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] - -[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] - -[node name="Node2D" type="Node2D"] - -[node name="Player" type="Node2D" parent="."] -script = ExtResource("1_rryau") - -[node name="Area2D" type="Area2D" parent="Player"] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] -shape = SubResource("CircleShape2D_f54gc") - -[node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("4_t3y7h") diff --git a/source/scenes/IteEC4C.tmp b/source/scenes/IteEC4C.tmp deleted file mode 100644 index 9b5a0f2a..00000000 --- a/source/scenes/IteEC4C.tmp +++ /dev/null @@ -1,19 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] - -[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Script" path="res://source/scripts/StatusEffectManager.gd" id="4_t3y7h"] - -[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] - -[node name="Node2D" type="Node2D"] - -[node name="Player" type="Node2D" parent="."] -script = ExtResource("1_rryau") - -[node name="Area2D" type="Area2D" parent="Player"] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] -shape = SubResource("CircleShape2D_f54gc") - -[node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("4_t3y7h") diff --git a/source/scenes/dem1D13.tmp b/source/scenes/dem1D13.tmp deleted file mode 100644 index 25fd6ba5..00000000 --- a/source/scenes/dem1D13.tmp +++ /dev/null @@ -1,22 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://diprigu67ubnb"] - -[ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] -[ext_resource type="PackedScene" uid="uid://b5bt1g0wd5co0" path="res://source/scenes/mage.tscn" id="3_h5nu7"] - -[node name="DemoRoom" type="Node2D"] - -[node name="Camera2D" type="Camera2D" parent="."] - -[node name="ColorRect" type="ColorRect" parent="."] -offset_right = 40.0 -offset_bottom = 40.0 -color = Color(1, 0, 1, 1) - -[node name="quit" type="Node2D" parent="."] -script = ExtResource("2_c3313") - -[node name="Mage" parent="." instance=ExtResource("3_h5nu7")] -position = Vector2(-225, 107) - -[node name="Mage2" parent="." instance=ExtResource("3_h5nu7")] -position = Vector2(294, 110) diff --git a/source/scenes/demCB7D.tmp b/source/scenes/demCB7D.tmp deleted file mode 100644 index 25fd6ba5..00000000 --- a/source/scenes/demCB7D.tmp +++ /dev/null @@ -1,22 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://diprigu67ubnb"] - -[ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] -[ext_resource type="PackedScene" uid="uid://b5bt1g0wd5co0" path="res://source/scenes/mage.tscn" id="3_h5nu7"] - -[node name="DemoRoom" type="Node2D"] - -[node name="Camera2D" type="Camera2D" parent="."] - -[node name="ColorRect" type="ColorRect" parent="."] -offset_right = 40.0 -offset_bottom = 40.0 -color = Color(1, 0, 1, 1) - -[node name="quit" type="Node2D" parent="."] -script = ExtResource("2_c3313") - -[node name="Mage" parent="." instance=ExtResource("3_h5nu7")] -position = Vector2(-225, 107) - -[node name="Mage2" parent="." instance=ExtResource("3_h5nu7")] -position = Vector2(294, 110) diff --git a/source/scenes/game_container/game_container.gd b/source/scenes/game_container/game_container.gd index f6e6b222..7f5f3b48 100644 --- a/source/scenes/game_container/game_container.gd +++ b/source/scenes/game_container/game_container.gd @@ -13,25 +13,25 @@ static var GAME_CONTAINER : GameContainer #Scenes @onready var main_menu : PackedScene = preload("res://source/scenes/menus/main_menu.tscn") -@onready var world : PackedScene = preload("res://source/stages/world.tscn") +#@onready var world : PackedScene = preload("res://source/stages/world.tscn") @onready var credits : PackedScene = preload("res://source/scenes/menus/credits.tscn") @onready var instructions : PackedScene = preload("res://source/scenes/menus/instructions.tscn") @onready var character_select : PackedScene = preload("res://source/scenes/menus/character_select.tscn") @onready var pre_game_cut_scene : PackedScene = preload("res://source/scenes/cut_scenes/pre_game_cut_scene.tscn") @onready var shop : PackedScene = preload("res://source/scenes/stages/shop.tscn") @onready var game_over : PackedScene = preload("res://source/scenes/menus/game_over.tscn") -@onready var stage1 : PackedScene = preload("res://source/stages/stage_template.tscn") +#@onready var stage1 : PackedScene = preload("res://source/stages/stage_template.tscn") @onready var scene_dict = { "MainMenu" : main_menu, - "World" : world, + #"World" : world, "Credits" : credits, "Instructions" : instructions, "CharacterSelect" : character_select, "PreGameCutScene" : pre_game_cut_scene, "Shop" : shop, - "GameOver" : game_over, - "Stage1" : stage1 + "GameOver" : game_over + #"Stage1" : stage1 } #Scoring @@ -44,7 +44,7 @@ func _ready(): GAME_CONTAINER = self switch_to_scene("MainMenu") -func _process(_delta): +func _process(_elta): #quit if Q pressed - DEBUG if Input.is_key_pressed(KEY_Q) : get_tree().quit() From 0177f26e6b3be09b02867187b3681beae91a53d9 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Fri, 15 Nov 2024 22:28:46 -0500 Subject: [PATCH 099/110] Update game_container.gd --- source/scenes/game_container/game_container.gd | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/source/scenes/game_container/game_container.gd b/source/scenes/game_container/game_container.gd index 7f5f3b48..fe33b872 100644 --- a/source/scenes/game_container/game_container.gd +++ b/source/scenes/game_container/game_container.gd @@ -13,25 +13,23 @@ static var GAME_CONTAINER : GameContainer #Scenes @onready var main_menu : PackedScene = preload("res://source/scenes/menus/main_menu.tscn") -#@onready var world : PackedScene = preload("res://source/stages/world.tscn") @onready var credits : PackedScene = preload("res://source/scenes/menus/credits.tscn") @onready var instructions : PackedScene = preload("res://source/scenes/menus/instructions.tscn") @onready var character_select : PackedScene = preload("res://source/scenes/menus/character_select.tscn") @onready var pre_game_cut_scene : PackedScene = preload("res://source/scenes/cut_scenes/pre_game_cut_scene.tscn") @onready var shop : PackedScene = preload("res://source/scenes/stages/shop.tscn") @onready var game_over : PackedScene = preload("res://source/scenes/menus/game_over.tscn") -#@onready var stage1 : PackedScene = preload("res://source/stages/stage_template.tscn") +@onready var stage1 : PackedScene = preload("res://source/scenes/stages/stage_template.tscn") @onready var scene_dict = { "MainMenu" : main_menu, - #"World" : world, "Credits" : credits, "Instructions" : instructions, "CharacterSelect" : character_select, "PreGameCutScene" : pre_game_cut_scene, "Shop" : shop, - "GameOver" : game_over - #"Stage1" : stage1 + "GameOver" : game_over, + "Stage1" : stage1 } #Scoring From b919bd1ef75a86fa9e6863540288a7816aff754a Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Fri, 15 Nov 2024 23:13:06 -0500 Subject: [PATCH 100/110] Moved changes from Vincent6 --- project.godot | 2 +- .../Item_Resource_Unused/Plunger.tres | 21 ++ .../Item_Resource_Unused/ToiletPaper.tres | 21 ++ .../Item_Resource_Unused/newItem.tres | 19 ++ .../Item_Resources/BakingSoda.tres | 21 ++ .../Items_Final/Item_Resources/BarSoap.tres | 23 +++ .../Item_Resources/BaseballBat.tres | 21 ++ .../Item_Resources/BoxingGloves.tres | 21 ++ .../Items_Final/Item_Resources/BubbleGum.tres | 23 +++ .../Items_Final/Item_Resources/CandyCane.tres | 25 +++ .../Item_Resources/DeckOfCards.tres | 23 +++ .../Items_Final/Item_Resources/FryingPan.tres | 21 ++ source/Items_Final/Item_Resources/Hose.tres | 23 +++ .../Items_Final/Item_Resources/JuiceBox.tres | 21 ++ .../Items_Final/Item_Resources/Marbles.tres | 21 ++ source/Items_Final/Item_Resources/Mop.tres | 23 +++ .../Items_Final/Item_Resources/OvenMitts.tres | 21 ++ .../Item_Resources/PocketWatch.tres | 22 +++ .../Item_Resources/PropellerHat.tres | 21 ++ .../Item_Resources/Puzzle Cube.tres | 25 +++ .../Items_Final/Item_Resources/RainBoots.tres | 21 ++ .../Item_Resources/RainbowLollipop.tres | 24 +++ source/Items_Final/Item_Resources/Rake.tres | 23 +++ .../Item_Resources/RollerSkates.tres | 25 +++ .../Item_Resources/RubberDucky.tres | 22 +++ .../Item_Resources/SafetyScissors.tres | 21 ++ .../Items_Final/Item_Resources/Spatula.tres | 21 ++ .../Item_Resources/SprayPaint.tres | 25 +++ source/Items_Final/Item_Resources/TopHat.tres | 23 +++ .../Item_Resources/TrenchCoat.tres | 21 ++ .../Items_Final/Item_Resources/WinterHat.tres | 23 +++ source/Items_Final/Item_Resources/Yo-Yo.tres | 24 +++ source/Items_Final/Item_Scripts/Item.gd | 43 ++++ .../Item_Scripts/Item_Functions.gd | 184 ++++++++++++++++++ .../Item_Scripts/Status_Effect_Manager.gd | 110 +++++++++++ .../Item_Sprites/Magic Deck of Cards.png | Bin 0 -> 403 bytes .../Magic Deck of Cards.png.import | 34 ++++ .../Item_Sprites/Plunger pixel art.png | Bin 0 -> 243 bytes .../Item_Sprites/Plunger pixel art.png.import | 34 ++++ .../Items_Final/Item_Sprites/Stick Sprite.png | Bin 0 -> 344 bytes .../Item_Sprites/Stick Sprite.png.import | 34 ++++ .../Item_Sprites/Top hat pixel art.png | Bin 0 -> 301 bytes .../Item_Sprites/Top hat pixel art.png.import | 34 ++++ .../Items_Final/Item_Sprites/bakingsoda.png | Bin 0 -> 849 bytes .../Item_Sprites/bakingsoda.png.import | 34 ++++ .../Items_Final/Item_Sprites/baseballbat.png | Bin 0 -> 625 bytes .../Item_Sprites/baseballbat.png.import | 34 ++++ .../Items_Final/Item_Sprites/baseballcap.png | Bin 0 -> 642 bytes .../Item_Sprites/baseballcap.png.import | 34 ++++ .../Items_Final/Item_Sprites/boxinggloves.png | Bin 0 -> 624 bytes .../Item_Sprites/boxinggloves.png.import | 34 ++++ source/Items_Final/Item_Sprites/bubblegum.png | Bin 0 -> 812 bytes .../Item_Sprites/bubblegum.png.import | 34 ++++ source/Items_Final/Item_Sprites/candycane.png | Bin 0 -> 472 bytes .../Item_Sprites/candycane.png.import | 34 ++++ source/Items_Final/Item_Sprites/fryingpan.png | Bin 0 -> 508 bytes .../Item_Sprites/fryingpan.png.import | 34 ++++ source/Items_Final/Item_Sprites/hose.png | Bin 0 -> 648 bytes .../Items_Final/Item_Sprites/hose.png.import | 34 ++++ source/Items_Final/Item_Sprites/juicebox.png | Bin 0 -> 619 bytes .../Item_Sprites/juicebox.png.import | 34 ++++ .../Items_Final/Item_Sprites/magic8ball.png | Bin 0 -> 451 bytes .../Item_Sprites/magic8ball.png.import | 34 ++++ source/Items_Final/Item_Sprites/marbles.png | Bin 0 -> 988 bytes .../Item_Sprites/marbles.png.import | 34 ++++ source/Items_Final/Item_Sprites/mop.png | Bin 0 -> 562 bytes .../Items_Final/Item_Sprites/mop.png.import | 34 ++++ source/Items_Final/Item_Sprites/ovenmitts.png | Bin 0 -> 748 bytes .../Item_Sprites/ovenmitts.png.import | 34 ++++ source/Items_Final/Item_Sprites/piratehat.png | Bin 0 -> 449 bytes .../Item_Sprites/piratehat.png.import | 34 ++++ .../Items_Final/Item_Sprites/pocketwatch.png | Bin 0 -> 681 bytes .../Item_Sprites/pocketwatch.png.import | 34 ++++ .../Items_Final/Item_Sprites/propellerhat.png | Bin 0 -> 751 bytes .../Item_Sprites/propellerhat.png.import | 34 ++++ .../Items_Final/Item_Sprites/puzzlecube.png | Bin 0 -> 737 bytes .../Item_Sprites/puzzlecube.png.import | 34 ++++ source/Items_Final/Item_Sprites/rainboots.png | Bin 0 -> 500 bytes .../Item_Sprites/rainboots.png.import | 34 ++++ .../Item_Sprites/rainbowlollipop.png | Bin 0 -> 819 bytes .../Item_Sprites/rainbowlollipop.png.import | 34 ++++ source/Items_Final/Item_Sprites/rake.png | Bin 0 -> 527 bytes .../Items_Final/Item_Sprites/rake.png.import | 34 ++++ .../Item_Sprites/roller skates.png | Bin 0 -> 990 bytes .../Item_Sprites/roller skates.png.import | 34 ++++ .../Items_Final/Item_Sprites/rubberduck.png | Bin 0 -> 613 bytes .../Item_Sprites/rubberduck.png.import | 34 ++++ .../Item_Sprites/safetyscissors.png | Bin 0 -> 757 bytes .../Item_Sprites/safetyscissors.png.import | 34 ++++ source/Items_Final/Item_Sprites/soap.png | Bin 0 -> 880 bytes .../Items_Final/Item_Sprites/soap.png.import | 34 ++++ source/Items_Final/Item_Sprites/soda.png | Bin 0 -> 631 bytes .../Items_Final/Item_Sprites/soda.png.import | 34 ++++ source/Items_Final/Item_Sprites/spatula.png | Bin 0 -> 555 bytes .../Item_Sprites/spatula.png.import | 34 ++++ .../Items_Final/Item_Sprites/spraypaint.png | Bin 0 -> 527 bytes .../Item_Sprites/spraypaint.png.import | 34 ++++ .../Items_Final/Item_Sprites/toiletpaper.png | Bin 0 -> 830 bytes .../Item_Sprites/toiletpaper.png.import | 34 ++++ .../Items_Final/Item_Sprites/toothbrush.png | Bin 0 -> 447 bytes .../Item_Sprites/toothbrush.png.import | 34 ++++ source/Items_Final/Item_Sprites/toyraygun.png | Bin 0 -> 788 bytes .../Item_Sprites/toyraygun.png.import | 34 ++++ .../Items_Final/Item_Sprites/trenchcoat.png | Bin 0 -> 794 bytes .../Item_Sprites/trenchcoat.png.import | 34 ++++ source/Items_Final/Item_Sprites/trowel.png | Bin 0 -> 596 bytes .../Item_Sprites/trowel.png.import | 34 ++++ source/Items_Final/Item_Sprites/winterhat.png | Bin 0 -> 627 bytes .../Item_Sprites/winterhat.png.import | 34 ++++ source/Items_Final/Item_Sprites/yoyo.png | Bin 0 -> 638 bytes .../Items_Final/Item_Sprites/yoyo.png.import | 34 ++++ source/scripts/Player_Test.gd | 97 +++++---- 112 files changed, 2374 insertions(+), 43 deletions(-) create mode 100644 source/Items_Final/Item_Resource_Unused/Plunger.tres create mode 100644 source/Items_Final/Item_Resource_Unused/ToiletPaper.tres create mode 100644 source/Items_Final/Item_Resource_Unused/newItem.tres create mode 100644 source/Items_Final/Item_Resources/BakingSoda.tres create mode 100644 source/Items_Final/Item_Resources/BarSoap.tres create mode 100644 source/Items_Final/Item_Resources/BaseballBat.tres create mode 100644 source/Items_Final/Item_Resources/BoxingGloves.tres create mode 100644 source/Items_Final/Item_Resources/BubbleGum.tres create mode 100644 source/Items_Final/Item_Resources/CandyCane.tres create mode 100644 source/Items_Final/Item_Resources/DeckOfCards.tres create mode 100644 source/Items_Final/Item_Resources/FryingPan.tres create mode 100644 source/Items_Final/Item_Resources/Hose.tres create mode 100644 source/Items_Final/Item_Resources/JuiceBox.tres create mode 100644 source/Items_Final/Item_Resources/Marbles.tres create mode 100644 source/Items_Final/Item_Resources/Mop.tres create mode 100644 source/Items_Final/Item_Resources/OvenMitts.tres create mode 100644 source/Items_Final/Item_Resources/PocketWatch.tres create mode 100644 source/Items_Final/Item_Resources/PropellerHat.tres create mode 100644 source/Items_Final/Item_Resources/Puzzle Cube.tres create mode 100644 source/Items_Final/Item_Resources/RainBoots.tres create mode 100644 source/Items_Final/Item_Resources/RainbowLollipop.tres create mode 100644 source/Items_Final/Item_Resources/Rake.tres create mode 100644 source/Items_Final/Item_Resources/RollerSkates.tres create mode 100644 source/Items_Final/Item_Resources/RubberDucky.tres create mode 100644 source/Items_Final/Item_Resources/SafetyScissors.tres create mode 100644 source/Items_Final/Item_Resources/Spatula.tres create mode 100644 source/Items_Final/Item_Resources/SprayPaint.tres create mode 100644 source/Items_Final/Item_Resources/TopHat.tres create mode 100644 source/Items_Final/Item_Resources/TrenchCoat.tres create mode 100644 source/Items_Final/Item_Resources/WinterHat.tres create mode 100644 source/Items_Final/Item_Resources/Yo-Yo.tres create mode 100644 source/Items_Final/Item_Scripts/Item.gd create mode 100644 source/Items_Final/Item_Scripts/Item_Functions.gd create mode 100644 source/Items_Final/Item_Scripts/Status_Effect_Manager.gd create mode 100644 source/Items_Final/Item_Sprites/Magic Deck of Cards.png create mode 100644 source/Items_Final/Item_Sprites/Magic Deck of Cards.png.import create mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png create mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png.import create mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png create mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png.import create mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png create mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png.import create mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png create mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png.import create mode 100644 source/Items_Final/Item_Sprites/baseballbat.png create mode 100644 source/Items_Final/Item_Sprites/baseballbat.png.import create mode 100644 source/Items_Final/Item_Sprites/baseballcap.png create mode 100644 source/Items_Final/Item_Sprites/baseballcap.png.import create mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png create mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png.import create mode 100644 source/Items_Final/Item_Sprites/bubblegum.png create mode 100644 source/Items_Final/Item_Sprites/bubblegum.png.import create mode 100644 source/Items_Final/Item_Sprites/candycane.png create mode 100644 source/Items_Final/Item_Sprites/candycane.png.import create mode 100644 source/Items_Final/Item_Sprites/fryingpan.png create mode 100644 source/Items_Final/Item_Sprites/fryingpan.png.import create mode 100644 source/Items_Final/Item_Sprites/hose.png create mode 100644 source/Items_Final/Item_Sprites/hose.png.import create mode 100644 source/Items_Final/Item_Sprites/juicebox.png create mode 100644 source/Items_Final/Item_Sprites/juicebox.png.import create mode 100644 source/Items_Final/Item_Sprites/magic8ball.png create mode 100644 source/Items_Final/Item_Sprites/magic8ball.png.import create mode 100644 source/Items_Final/Item_Sprites/marbles.png create mode 100644 source/Items_Final/Item_Sprites/marbles.png.import create mode 100644 source/Items_Final/Item_Sprites/mop.png create mode 100644 source/Items_Final/Item_Sprites/mop.png.import create mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png create mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png.import create mode 100644 source/Items_Final/Item_Sprites/piratehat.png create mode 100644 source/Items_Final/Item_Sprites/piratehat.png.import create mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png create mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png.import create mode 100644 source/Items_Final/Item_Sprites/propellerhat.png create mode 100644 source/Items_Final/Item_Sprites/propellerhat.png.import create mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png create mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png.import create mode 100644 source/Items_Final/Item_Sprites/rainboots.png create mode 100644 source/Items_Final/Item_Sprites/rainboots.png.import create mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png create mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png.import create mode 100644 source/Items_Final/Item_Sprites/rake.png create mode 100644 source/Items_Final/Item_Sprites/rake.png.import create mode 100644 source/Items_Final/Item_Sprites/roller skates.png create mode 100644 source/Items_Final/Item_Sprites/roller skates.png.import create mode 100644 source/Items_Final/Item_Sprites/rubberduck.png create mode 100644 source/Items_Final/Item_Sprites/rubberduck.png.import create mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png create mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png.import create mode 100644 source/Items_Final/Item_Sprites/soap.png create mode 100644 source/Items_Final/Item_Sprites/soap.png.import create mode 100644 source/Items_Final/Item_Sprites/soda.png create mode 100644 source/Items_Final/Item_Sprites/soda.png.import create mode 100644 source/Items_Final/Item_Sprites/spatula.png create mode 100644 source/Items_Final/Item_Sprites/spatula.png.import create mode 100644 source/Items_Final/Item_Sprites/spraypaint.png create mode 100644 source/Items_Final/Item_Sprites/spraypaint.png.import create mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png create mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png.import create mode 100644 source/Items_Final/Item_Sprites/toothbrush.png create mode 100644 source/Items_Final/Item_Sprites/toothbrush.png.import create mode 100644 source/Items_Final/Item_Sprites/toyraygun.png create mode 100644 source/Items_Final/Item_Sprites/toyraygun.png.import create mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png create mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png.import create mode 100644 source/Items_Final/Item_Sprites/trowel.png create mode 100644 source/Items_Final/Item_Sprites/trowel.png.import create mode 100644 source/Items_Final/Item_Sprites/winterhat.png create mode 100644 source/Items_Final/Item_Sprites/winterhat.png.import create mode 100644 source/Items_Final/Item_Sprites/yoyo.png create mode 100644 source/Items_Final/Item_Sprites/yoyo.png.import diff --git a/project.godot b/project.godot index b6a41d34..4f7441b2 100644 --- a/project.godot +++ b/project.godot @@ -17,7 +17,7 @@ config/icon="res://icon.svg" [autoload] -ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" +ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" [display] diff --git a/source/Items_Final/Item_Resource_Unused/Plunger.tres b/source/Items_Final/Item_Resource_Unused/Plunger.tres new file mode 100644 index 00000000..95e7186a --- /dev/null +++ b/source/Items_Final/Item_Resource_Unused/Plunger.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b2odg7j76fhrt"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_c7p57"] +[ext_resource type="Texture2D" uid="uid://6sjrjy3ts348" path="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" id="2_2bdyh"] + +[resource] +script = ExtResource("1_c7p57") +sprite = ExtResource("2_2bdyh") +name = "Plunger" +description = "Slightly increases damage and decreases cooldown" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 1.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resource_Unused/ToiletPaper.tres b/source/Items_Final/Item_Resource_Unused/ToiletPaper.tres new file mode 100644 index 00000000..9876848d --- /dev/null +++ b/source/Items_Final/Item_Resource_Unused/ToiletPaper.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://8uxqwbgx5io3"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_teqfg"] +[ext_resource type="Texture2D" uid="uid://drouo1e7b67oo" path="res://source/Items_Final/Item_Sprites/toiletpaper.png" id="2_aox3e"] + +[resource] +script = ExtResource("1_teqfg") +sprite = ExtResource("2_aox3e") +name = "Toilet Paper" +description = "Decreases Cooldown" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 2.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resource_Unused/newItem.tres b/source/Items_Final/Item_Resource_Unused/newItem.tres new file mode 100644 index 00000000..18dfcf8b --- /dev/null +++ b/source/Items_Final/Item_Resource_Unused/newItem.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Item" load_steps=2 format=3 uid="uid://dgttm3uig5c5p"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_2pycj"] + +[resource] +script = ExtResource("1_2pycj") +name = "" +description = "" +rarity = 2 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BakingSoda.tres b/source/Items_Final/Item_Resources/BakingSoda.tres new file mode 100644 index 00000000..0d987ea0 --- /dev/null +++ b/source/Items_Final/Item_Resources/BakingSoda.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://bbebjdnx0jnqm"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_powpt"] +[ext_resource type="Texture2D" uid="uid://b7rs3tdjkmife" path="res://source/Items_Final/Item_Sprites/bakingsoda.png" id="2_pi18r"] + +[resource] +script = ExtResource("1_powpt") +sprite = ExtResource("2_pi18r") +name = "Baking Soda" +description = "Increases Speed" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 2.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BarSoap.tres b/source/Items_Final/Item_Resources/BarSoap.tres new file mode 100644 index 00000000..81bf8b73 --- /dev/null +++ b/source/Items_Final/Item_Resources/BarSoap.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://d2jo1tq1mmi0s"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_owt4p"] +[ext_resource type="Texture2D" uid="uid://cx60wpmn87dm1" path="res://source/Items_Final/Item_Sprites/soap.png" id="2_kfbiq"] + +[resource] +script = ExtResource("1_owt4p") +sprite = ExtResource("2_kfbiq") +name = "Bar Soap" +description = "+ Tenacity ++ Health +" +rarity = 1 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 1.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballBat.tres b/source/Items_Final/Item_Resources/BaseballBat.tres new file mode 100644 index 00000000..9a25dccf --- /dev/null +++ b/source/Items_Final/Item_Resources/BaseballBat.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://chya8oc2ch8i5"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_gvtxx"] +[ext_resource type="Texture2D" uid="uid://n8kc5ecpojp0" path="res://source/Items_Final/Item_Sprites/baseballbat.png" id="2_1p0jc"] + +[resource] +script = ExtResource("1_gvtxx") +sprite = ExtResource("2_1p0jc") +name = "Baseball Bat" +description = "Increases Damage" +rarity = 0 +cost = 0 +attackDamage = 2.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BoxingGloves.tres b/source/Items_Final/Item_Resources/BoxingGloves.tres new file mode 100644 index 00000000..d355c9d7 --- /dev/null +++ b/source/Items_Final/Item_Resources/BoxingGloves.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://1lo3qihmupbe"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_dphqa"] +[ext_resource type="Texture2D" uid="uid://bxu2g1kcx6k20" path="res://source/Items_Final/Item_Sprites/boxinggloves.png" id="2_ky0rr"] + +[resource] +script = ExtResource("1_dphqa") +sprite = ExtResource("2_ky0rr") +name = "Boxing Gloves" +description = "Slightly increases attack and health" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BubbleGum.tres b/source/Items_Final/Item_Resources/BubbleGum.tres new file mode 100644 index 00000000..4e612903 --- /dev/null +++ b/source/Items_Final/Item_Resources/BubbleGum.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://byell1iaqmeys"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_2g6le"] +[ext_resource type="Texture2D" uid="uid://dyerc2bf12e1r" path="res://source/Items_Final/Item_Sprites/bubblegum.png" id="2_n6khc"] + +[resource] +script = ExtResource("1_2g6le") +sprite = ExtResource("2_n6khc") +name = "Bubble Gum" +description = "+ Luck ++ Health +" +rarity = 1 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 1.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/CandyCane.tres b/source/Items_Final/Item_Resources/CandyCane.tres new file mode 100644 index 00000000..624013d8 --- /dev/null +++ b/source/Items_Final/Item_Resources/CandyCane.tres @@ -0,0 +1,25 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://dkuwwm04cwu1a"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_7yeok"] +[ext_resource type="Texture2D" uid="uid://bkbu28tulw66d" path="res://source/Items_Final/Item_Sprites/candycane.png" id="2_3hosa"] + +[resource] +script = ExtResource("1_7yeok") +sprite = ExtResource("2_3hosa") +name = "Candy Cane" +description = "++++ Speed ++ Health ++ Attack Damage +Passive: Gain 1 candy per second while alive in combat +" +rarity = 2 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 4.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([4]) +functionNames = Array[String](["candyCane_onRoundStart"]) diff --git a/source/Items_Final/Item_Resources/DeckOfCards.tres b/source/Items_Final/Item_Resources/DeckOfCards.tres new file mode 100644 index 00000000..ab2d787e --- /dev/null +++ b/source/Items_Final/Item_Resources/DeckOfCards.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://d0vcqcj28ywa2"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_de2oy"] +[ext_resource type="Texture2D" uid="uid://rdfoxey27gip" path="res://source/Items_Final/Item_Sprites/Magic Deck of Cards.png" id="2_22cq1"] + +[resource] +script = ExtResource("1_de2oy") +sprite = ExtResource("2_22cq1") +name = "Deck of Cards" +description = "++++++++++ (Attack Damage or Health or Speed), switches every round +On 10% hp: +++++ damage +" +rarity = 3 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([0, 4]) +functionNames = Array[String](["deckOfCards_onStart", "deckOfCards_onRoundStart"]) diff --git a/source/Items_Final/Item_Resources/FryingPan.tres b/source/Items_Final/Item_Resources/FryingPan.tres new file mode 100644 index 00000000..f48c0546 --- /dev/null +++ b/source/Items_Final/Item_Resources/FryingPan.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://u4tmdtacb583"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_n5nyc"] +[ext_resource type="Texture2D" uid="uid://bdh5om0n3ttan" path="res://source/Items_Final/Item_Sprites/fryingpan.png" id="2_cf5yb"] + +[resource] +script = ExtResource("1_n5nyc") +sprite = ExtResource("2_cf5yb") +name = "Frying Pan" +description = "+++ Attack Damage" +rarity = 1 +cost = 0 +attackDamage = 3.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Hose.tres b/source/Items_Final/Item_Resources/Hose.tres new file mode 100644 index 00000000..47d50914 --- /dev/null +++ b/source/Items_Final/Item_Resources/Hose.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b6mpfm5dfiriq"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_8e4kt"] +[ext_resource type="Texture2D" uid="uid://di5sjyqlxreyo" path="res://source/Items_Final/Item_Sprites/hose.png" id="2_nss0t"] + +[resource] +script = ExtResource("1_8e4kt") +sprite = ExtResource("2_nss0t") +name = "" +description = "+ Tenacity ++ Attack Damage +" +rarity = 1 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 1.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/JuiceBox.tres b/source/Items_Final/Item_Resources/JuiceBox.tres new file mode 100644 index 00000000..8d76b9c7 --- /dev/null +++ b/source/Items_Final/Item_Resources/JuiceBox.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b2ris40goqhqp"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_mx56r"] +[ext_resource type="Texture2D" uid="uid://eehdxpdnjdbn" path="res://source/Items_Final/Item_Sprites/juicebox.png" id="2_4kgwj"] + +[resource] +script = ExtResource("1_mx56r") +sprite = ExtResource("2_4kgwj") +name = "JuiceBox" +description = "+++ Health" +rarity = 1 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 3.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Marbles.tres b/source/Items_Final/Item_Resources/Marbles.tres new file mode 100644 index 00000000..fba89bcd --- /dev/null +++ b/source/Items_Final/Item_Resources/Marbles.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://bs5xl3fekbuav"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_cspho"] +[ext_resource type="Texture2D" uid="uid://cam6hafwuwn0g" path="res://source/Items_Final/Item_Sprites/marbles.png" id="2_1fp7y"] + +[resource] +script = ExtResource("1_cspho") +sprite = ExtResource("2_1fp7y") +name = "Marbles" +description = "+++ Speed" +rarity = 1 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 3.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Mop.tres b/source/Items_Final/Item_Resources/Mop.tres new file mode 100644 index 00000000..6bac5936 --- /dev/null +++ b/source/Items_Final/Item_Resources/Mop.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://db0ymsr4tjo66"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_7nu72"] +[ext_resource type="Texture2D" uid="uid://c3o5u4wsuwtfj" path="res://source/Items_Final/Item_Sprites/mop.png" id="2_2g4k5"] + +[resource] +script = ExtResource("1_7nu72") +sprite = ExtResource("2_2g4k5") +name = "Mop" +description = "+ Luck ++ Attack Damage +" +rarity = 1 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 1.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/OvenMitts.tres b/source/Items_Final/Item_Resources/OvenMitts.tres new file mode 100644 index 00000000..a74d5a92 --- /dev/null +++ b/source/Items_Final/Item_Resources/OvenMitts.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://21ntxjjt6dfa"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_ombo1"] +[ext_resource type="Texture2D" uid="uid://b781y2yilgedy" path="res://source/Items_Final/Item_Sprites/ovenmitts.png" id="2_f8fv4"] + +[resource] +script = ExtResource("1_ombo1") +sprite = ExtResource("2_f8fv4") +name = "Oven Mitts" +description = "Slightly increases tenacity" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 1.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/PocketWatch.tres b/source/Items_Final/Item_Resources/PocketWatch.tres new file mode 100644 index 00000000..ba2cc7ad --- /dev/null +++ b/source/Items_Final/Item_Resources/PocketWatch.tres @@ -0,0 +1,22 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://cj65nkihgtwuf"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_ufiqf"] +[ext_resource type="Texture2D" uid="uid://c4ufxtrgeb0cf" path="res://source/Items_Final/Item_Sprites/pocketwatch.png" id="2_yw7p2"] + +[resource] +script = ExtResource("1_ufiqf") +sprite = ExtResource("2_yw7p2") +name = "Pocket Watch" +description = "+ Tenacity ++ Speed" +rarity = 1 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 1.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/PropellerHat.tres b/source/Items_Final/Item_Resources/PropellerHat.tres new file mode 100644 index 00000000..af7c2e7e --- /dev/null +++ b/source/Items_Final/Item_Resources/PropellerHat.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=2 format=3 uid="uid://ddw4a7md5oaik"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_185c2"] + +[resource] +script = ExtResource("1_185c2") +name = "Propeller Hat" +description = "++ Speed +Passive: While affected by a status effect gain ++ Speed +" +rarity = 1 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 2.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([0]) +functionNames = Array[String](["propellerHat_onStart"]) diff --git a/source/Items_Final/Item_Resources/Puzzle Cube.tres b/source/Items_Final/Item_Resources/Puzzle Cube.tres new file mode 100644 index 00000000..15e88d53 --- /dev/null +++ b/source/Items_Final/Item_Resources/Puzzle Cube.tres @@ -0,0 +1,25 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://wacyptunc1ys"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_jnjjl"] +[ext_resource type="Texture2D" uid="uid://c1nu3oul7hqfv" path="res://source/Items_Final/Item_Sprites/puzzlecube.png" id="2_nj2do"] + +[resource] +script = ExtResource("1_jnjjl") +sprite = ExtResource("2_nj2do") +name = "Puzzle Cube" +description = "+ Attack Damage +++ Tenacity +Passive: You inflict - Speed to the Monster on hit for 2 seconds +Passive: You gain + Speed for 3 seconds when you hit a Kid +" +rarity = 2 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 2.0 +luck = 0.0 +functionTypes = Array[int]([2]) +functionNames = Array[String](["puzzleCube_onHit"]) diff --git a/source/Items_Final/Item_Resources/RainBoots.tres b/source/Items_Final/Item_Resources/RainBoots.tres new file mode 100644 index 00000000..ea00e265 --- /dev/null +++ b/source/Items_Final/Item_Resources/RainBoots.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://jdhh5df8llh8"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_aeuxc"] +[ext_resource type="Texture2D" uid="uid://bldr5242uuk63" path="res://source/Items_Final/Item_Sprites/rainboots.png" id="2_x8rcl"] + +[resource] +script = ExtResource("1_aeuxc") +sprite = ExtResource("2_x8rcl") +name = "Rain Boots" +description = "Slightly increases health and speed" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 1.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/RainbowLollipop.tres b/source/Items_Final/Item_Resources/RainbowLollipop.tres new file mode 100644 index 00000000..9d3447cb --- /dev/null +++ b/source/Items_Final/Item_Resources/RainbowLollipop.tres @@ -0,0 +1,24 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://c2744yegswje4"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_cc70q"] +[ext_resource type="Texture2D" uid="uid://udp7gbdphe8o" path="res://source/Items_Final/Item_Sprites/rainbowlollipop.png" id="2_hs8wu"] + +[resource] +script = ExtResource("1_cc70q") +sprite = ExtResource("2_hs8wu") +name = "Rainbow Lolipop" +description = "++++++ Attack Damage +Passive: When you drop to below 40% HP, gain ++ Attack Damage and ++ Speed for 8 seconds +Passive: On getting hit: ++ Tenacity for 3 seconds +" +rarity = 3 +cost = 0 +attackDamage = 6.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([0, 3]) +functionNames = Array[String](["rainbowLolipop_onStart", "rainbowLolipop_onGetHit"]) diff --git a/source/Items_Final/Item_Resources/Rake.tres b/source/Items_Final/Item_Resources/Rake.tres new file mode 100644 index 00000000..a3b0b397 --- /dev/null +++ b/source/Items_Final/Item_Resources/Rake.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://dywjq6bltcts1"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_egh8g"] +[ext_resource type="Texture2D" uid="uid://cv8o5xvrm3cm4" path="res://source/Items_Final/Item_Sprites/rake.png" id="2_gdhnp"] + +[resource] +script = ExtResource("1_egh8g") +sprite = ExtResource("2_gdhnp") +name = "Rake" +description = "+ Luck ++ Speed +" +rarity = 1 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 1.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/RollerSkates.tres b/source/Items_Final/Item_Resources/RollerSkates.tres new file mode 100644 index 00000000..d199341b --- /dev/null +++ b/source/Items_Final/Item_Resources/RollerSkates.tres @@ -0,0 +1,25 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://diypms4rxy1n7"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_4vsr6"] +[ext_resource type="Texture2D" uid="uid://dfxoi3ybrks0c" path="res://source/Items_Final/Item_Sprites/roller skates.png" id="2_djkfx"] + +[resource] +script = ExtResource("1_4vsr6") +sprite = ExtResource("2_djkfx") +name = "Roller Skates" +description = "(Legendary) Roller Skates +++++ Tenacity +++++ Speed +Passive: Every 10% hp lost = + Speed +" +rarity = 3 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 4.0 +cooldownReduction = 0.0 +tenacity = 4.0 +luck = 0.0 +functionTypes = Array[int]([0, 3]) +functionNames = Array[String](["rollerSkates_onStart", "rollerSkates_onHit"]) diff --git a/source/Items_Final/Item_Resources/RubberDucky.tres b/source/Items_Final/Item_Resources/RubberDucky.tres new file mode 100644 index 00000000..e878f7fd --- /dev/null +++ b/source/Items_Final/Item_Resources/RubberDucky.tres @@ -0,0 +1,22 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://c0ncs4647o12e"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_vuubg"] +[ext_resource type="Texture2D" uid="uid://c7rhwxuk6ncld" path="res://source/Items_Final/Item_Sprites/rubberduck.png" id="2_ru6es"] + +[resource] +script = ExtResource("1_vuubg") +sprite = ExtResource("2_ru6es") +name = "Rubber Ducky" +description = "+++++ Attack Damage +Passive: Gains + Health whenever you die (starting from when you bought this item)" +rarity = 2 +cost = 0 +attackDamage = 5.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([4]) +functionNames = Array[String](["rubberDuck_onRoundStart"]) diff --git a/source/Items_Final/Item_Resources/SafetyScissors.tres b/source/Items_Final/Item_Resources/SafetyScissors.tres new file mode 100644 index 00000000..8cc63a9a --- /dev/null +++ b/source/Items_Final/Item_Resources/SafetyScissors.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://dal6qgym6pnyf"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_innlo"] +[ext_resource type="Texture2D" uid="uid://b4xjbdxvn3i2l" path="res://source/Items_Final/Item_Sprites/safetyscissors.png" id="2_h66q4"] + +[resource] +script = ExtResource("1_innlo") +sprite = ExtResource("2_h66q4") +name = "SafetyScissors" +description = "Slightly increases damage and speed" +rarity = 0 +cost = 0 +attackDamage = 1.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Spatula.tres b/source/Items_Final/Item_Resources/Spatula.tres new file mode 100644 index 00000000..632b4061 --- /dev/null +++ b/source/Items_Final/Item_Resources/Spatula.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://c3thro6otuhov"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_frwgj"] +[ext_resource type="Texture2D" uid="uid://n4gexuvjvwru" path="res://source/Items_Final/Item_Sprites/spatula.png" id="2_s2ejo"] + +[resource] +script = ExtResource("1_frwgj") +sprite = ExtResource("2_s2ejo") +name = "Spatula" +description = "+ Luck" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 1.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/SprayPaint.tres b/source/Items_Final/Item_Resources/SprayPaint.tres new file mode 100644 index 00000000..09e4b668 --- /dev/null +++ b/source/Items_Final/Item_Resources/SprayPaint.tres @@ -0,0 +1,25 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://bdkpc5mux3txu"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_hltpr"] +[ext_resource type="Texture2D" uid="uid://dpevv3slmjd0y" path="res://source/Items_Final/Item_Sprites/spraypaint.png" id="2_3coam"] + +[resource] +script = ExtResource("1_hltpr") +sprite = ExtResource("2_3coam") +name = "Spray Paint" +description = "+++ Attack Damage ++++ Health ++ Speed +Passive: On taking damage: Gain ++ Attack Damage for 3 seconds +" +rarity = 2 +cost = 0 +attackDamage = 3.0 +attackSpeed = 0.0 +maxHealth = 3.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([0, 3]) +functionNames = Array[String](["sprayPaint_onStart", "sprayPaint_onGetHit"]) diff --git a/source/Items_Final/Item_Resources/TopHat.tres b/source/Items_Final/Item_Resources/TopHat.tres new file mode 100644 index 00000000..89574e88 --- /dev/null +++ b/source/Items_Final/Item_Resources/TopHat.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://d18smolippmrv"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_ui23t"] +[ext_resource type="Texture2D" uid="uid://dyag0hkodt8rf" path="res://source/Items_Final/Item_Sprites/Top hat pixel art.png" id="2_468je"] + +[resource] +script = ExtResource("1_ui23t") +sprite = ExtResource("2_468je") +name = "Top Hat" +description = "++ Health +Passive: On attack gain ++ Speed +" +rarity = 1 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 2.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([0, 1]) +functionNames = Array[String](["topHat_onStart", "topHat_onAttack"]) diff --git a/source/Items_Final/Item_Resources/TrenchCoat.tres b/source/Items_Final/Item_Resources/TrenchCoat.tres new file mode 100644 index 00000000..0cfffca9 --- /dev/null +++ b/source/Items_Final/Item_Resources/TrenchCoat.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://cc563lr5i06gw"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_7l3le"] +[ext_resource type="Texture2D" uid="uid://dna8nprqj1ifn" path="res://source/Items_Final/Item_Sprites/trenchcoat.png" id="2_rr3wv"] + +[resource] +script = ExtResource("1_7l3le") +sprite = ExtResource("2_rr3wv") +name = "Trench Coat" +description = "Increases Health" +rarity = 0 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 2.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/WinterHat.tres b/source/Items_Final/Item_Resources/WinterHat.tres new file mode 100644 index 00000000..3a1ef3eb --- /dev/null +++ b/source/Items_Final/Item_Resources/WinterHat.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://drbxuyl0abu8b"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_qr3gi"] +[ext_resource type="Texture2D" uid="uid://d2rve7du8b7ts" path="res://source/Items_Final/Item_Sprites/winterhat.png" id="2_54ulm"] + +[resource] +script = ExtResource("1_qr3gi") +sprite = ExtResource("2_54ulm") +name = "Winter Hat" +description = "++ Attack Damage +Passive: When 50% hp, gain ++Attack damage +" +rarity = 1 +cost = 0 +attackDamage = 2.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([0, 3]) +functionNames = Array[String](["winterHat_onStart", "winterHat_onGetHit"]) diff --git a/source/Items_Final/Item_Resources/Yo-Yo.tres b/source/Items_Final/Item_Resources/Yo-Yo.tres new file mode 100644 index 00000000..02897c5e --- /dev/null +++ b/source/Items_Final/Item_Resources/Yo-Yo.tres @@ -0,0 +1,24 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b1h7kigidl5t2"] + +[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_12rx8"] +[ext_resource type="Texture2D" uid="uid://dqmbec8uh8jaq" path="res://source/Items_Final/Item_Sprites/yoyo.png" id="2_ibfa5"] + +[resource] +script = ExtResource("1_12rx8") +sprite = ExtResource("2_ibfa5") +name = "Yo-Yo" +description = "+++++ Health ++ Speed +Passive: After hitting an enemy, gain + Attack Damage for 3 seconds, stacking up to 5 times. +" +rarity = 2 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 5.0 +speed = 1.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 0.0 +functionTypes = Array[int]([0, 2]) +functionNames = Array[String](["yoyo_onStart", "yoyo_onHit"]) diff --git a/source/Items_Final/Item_Scripts/Item.gd b/source/Items_Final/Item_Scripts/Item.gd new file mode 100644 index 00000000..8e0cf645 --- /dev/null +++ b/source/Items_Final/Item_Scripts/Item.gd @@ -0,0 +1,43 @@ +extends Resource +class_name Item + +enum Rarity { + COMMON, + UNCOMMON, + RARE, + LEGENDARY +} + +enum FunctionTypes +{ + OnStart, + OnAttack, + OnHit, + OnGetHit, + OnRoundStart +} + +#Info +@export_group("General Information") +@export var sprite : Texture +@export var name : String +@export_multiline var description : String +@export var rarity : Rarity +@export var cost : int + + +#Stats +@export_group("Stats") +@export var attackDamage: float +@export var attackSpeed: float +@export var maxHealth : float +@export var speed : float +@export var cooldownReduction : float +@export var tenacity : float +@export var luck : float + + +#Functions +@export_group("Functions") +@export var functionTypes : Array[FunctionTypes] +@export var functionNames : Array[String] diff --git a/source/Items_Final/Item_Scripts/Item_Functions.gd b/source/Items_Final/Item_Scripts/Item_Functions.gd new file mode 100644 index 00000000..65ae7b5f --- /dev/null +++ b/source/Items_Final/Item_Scripts/Item_Functions.gd @@ -0,0 +1,184 @@ +#Needs to be a global script +extends Node + +func fire_start(ps : Player_Test): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.IGNORE) +func fire_tick_end(ps : Player_Test): + ps.change_health(-5) + if(ps.statusEffects.hasStatus("Fire")): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.IGNORE) + +func poison_start(ps : Player_Test): + ps.statusEffects.giveStatusTimed("PoisonTick", 1, StatusEffectManager.OverLapBehavior.STACK) +func poison_tick_end(ps : Player_Test): + ps.change_health(-1) + if(ps.statusEffects.hasStatus("Poison")): + ps.statusEffects.giveStatusTimed("PoisonTick", 1, StatusEffectManager.OverLapBehavior.STACK) + +func stun_start(ps : Player_Test): #GAME DESIGN WARNING. this just gives a speed debuff using the speed bonus stat. maybe it should modify the player's base stats? + ps.speed -= 4 +func stun_end(ps : Player_Test): + ps.speed += 4 + +func spook_start(ps : Player_Test): + ps.damage -= 4 +func spook_end(ps : Player_Test): + ps.damage += 4 + +func yoyo_onStart(ps: Player_Test): + ps.statusEffects.addStatusStartAndEndFunction("yoyo_speedBuff", Callable(self,"yoyo_speedBuff_start").bind(ps), Callable(self,"yoyo_speedBuff_end").bind(ps)) +func yoyo_onHit(ps: Player_Test, other :Player_Test): + ps.statusEffects.giveStatusTimed("yoyo_speedBuff", 3, StatusEffectManager.OverLapBehavior.STACK) +func yoyo_speedBuff_start(ps: Player_Test): + ps.speed += 2 +func yoyo_speedBuff_end(ps: Player_Test): + ps.speed -= 2 + +func propellerHat_onStart(ps: Player_Test): + ps.statusEffects.addStatusStartAndEndFunction("Fire", Callable(self,"propellerHat_speedBuff_start").bind(ps), Callable(self,"propellerHat_speedBuff_end").bind(ps)) + ps.statusEffects.addStatusStartAndEndFunction("Poison", Callable(self,"propellerHat_speedBuff_start").bind(ps), Callable(self,"propellerHat_speedBuff_end").bind(ps)) + ps.statusEffects.addStatusStartAndEndFunction("Stun", Callable(self,"propellerHat_speedBuff_start").bind(ps), Callable(self,"propellerHat_speedBuff_end").bind(ps)) + ps.statusEffects.addStatusStartAndEndFunction("Spook", Callable(self,"propellerHat_speedBuff_start").bind(ps), Callable(self,"propellerHat_speedBuff_end").bind(ps)) +func propellerHat_speedBuff_start(ps : Player_Test): + if not(ps.statusEffects.hasStatus("propellerHat_speedBuff")): + ps.speed += 2 + ps.statusEffects.giveStatus("propellerHat_speedBuff") +func propellerHat_speedBuff_end(ps : Player_Test): + if not(ps.statusEffects.hasStatus("Fire") or ps.statusEffects.hasStatus("Poison") or ps.statusEffects.hasStatus("Stun") or ps.statusEffects.hasStatus("Spook")): + ps.speed -= 2 + ps.statusEffects.removeStatus("propellerHat_speedBuff") + +func topHat_onStart(ps: Player_Test): + ps.statusEffects.addStatusStartAndEndFunction("topHat_speedBuff", Callable(self,"topHat_speedBuff_start").bind(ps), Callable(self,"topHat_speedBuff_end").bind(ps)) +func topHat_onAttack(ps : Player_Test): + ps.statusEffects.giveStatusTimed("topHat_speedBuff", 1, StatusEffectManager.OverLapBehavior.REFRESH) +func topHat_speedBuff_start(ps : Player_Test): + ps.speed += 1 +func topHat_speedBuff_end(ps : Player_Test): + ps.speed -= 1 + +func winterHat_onStart(ps : Player_Test): + ps.statusEffects.addStatusStartAndEndFunction("winterHat_damageBuff", Callable(self,"winterHat_damageBuff_start").bind(ps), Callable(self,"winterHat_damageBuff_end").bind(ps)) +func winterHat_onGetHit(ps : Player_Test): + if(ps.health / ps.maxHealth < .5): + if(!ps.statusEffects.hasStatus("winterHat_damageBuff")): + ps.statusEffects.giveStatus("winterHat_damageBuff") + else: + if(ps.statusEffects.hasStatus("winterHat_damageBuff")): + ps.statusEffects.removeStatus("winterHat_damageBuff") +func winterHat_damageBuff_start(ps : Player_Test): + ps.damage += 2 +func winterHat_damageBuff_end(ps : Player_Test): + ps.damage -= 2 + +func rubberDuck_onRoundStart(ps : Player_Test): + ps.maxHealth += 1 + +func candyCane_onRoundStart(ps : Player_Test): + ps.statusEffects.addStatusEndFunction("candyCane_buff", Callable(self,"candyCane_buff_end").bind(ps)) + ps.statusEffects.giveStatusTimed("candyCane_buff", 1, StatusEffectManager.OverLapBehavior.REFRESH) +func candyCane_buff_end(ps : Player_Test): + ps.candy += 1 + ps.statusEffects.giveStatusTimed("candyCane_buff", 1, StatusEffectManager.OverLapBehavior.REFRESH) + +func puzzleCube_onHit(ps : Player_Test, other : Player_Test): + if other.isMonster: + other.statusEffects.addStatusStartAndEndFunction("puzzleCube_speedDebuff", Callable(self,"puzzleCube_speedDebuff_start").bind(other), Callable(self,"puzzleCube_speedDebuff_end").bind(other)) + else: + ps.statusEffects.addStatusStartAndEndFunction("puzzleCube_speedBuff", Callable(self,"puzzleCube_speedBuff_start").bind(ps), Callable(self,"puzzleCube_speedBuff_end").bind(ps)) +func puzzleCube_speedBuff_start(ps : Player_Test): + ps.speed += 2 +func puzzleCube_speedBuff_end(ps : Player_Test): + ps.speed -= 2 +func puzzleCube_speedDebuff_start(other : Player_Test): + other.speed -= 2 +func puzzleCube_speedDebuff_end(other : Player_Test): + other.speed += 2 + +func sprayPaint_onStart(ps : Player_Test): + ps.statusEffects.addStatusStartAndEndFunction("sprayPaint_Buff", Callable(self,"sprayPaint_attackBuff_start").bind(ps), Callable(self,"sprayPaint_attackBuff_end").bind(ps)) +func sprayPaint_onGetHit(ps : Player_Test): + ps.statusEffects.giveStatusTimed("sprayPaint_Buff", 3, StatusEffectManager.OverLapBehavior.STACK) +func sprayPaint_attackBuff_start(ps : Player_Test): + ps.speed += 2 +func sprayPaint_attackBuff_end(ps : Player_Test): + ps.speed -= 2 + +func deckOfCards_onStart(ps : Player_Test): + ps.statusEffects.addStatusStartAndEndFunction("deckOfCards_damageBuff", Callable(self, "deckOfCards_damageBuff_start").bind(ps), Callable(self, "deckOfCards_damageBuff_end").bind(ps)) + ps.statusEffects.addStatusStartAndEndFunction("deckOfCards_speedBuff", Callable(self, "deckOfCards_speedBuff_start").bind(ps), Callable(self, "deckOfCards_speedBuff_end").bind(ps)) + ps.statusEffects.addStatusStartAndEndFunction("deckOfCards_healthBuff", Callable(self, "deckOfCards_healthBuff_start").bind(ps), Callable(self, "deckOfCards_healthBuff_end").bind(ps)) + ps.statusEffects.addStatusStartAndEndFunction("deckOfCards_damageBuff2", Callable(self, "deckOfCards_damageBuff2_start").bind(ps), Callable(self, "deckOfCards_damageBuff2_end").bind(ps)) +func deckOfCards_onRoundStart(ps : Player_Test): + if(ps.statusEffects.hasStatus("deckOfCards_damageBuff")): + ps.statusEffects.removeStatus("deckOfCards_damageBuff") + if(ps.statusEffects.hasStatus("deckOfCards_speedBuff")): + ps.statusEffects.removeStatus("deckOfCards_speedBuff") + if(ps.statusEffects.hasStatus("deckOfCards_healthBuff")): + ps.statusEffects.removeStatus("deckOfCards_healthBuff") + var rand = RandomNumberGenerator.new() + var randomNum = rand.randi_range(0, 2) + match(randomNum): + 0: + ps.statusEffects.giveStatus("deckOfCards_damageBuff", StatusEffectManager.OverLapBehavior.IGNORE) + 1: + ps.statusEffects.giveStatus("deckOfCards_speedBuff", StatusEffectManager.OverLapBehavior.IGNORE) + 2: + ps.statusEffects.giveStatus("deckOfCards_healthBuff", StatusEffectManager.OverLapBehavior.IGNORE) +func deckOfCards_onGetHit(ps : Player_Test): + if(ps.health / ps.maxHealth <= .1): + if(!ps.statusEffects.hasStatus("deckOfCards_damageBuff2")): + ps.statusEffects.giveStatus("deckOfCards_damageBuff2") + else: + if(ps.statusEffects.hasStatus("deckOfCards_damageBuff2")): + ps.statusEffects.removeStatus("deckOfCards_damageBuff2") +func deckOfCards_damageBuff_start(ps : Player_Test): + ps.damage += 10 +func deckOfCards_damageBuff_end(ps : Player_Test): + ps.damage -= 10 +func deckOfCards_speedBuff_start(ps : Player_Test): + ps.speed += 10 +func deckOfCards_speedBuff_end(ps : Player_Test): + ps.speed -= 10 +func deckOfCards_healthBuff_start(ps : Player_Test): + ps.maxHealth += 10 +func deckOfCards_healthBuff_end(ps : Player_Test): + ps.maxHealth -= 10 +func deckOfCards_damageBuff2_start(ps : Player_Test): + ps.damage += 5 +func deckOfCards_damageBuff2_end(ps : Player_Test): + ps.damage -= 5 + +func rainbowLolipop_onStart(ps : Player_Test): + ps.statusEffects.addStatusStartAndEndFunction("rainbowLolipop_buff", Callable(self,"rainbowLolipop_buff_start").bind(ps),Callable(self,"rainbowLolipop_buff_end").bind(ps)) + ps.statusEffects.addStatusStartAndEndFunction("rainbowLolipop_tenasityBuff", Callable(self,"rainbowLolipop_tenasityBuff_start").bind(ps),Callable(self,"rainbowLolipop_tenasityBuff_end").bind(ps)) +func rainbowLolipop_onGetHit(ps : Player_Test): + ps.statusEffects.giveStatusTimed("rainbowLolipop_tenasityBuff", 3, StatusEffectManager.OverLapBehavior.STACK) + if(ps.health / ps.maxHealth <= .4): + if(!ps.statusEffects.hasStatus("rainbowLolipop_buff")): + ps.statusEffects.giveStatusTimed("rainbowLolipop_buff",8, StatusEffectManager.OverLapBehavior.REFRESH) + else: + if(ps.statusEffects.hasStatus("rainbowLolipop_buff")): + ps.statusEffects.removeStatus("rainbowLolipop_buff") +func rainbowLolipop_buff_start(ps : Player_Test): + ps.damage += 2 + ps.speed += 2 +func rainbowLolipop_buff_end(ps : Player_Test): + ps.damage -= 2 + ps.speed -= 2 +func rainbowLolipop_tenasityBuff_start(ps : Player_Test): + ps.tenasity += 2 +func rainbowLolipop_tenasityBuff_end(ps : Player_Test): + ps.tenasity -= 2 + +func rollerSkates_onStart(ps : Player_Test): + ps.statusEffects.addStatusStartAndEndFunction("rollerSkates_buff", Callable(self, "rollerSkates_buff_start").bind(ps), Callable(self, "rollerSkates_buff_end").bind(ps)) +func rollerSkates_onHit(ps : Player_Test): + while(ps.statusEffects.hasStatus("rollerSkates_buff")): + ps.statusEffects.removeStatus("rollerSkates_buff") + for i in range(0, (int)((1- ps.health / ps.maxHealth) * 10)): + ps.statusEffects.giveStatus("rollerSkates_buff", StatusEffectManager.OverLapBehavior.STACK) +func rollerSkates_buff_start(ps : Player_Test): + ps.speed += 1 +func rollerSkates_buff_end(ps : Player_Test): + ps.speed -= 1 diff --git a/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd b/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd new file mode 100644 index 00000000..dde36fd6 --- /dev/null +++ b/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd @@ -0,0 +1,110 @@ +class_name StatusEffectManager +extends Node + +var statuses : Array[String] +var statusFunctionsStart : Dictionary#[String:Array[Callable]] +var statusFunctionsEnd : Dictionary#[String,Array[Callable]] + +var timers : Dictionary#[Timer, String] +#might need to be list of statuses for status effect stacking +enum OverLapBehavior{ + IGNORE, + REFRESH, + STACK +} + +func setStartingStatusFunctions(ps : Player_Test): + #Temperary. StatusEffect behavior should be stored elsewhere + addStatusStartFunction("Fire", Callable(ItemFunctions,"fire_start").bind(ps)) + addStatusEndFunction("FireTick", Callable(ItemFunctions,"fire_tick_end").bind(ps)) + addStatusStartFunction("Poison", Callable(ItemFunctions, "poison_start").bind(ps)) + addStatusEndFunction("PoisonTick", Callable(ItemFunctions,"poison_tick_end").bind(ps)) + addStatusStartFunction("Stun", Callable(ItemFunctions, "stun_start").bind(ps)) + addStatusEndFunction("Stun", Callable(ItemFunctions,"stun_end").bind(ps)) + addStatusStartFunction("Spook", Callable(ItemFunctions, "spook_start").bind(ps)) + addStatusEndFunction("Spook", Callable(ItemFunctions,"spook_end").bind(ps)) + +func giveStatus(status : String, overlapBehavior : OverLapBehavior = OverLapBehavior.IGNORE) -> void: + if(statusFunctionsStart.has(status)): + call_start_functions(status) + if(hasStatus(status)): + match overlapBehavior: + OverLapBehavior.IGNORE: + pass + OverLapBehavior.REFRESH: + removeStatus(status) + statuses.append(status) + OverLapBehavior.STACK: + statuses.append(status) + else: + statuses.append(status) + + + + +func giveStatusTimed(status: String,duration : float, overlapBehavior : OverLapBehavior = OverLapBehavior.IGNORE) -> void: + if(hasStatus(status)): + match overlapBehavior: + OverLapBehavior.IGNORE: + pass + OverLapBehavior.REFRESH: + for t : Timer in timers: #for loop not looking good. maybe we can reorganize the timers + if(timers[t] == status): + remove_timer(t) + create_timer(status,duration) + OverLapBehavior.STACK: + giveStatus(status, overlapBehavior) + create_timer(status,duration) + else: + giveStatus(status, overlapBehavior) + create_timer(status,duration) + +func hasStatus(status: String) -> bool: + return statuses.has(status) + +func create_timer(status : String, duration :float): + var timer := Timer.new() + add_child(timer) + timer.wait_time = duration + timer.one_shot = true + timers[timer] = status + timer.start() + timer.connect("timeout", Callable(self,"removeStatus").bind(status)) + timer.connect("timeout", Callable(self, "remove_timer").bind(timer)) + timer.connect("timeout", timer.queue_free) + +func remove_timer(timer : Timer): + if(timers.has(timer)): + timers.erase(timer) + timer.queue_free() + else: + print("tried to remove timer without a that doesnt exist in timers list") + +func removeStatus(status: String): + statuses.erase(status) + if(statusFunctionsEnd.has(status)): + call_end_functions(status) + + + +func addStatusStartFunction(statusName : String, function : Callable): + if(!statusFunctionsStart.has(statusName)): + var newFunctions : Array[Callable] + statusFunctionsStart[statusName] = newFunctions + statusFunctionsStart[statusName].append(function) +func addStatusEndFunction(statusName : String, function : Callable): + if(!statusFunctionsEnd.has(statusName)): + var newFunctions : Array[Callable] + statusFunctionsEnd[statusName] = newFunctions + statusFunctionsEnd[statusName].append(function) +func addStatusStartAndEndFunction(statusName : String, startFunction : Callable, endFunction : Callable): + addStatusStartFunction(statusName, startFunction) + addStatusEndFunction(statusName, endFunction) +func call_start_functions(status : String) -> void: + for c in statusFunctionsStart[status]: + c.call() + +func call_end_functions(status : String) -> void: + for c in statusFunctionsEnd[status]: + c.call() + diff --git a/source/Items_Final/Item_Sprites/Magic Deck of Cards.png b/source/Items_Final/Item_Sprites/Magic Deck of Cards.png new file mode 100644 index 0000000000000000000000000000000000000000..934c1cc2c89ef003c7723f166dd5513c6ba60790 GIT binary patch literal 403 zcmV;E0c`$>P)Px$O-V#SR9HvFmthWrFbIV)@c>KgjXd`bv3uwZmTbYa1`$e2+s!{FZiTN89@Yu| zd`&&_FU#_=;_Uk_=4uAOJcms?GE*fY)t zdaqMJ@Oh~Vk{VR4W(9Ko?s^_j2Tzn0cPEWr>qJs~BFX{K+TIezo}m*`OG?+?PDHgX zxPT;xsMhZR2#wZsT)Dgg#7=ywd28MUpvLDGs7rwwpAQ8ndD%1rB)P3XB^@utFiUVQ xa{Al?F9*O#4xjf0aQM6$02j1;?OF->?_X-Ks4%~ckIeu8002ovPDHLkV1iI9tK9$q literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/Magic Deck of Cards.png.import b/source/Items_Final/Item_Sprites/Magic Deck of Cards.png.import new file mode 100644 index 00000000..31b624e0 --- /dev/null +++ b/source/Items_Final/Item_Sprites/Magic Deck of Cards.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rdfoxey27gip" +path="res://.godot/imported/Magic Deck of Cards.png-79c8b93f3f1d9ddaecee72e0c1be9dfd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/Magic Deck of Cards.png" +dest_files=["res://.godot/imported/Magic Deck of Cards.png-79c8b93f3f1d9ddaecee72e0c1be9dfd.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/source/Items_Final/Item_Sprites/Plunger pixel art.png b/source/Items_Final/Item_Sprites/Plunger pixel art.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b25d39f518b696ca3a611062a0a631b074f32c GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ydu{YLn7Rh zQzQ}&cy#{lJ{g$J;NNqL$h3(|IPWGs@#8%qsNk^5xucBX z&Zk=W!m?#23RwdA96nl}sM4}(s$g%>DSf1VXR3;!ufTf-rCPpX#f_Pb8tek!%zkPy Y%&U|%@X+%r1v;F;)78&qol`;+01H7|TmS$7 literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png.import b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import new file mode 100644 index 00000000..68e45fc7 --- /dev/null +++ b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6sjrjy3ts348" +path="res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" +dest_files=["res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.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/source/Items_Final/Item_Sprites/Stick Sprite.png b/source/Items_Final/Item_Sprites/Stick Sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0a9b90c68691230e30d550d9cd343c66ea9dbb GIT binary patch literal 344 zcmV-e0jK_nP)Px$5=lfsR9HvtmN5##KoCWfS_JQ4VP|D6*o!yuG~Pt)1#27aL~J~PAl54*3=FdC z{F&^s7D%Bq5 zsU8AAx*Px#=Sf6CR9Hvtmf;PAAPj|N4i>w(l5q{=V$5-uUV^E$Ek!{z!GDJ8`}ztkZfN{C zi@x{%Yl)L$LI|SHVd1J62k{Po8kt8oOb#>$h_p38Ob&Dae0)lmA*%!cQW`)z4Qz+% z0L>k!wGYP6xEmGIJUMYn)o|f<01#Z(WuU^?hN2EoAu0~<_<{K60MMFiwrRH`oMrq6 z&HPXTZo{1c;Oec3LyP{G;3_~Av1AN-cs9HjfU7lRm$IDhAJKu-H5~5|=xC{UX?^=J zxASQ;J_qJG0NRbHRJNQmr)!sEvliO{nmh0VD6)}-Px&3rR#lR9J=WmrqC(Q5?rVnwW^YO}j$6{y|7xgu*n)1o6<#ONYcm*g?cYhoJBj z9zr~52Z_DfLA*qV@Dfos4<(2aN+ij;88W%6hU<=wi0)yhgU)kiXLg-wtqA(UrPgO{lA^f4#KX%c?HRQifCnAxBKG>-q3!ov17uRL?gT12x618~ z^N!wg3^11J9k67J;J-c>Mt+$tTKKs!u$h&HR@DB*`act7k%9 zS;XrPh@xvRo@c6a0vPg-3uAqz0K4&+fYFOlXSxLAfe?zaZ30o0Z2==mKCw59v(A>2FjD}ZC$0Z+{4Xx=9lX+#ihpN#9qKOpIL@Lb;5sxNP$Z^#+1Lus!RTr-fmR6QBJ-dY0cYM?B zC7GRG5PiLEj79x7Sxz=k`27RwfyPe0ME-t)=^a1vVKMSyF>hB_ZI6N_*mHMS0|>SR zMJzlUCfE|BrL9Ro=rMi#$INrf$1|B`1+atBWi$kscsY>sACprx_3>NAYb@K?ZPx%D@jB_R9J=Om%ne*P!xqf7sL>Wsl=p^?BoX#a+C#>t*{`FK!V9T6(b8>5CcQ_ z6U<&Qq!I`r7CLocLQMm0lpzyJic+hvAY~xKV=&jajU8g=nT0b&wv+qi+;iW1hW}kg z)QzTHRduTX!0MxSkoB4u&JuQf-765$M9)>;~fY7GM7JO_EsQ>;P zbmGp93!u@3DF>XLJ)^aC=tF>H!BfSmVU?D3)COj(1LaIkl`fsaDlH>Z5p?3&^S9`5 zAv6O3-SNl(`1!*Kb>hkTEiI!N2>`I!J}~wNN0AT@>?;dH%mfgK*4E)M2$7jDES!hG z0)W?!pc6qCZr;ASkPERwRLW)WKBPtL{6$?Nh zHeR`aw_-{=k_IyI9G5dWW#2Uc{C2pm%j@@FW3?i-10r!EI31>G#{Qke00JSIkPR$u zD;5F}h+rlFDur`%e_z|aE+Z=19~{k<1+Ax>awex5#VjlNKgK?N^J!*{nMbm?>W)VS zJrq4S2@<7Lj@#u-&JSUun8n%Ii>$M72*V^>IlxMOiM870$f-yLKp+~$EC3H5Ut`km zsHR<=0!a-3;G6mmcxQ;-uH&zm{|q1~*)dNl^>@DDs;K*=MvHy{@K^KexE)jW00000 LNkvXXu0mjfxyBU8 literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/baseballbat.png.import b/source/Items_Final/Item_Sprites/baseballbat.png.import new file mode 100644 index 00000000..8480338a --- /dev/null +++ b/source/Items_Final/Item_Sprites/baseballbat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n8kc5ecpojp0" +path="res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/baseballbat.png" +dest_files=["res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.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/source/Items_Final/Item_Sprites/baseballcap.png b/source/Items_Final/Item_Sprites/baseballcap.png new file mode 100644 index 0000000000000000000000000000000000000000..e904fe88b64b0d5c613ba695e52ffd34292363f4 GIT binary patch literal 642 zcmV-|0)737P)Px%JV``BR9J=WmN7^hQ5eVn7D)yVGE|dH2XcXf5(nWjr9(>xMJI{46tPQ*Md{$u z$wilT3KR+z2Z^YNn~Ugl8FVtxA)*|_!A!C05IBe4avj?5arf>ecP|l2A^+*#yLa#Z zd*8kHeGllXuYaro*$?9Bq)X3A!oY)dBt1u00MGR)W^A{r41mGJbllWR(lCQjjLDFU zlo1`aV<9(DWc@E*0_9c9m5oTp!L({6rUL+M$3iNTXYX(8XGmr8P_-qa zhG;u5o=&>yk+-aEI~J6fjv;l}H;y0xK-IF+5YM8RcTy^o$8G(LwJ%SBrLUX5%_+H56yB_3c43@F zB8sFVAkvjt!R7T245`ETw7iIwwfUz7@a6%L3ahVBE^R>7vN$>1!TP%ruFMLeL^3oH zMbUBj0*bBU{A2?Kv%>nDce|nAcJ&KH8?ov)r<1O?(%G#l_%@l6fykIdwZc3I zrs$5fz}qG>-khSs*9g+&!rwxrjROFdrVSrNXu%L=Gv1u!g`iyUd1g8=XT4ElzM-3t z51ALpb}S*t%Gx|LCbNt>=JMu17gsVb1SJ~2R6Di(fKfa3be|)TUan?60eB&R;P2|I cum3{70j$8}NTOV_@c;k-07*qoM6N<$f|V*Nl>h($ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/baseballcap.png.import b/source/Items_Final/Item_Sprites/baseballcap.png.import new file mode 100644 index 00000000..bdce6f60 --- /dev/null +++ b/source/Items_Final/Item_Sprites/baseballcap.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm5a1jhe6ojrw" +path="res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/baseballcap.png" +dest_files=["res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.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/source/Items_Final/Item_Sprites/boxinggloves.png b/source/Items_Final/Item_Sprites/boxinggloves.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0b93388a74208416b6207347299c0af8ff4e9f GIT binary patch literal 624 zcmV-$0+0QPP)Px%DoI2^R9J=Wl{;_RP#A_E2r8z=MJNqwAXOxfWU_>mKajb5FH^Qm{DDqYe?Tf# zVrrL4*(y=b3|)y(I}xc%l}LdSmdfE$C<1ptrucG>UFcA$yqo!szxUz09K%K%{qKtX zjU?riVT)p~etedCtPN038TR96*MYIu@9wi5Q=|}U0XXKZj|1VEPu+*qlNz;dBhX6- z5LVW5%CMW-7AKhtp)tVKI8NuD3J?g95E(C*HNEX-X}&GlP2kbsD`dpx)rkdhp#Pm0 zg*aJ3|I%mJTyn0x@WZX;%@ zdL)QeTcKhV=fk(6q(dlzXtfnuZ3R=+g{5^=Pij(t&^3(O4#&u8h4XySo6^*_RtFHt zyDbO3`2|+jG}m*O0s(5>MvPo(@d@Uj}IoJF(r|p6xYv zN-vv}NG&+YT!hYow`yU=e*_Supbdy(=#}(^BhNot*KDJIQojIt%I7|uO0hKn0000< KMNUMnLSTXp_#a&W literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/boxinggloves.png.import b/source/Items_Final/Item_Sprites/boxinggloves.png.import new file mode 100644 index 00000000..773b8950 --- /dev/null +++ b/source/Items_Final/Item_Sprites/boxinggloves.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxu2g1kcx6k20" +path="res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/boxinggloves.png" +dest_files=["res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.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/source/Items_Final/Item_Sprites/bubblegum.png b/source/Items_Final/Item_Sprites/bubblegum.png new file mode 100644 index 0000000000000000000000000000000000000000..30438077f0c370ca04e06afdba12fd6aabeb310e GIT binary patch literal 812 zcmV+{1JnG8P)Px%=1D|BR9J=Wm0w6xQ5?rVi?m=dp}9R6DkwEH6%mY2=i%^#hrgZX+BI>Dvn}d>*0D&_wLTA)5m>Z?(dv? z&i#DP@0{PckXK%L<)G^3-c)sSZ|W$%bu8D3WtBA?g^A33WF|Urygkewkr`sHBCS z*~{=)w;>&_*5a36l=gJ9y|9k4HEJ;1no)A?5 zyJksrme+QsjAg|DB$n5B?|4V;#X{YLbhrYx)i&tH#$!f&uY2%byGb+{$#_;o6>KFX zSeE0ZP`|+ug5kL$-Kx^z6;JL0@CPXH1&POun5_u_@iduBFgZ)uN=m8pOlTTrTa#`; zCQY|lQl^bA&8p)uBc?}{6!?OoZMG&v7Dn%PvKe1Nni-Mb?{G9X;eO$n?gz6q!HM~w znzmY-@f85h|xM3E;eJT9xv2#bZVhM}rYLr~_$cL@YL|0i}%W z?W;RbS&7-Gi1&hTNNWIuyL>y9wMt+hfJ2hU=?s`{O)2GuJ5zTKlevV7Tazq$of;Db z>s30SMHMSx|CEQ;!8uXZfdM~`m#bo{_q;@^oL2yO52L{di(WY!Zy%loz;&sEB3m(* ztEZWN9uf2XQyu^T4-EJLH1Mnj)ETigwg7TDeVdpBV9~p(xunvSZPf=dpqQ|`+?qZm zBjGMz#yO#{NfGY`Kac?>w!7S-q~QPQR<=d~XM-NtK)ME2XOU_B^ZOJRI!{{HpuTk(>0J>fP00006P)Px$l1W5CR9J=Wmpx0vP!xtAgCL<>ODBse43TjzKrP)$!Ra_f{75Rav4Zw&`QSYFyzf1ibK$?oMA!)p-IVvw zJG*Or8IxgyYa6RftzQE0vNF$e$C2Zcz0eE&0`GO(((AUxs<*_dx5QRsZ|@5El6;?K zNVo?rt7)lJEh(#MsYRk<)mwcRF_Z;{ZpvnIfs1&G1Yj$Ilhts}_93U?ps@s8#Z%-I zfqW@EI}F{FS|s{G_Rm!o@+B#&X|dIq?{^qb0Yf)sd2gH9_ARH)4sJ0+BfE%SbxGx( z*{53`njPO<16%NLbPn+pt|EbOfa${~0CzXn;V!@}W^fe(;f8L?+`$%!MuRKhkr~Ko zgW|qMAzupI+1~!}TCq~Kezq0;;NBT9a=6#`-kC7+%560!wi=UKB>E3!AA3Ibe5CNP z=VRGN2LJQ22Tnw8F~bgk0!~&79Jz)K<+~sH&3j>lZ{qiI|M<1)x8oJ<0jssxVQlvR O0000Px$wn;=mR9J=WmOX32Kpcl3ONB0i5O5Mo5tJ-yhah4Klq)Xt23vfA~mcHbz)5F*!s3ahR?*faI^Jx-U13Eor0mor< z4BT(FPQxJK4goRxW8nACk90m>{Rsd&KeI#dW}|)-d`kdO8oeFf9xjPT!~O-l#ts*C zLbV2f;#mNY$QtDCZXNLHVy#sD>~YLMrCI}i3X2RZHe0h%XEIy)hJ&jV+iSl&Vwa2Q y27JS}1cZe9&s7Ene8Z&zLSo-TrvU%w*W?>?FCriV3SsU50000L literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/fryingpan.png.import b/source/Items_Final/Item_Sprites/fryingpan.png.import new file mode 100644 index 00000000..1afdff0f --- /dev/null +++ b/source/Items_Final/Item_Sprites/fryingpan.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdh5om0n3ttan" +path="res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/fryingpan.png" +dest_files=["res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.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/source/Items_Final/Item_Sprites/hose.png b/source/Items_Final/Item_Sprites/hose.png new file mode 100644 index 0000000000000000000000000000000000000000..821c0cec857e8b7614f06836e7cc48b50af7b5a6 GIT binary patch literal 648 zcmV;30(bq1P)Px%LPh{tdxP z>DVz8+RZpa;!a*taE4?G2#QISEvXR_KN%evDk9@@b_5S*+#{l0te-jiXe zrT($*<(X{QPN+NgdT^-q?gx2{w|2Ja9rppay(-MiDON_&_|=OBdl2e?WKtTo6K?Hn z1JFC};}3?Jz@}|QV}CGILTE*x(>JX5Z z{S#JJH>9BH5x9W>mrfU2%?3T>yAHf5kcgOg2f)he2Bl~6l*!M)x)V~?%l8b>=_L0F z)8N!iJp;-gH~_~}SuZh)kD9%E;1Ed)5cxX@ms^)b>l-)(P>Z{B|k zbs-i85WC)OZ?b=Oo_oC%pja6Zc-iLlmyZD0KRajed0Yv3Qjq#N7A0lc*4*DP!*)V( zJ#ByF==<;SPP|{a%|TWLlMX1#Fka)yzTgjrJim1BWG)3rgGic2%F*?50mLCvwV<&U iKm?JZMU9vGZ}b-!!~&?gamwES0000Px%B}qgEshyBce}~V-KG%oSHqjP z@Bik_>@cvS|4ARdtOZHe+@+hiyjl&OJ$=RUYBf=aE?x87!Xm|jm83VI(E({*{p9c@ zea(!N3qbDzjgN%13_(kWMPlSox(h8Rqi! zEdjLt0)W9If3*Q9>8EPn15tW0^RtuB0fP>N)qPJcv0shdiz7I~r8nDcR7<-9j&POv ziHQsV=k~4uP%C>ZUH)!tZUi8U*UBDm=Ibh6D|?ZkZ+~oz$4Pq&!tHG~Z3V5z&Ns{W z5SA(jV`GkRRR?rsbO;^c(l?!^biEa#Z#um(cP#__P8J}}tP^!~4@ga%Ke_z?lS6-E z=jI>22H--vVho_Y1->nq9LnO`g58I+Dt`a{9yNaOt7rQFBt+O;LV3eubS=G9@wvQy zP2)4*+X8QR3_!t1bKe&DwlJ!v-2uy52Vit`AF0PV{18Ccw2`-88^E{&5=0uenwzPu z->})pvew%&hc+*wD2Qf#Td8dM8UlkSnI@N#j`@xN{sF2l@6mIi3dsNf002ovPDHLk FV1m&P7%2b% literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/juicebox.png.import b/source/Items_Final/Item_Sprites/juicebox.png.import new file mode 100644 index 00000000..dd35366f --- /dev/null +++ b/source/Items_Final/Item_Sprites/juicebox.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://eehdxpdnjdbn" +path="res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/juicebox.png" +dest_files=["res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.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/source/Items_Final/Item_Sprites/magic8ball.png b/source/Items_Final/Item_Sprites/magic8ball.png new file mode 100644 index 0000000000000000000000000000000000000000..4b578a1d7086c4ca1d5705cf98a51f7a90220163 GIT binary patch literal 451 zcmV;!0X+VRP)Px$eMv+?R9J=Wmc44jFcgJPe};mW4qZaPLn`PH{0gCcgDxFPr;QGwygiS?vR|xzLIr5UCGh~j`}0*7H$6D3?<2+PUo17XS+*WqQ|NAIdS)agztn--UK305Tp7=Kz4!GAXpr;tA62#t7mC zz`}?RhI6cz31;!c*gxHFtRSoa$o&1SXVcvXv0Jn`?E@o#$$T1*O0lQMt`UNy1z=&s zyRUs^%Jb%AN-p`aRsI&y4f<_Ar;9?e} z0Is^fz01x9dcI*-R^NI9e6D|t?Q|&VB;ACvC6En9vj%|P%R?bX@1n#d&;r=ZAP*tJ z>;+(S_LK;q{SE7o_8_X-%=sXyL&m$HDkJB+ph^hcZI~^As*1I(Y<$cC$BL+Gb3m~P tW!Z4egm+D-DxdT6t%|Kh5Jw$^egRW*$Px&mPtfGR9J=WmTzoRRT##9ZRZjicg|DQ5w0T zH1b04);vMED47H6cesT2z*Ah1Yw57P%qyoo1kXqSDDenie|S!pt0V%}?{Eq8${On1 zWjytrnz_T@p5&ijYkAOoS$8|ij0*eQlE%KZ-^qr8gJ&c>^)M9l^M1z=&+O?2YEj}5 zey2h=N4KC#+_rZ$04aMXqn@J$h17QM63@OEV9J}oys{<}SK<+NztP1|(9e`Np}P%v z4*1-XXxqD*l)V$hv(zZ>H#{ih0v{L=}E#@b!x-K+4JV$-Itf?2CjWhC5B@3fpEPe=m zZb_)5U+qgE+0q8Jejetx-PHhueC1TNSV%@p1w{bd_t*@8Avxr1!T2>n_1$jgq7v{I z0AJc`kZkGht6D7lF?ySj)sk0i=J-Jq-Ma+94gYljL-ITU+346T=R}fsyN9Y43!zK; zc{9fk{-;kn??sM^l8X7GA$} zLzC<3>DSyD=RV!OBq#E=Aok0nJnal4M^hOm%4lx3nk#^ z{Evf%LUbqlR@eoA#~IGVy=34oo0)AY7ILc>D}ftZ<(hts*K zf&GRebPu6Qz?fa=#tV=G1Y+7_Wp3!C8AKrwhW~e_DCj~_0+fKC zo?`<5nQpVOq3;y(LX@VB>i{sfI#B|C-C9Kn0O)`3Gt8~dy!idWS>%Q2lIs*Lz})IY z85u)bWz)n}a<%)P=B^pmDf&g!?C27Xw-0df#5bC_N}Nq@^eGnYfJ%@}m^-%=EbC3! z?C26@FTG~CX0eNC*^km@N0$J|6_Og*4^Z4yyc{7a79+j~6?Xsu(}omv%#vyV0000< KMNUMnLSTXgIN0g{ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/marbles.png.import b/source/Items_Final/Item_Sprites/marbles.png.import new file mode 100644 index 00000000..d1a1e42c --- /dev/null +++ b/source/Items_Final/Item_Sprites/marbles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cam6hafwuwn0g" +path="res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/marbles.png" +dest_files=["res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.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/source/Items_Final/Item_Sprites/mop.png b/source/Items_Final/Item_Sprites/mop.png new file mode 100644 index 0000000000000000000000000000000000000000..c9d46a94bef731e51cab934786f0e826bbff5b72 GIT binary patch literal 562 zcmV-20?qx2P)Px$>`6pHR9J=Wl`%*gQ5=WAScgs_i=ZHBmJS^pu2N6oC^$qg2qK7}L!nCvJxbvS zr9^P((nU%^P8`J{9aM^oLj(mIhzX(6wSx(P(qiFAZYXr=>rn2I!)oK*yL9nCy?gKA z``+*W9uID+$CVu&5t&pFT8x<+x-n3AQmH z31mk{#L#dbl~3(U;SkX+@OJ($I7E;@H?c=1&~5CI2n2yE69@`dA`k{1S|BVulz<9& zU;$O|YYSMWEq;`W**fNz7|-fEoL51Qz@Owxp*>x+iU^gHd{P<^%TG-5#~%t zfljz?XcvCe4Na~sZ|0@YAK9D;Dj{3oIBoJzUdV-bGJ$Sr92Aa-ClkJT55Bgt&feBL z#-=6$x27Lp{QkUXw;fJC?!<-$Q=(cdGd4AWZfK;JCOIe^kzSgVLIBlbxik8}=i<`X zI(PK-TZ7q0i|B^N+R8c*uJ3_rE|ZJo8vghC4KQ>a`wz&v(*OVf07*qoM6N<$f=6uq AqyPW_ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/mop.png.import b/source/Items_Final/Item_Sprites/mop.png.import new file mode 100644 index 00000000..04dddad6 --- /dev/null +++ b/source/Items_Final/Item_Sprites/mop.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3o5u4wsuwtfj" +path="res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/mop.png" +dest_files=["res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.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/source/Items_Final/Item_Sprites/ovenmitts.png b/source/Items_Final/Item_Sprites/ovenmitts.png new file mode 100644 index 0000000000000000000000000000000000000000..266d0f95a2769c2701e2a29d97b1c322851d7f9f GIT binary patch literal 748 zcmVPx%rb$FWR9J=WRzGjrKotKOVq%F90$9S57Y`K!Bg(>#Iz(M5AAliyzfFgHfQYr~ z#LiMNFm%Y|1<4=-F$82F;11Edp3i?%DzyV|Io+N8et+)Wvw?G*;~$6gH(`FeDN%!klEtmIul4td#mFm0HBcB zVl+FM{M$O-eqLF(W+PwT zqnUFeYal5iYk)|6x_${%|4&n9$-6Zh6(t*41Ak25b$LWH=LD*sLIeZ+%8BH}QetmH zfIx3JmcITd`zn~P{+4E=Z>g*yiOOlcZtQ(Gh-xae1AI3VYoKE+7zth}y+b5uUu;~7 z1bV}<^zfuIReWO62~jx^EZT~aMN6}BXBdHFi2YW#8@ku6*}hIFj*n&uEzM@{h+R^g z_bnCQO_Sj!c0#h4Pb79k5ln2^VMUzE0dk?4b68P@InlRNbc{u;a&n7T52W}b>J7&d z8oCG50kvb%3DK1>f&c>GsT`oVGYpSZMgg=m+ea`CIJEPx$dr3q=R9J=Wl&??2KorLxKg2Q;5R3#&#nQQ+!y`zj0!_07v%l*MNpt8;L4uga z4L5>7kpN;71hW*wYu>%PTYKxo67FNJz1#Zz+`HET1Ooq^ttNktBT>-%m$!-c^LCpA zizMYsg|CR001tlsnriDrsHiL9T>+7#Mlgc&e>wY#Uue*mm zm^|NC9>=y%I44)K4DDwFO~zHFl?0GhyJMB0BSj>sAsk1A80vp3GtvS$$rmC2j00000NkvXXu0mjf8?(Un literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/piratehat.png.import b/source/Items_Final/Item_Sprites/piratehat.png.import new file mode 100644 index 00000000..f82fe5e8 --- /dev/null +++ b/source/Items_Final/Item_Sprites/piratehat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bng36643tueog" +path="res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/piratehat.png" +dest_files=["res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.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/source/Items_Final/Item_Sprites/pocketwatch.png b/source/Items_Final/Item_Sprites/pocketwatch.png new file mode 100644 index 0000000000000000000000000000000000000000..2a62e81650b35629762e1c896fb951d62b94d458 GIT binary patch literal 681 zcmV;a0#^NrP)Px%V@X6oR9J=WR=;c8Kp1_l+d-hxsU8c4Qc{YtXc1jPjkZE4G?2yMsX|LB=pQit z2M$V?l1_mvH7%6RBE?I|;zgn^m_VT5!SNJglEH}UAU^dZpX58&rAyvq-+lMJ_x;ix zaD)Ghnu<}>_c;JOc|6CDpC;%x0MxA`B_C@G2t9*GQN48k&4(8o5h6v@_c?P+US-1^ zlQYNUN!(ttOX9Y4T?wIQtRycA5y_Ic%_#tF5vw8(J%fjyv9vFeMSVZBsSxT400YZ2$6NCOsGTY+$RURE}FJ zDhX_Gj9{lFCGYO;>$qACS?Z^gQI>l8Kb?&JsuWroxO?wDfP5ypyZh*U{kU$N<#&My zA`|ORB8ucxiamP+0_gQ45{r;UPHS;bO@USkfIrPwHUYZO8pAR%Mf|fdyu6rgJOh;i z+=J`dd3cD1+rjtXK~4xDpM9O^0fi~}G<=9Xq#~%XtnN@w3}ocvMH4{0%Dvic=-U>5 zbmt5JAie{Npm)P~(Zu^Px%sYygZR9J=Wmd#64Q5c7xaiR;M2@Oos!jbUOBs5X!Mr2?FT{MbWi|8+C8?Fl4 zx~N4+>sqvE*-A8sD1rzHMqDVw#0)i8YfSuh>_fBDVmjCRIrqa_ zt4}KRrT9i~SJ(42Hh0?IJ+5{GkZe1HR+?o?Te3lTW}rMX8mVpdwN)rID8#DkKPws8Q@}w;rj`DQ~t>&4F z9|6e7;L9}6UYrIXetm_3zB$IpiOZ?8JbZMgE=WTV^WJ!;$eybZttdn*3ILa0H8cL? zn{Dhs-yA#131VG2+xZCv&>Qa*H{0KvV$q61=2sGcoz-b}R;T%Nx6JtS786K42wwnB z<^Xr!opM~gRReu<`j-+IAdI;+3kyq4uJilKz{cmFeug=!p1E%T2_ZrJrrv0ty`nm9 zL!hrff&lE6)*SnHOKYxuPV)Q@RI2k7PDDw4-E}l`Q}sh0&a0jPzB5ob67@UOQS;@+ z-~h2yPAs%s;NJI)4k1A%Cs+0bB;~pVu~bgTatiR6Zc0=4YYzM#nKjsGl_zf-?Kf}`pWq1Gp002ovPDHLkV1lA)R(1dY literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/propellerhat.png.import b/source/Items_Final/Item_Sprites/propellerhat.png.import new file mode 100644 index 00000000..c08d1f21 --- /dev/null +++ b/source/Items_Final/Item_Sprites/propellerhat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dghjg34gr46gq" +path="res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/propellerhat.png" +dest_files=["res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.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/source/Items_Final/Item_Sprites/puzzlecube.png b/source/Items_Final/Item_Sprites/puzzlecube.png new file mode 100644 index 0000000000000000000000000000000000000000..29e0f53377fd273642911cf77698655b46426381 GIT binary patch literal 737 zcmV<70v`Q|P)Px%n@L1LR9J=WmQ7C+Q51%s0WD}#Cl$JA7u6KEqa+v?#uzaq`~Ve*ZVVWO4N*6& z6r(E=6I@n-gpC10ObBcZs8Kg1rlD%AA5buS2yIM(ifsdRQRdQVr&Bsx`zDjzd+x{k zOzt^%21+XFf0tx-;R&~r%8q?s2o$|vQ46w7ElP`MCj!H!VDe6K*j*{vR+SUCIz8Nf z)C0i7dtI8bXESd_`pcy?ynofmf-YPeCk#LfahyV;>pxpFfPoyJ3Gt+B;^JG;(WI@dv$y_62T`ac-_0z623Ong+_{Bf?zOO4!EYWQBPE z`_@n0xLTgc>N7cGK1snRDQrjAS)8n3@XZVJ0BRDB$QBXPE6q%EKpaaU^MU}Ii68*2 z_K<)WpYRHZ*g}}tLYT52FWHW+<8@2)DRNHo{r!_a8TXw7t@aR*zKGQO!It!6OZtUj zT~kFB+N~0;mu`s&~W29ruQa zr!OK)&V1GQ!%!%5y?KDlO?q*qAYxz`;n$FM&3;t$FOPx$u1Q2eR9J=Wma$6$Q5?s=mxmyd$gM7+)e;dRC=cB14`^s~agnxy{)gt;q6Qa7 zh1TF&N_Z7$gM(1%5V*x5g4A$&P480gz31s!6x?_F{eF-4{qVc@?)Ly+zUI`R6tg~W zx2$FDx3Y-Qu-(I;6k7^}5Fn6(sc2=#!qX@!F5GIOO;b#!1}%>)>>d!7tD1N^jn03YE00;o?n+#IFG?*IVc znq~8G=*5uhN$Ck7n~$Sb?s$T51t9wy&VrZ);%XQ%iRJoLn#jo4pVb#o^s9f+&omPN0000Px%?MXyIR9J=WmtROzVHn1L8zBv^hJOf&hzev75fj5T)<`HyL<%-yL`-Ty5e$}& zDf9=rSu%BH7opBdyx7GCg^3qI!a;0a?IHxxx`@yv=@>z#$k^A#I45yVchn-O2M&Da z{a(K3`JVUvKF)#v_}8IPlk9425o=?i7Y|jfu@-yO5cfX!12B>Z0#IAw0T9~}vY`N( z_|cOe09c;J0jREgOZz)F8Q#!+_%zx(X92`kMC29VYHSgw9ykCvH;_iM1UXSU1Axa> zOoBcfULOGALzlP@Oc-rqJRVggV$%}z45g{Ayob$a07e0D8x8|5DiP}nkayoRltxM}VCygd5N(^wCcL@=K=a8i+#Lqy>m5jzAeo6mX@5bRZ{qT| z0FosL7Y4HArZXfORscxU-%#=nHcgTa`LT|AvO99MQe(8`oR)mZalqBsBD$Mqly{qN zAM^DNtUwqrJC}hfpqDY+09ak6SrN1%B^NLk%D$ceK(W|bQc4+N03=Hgb11`D|6V1> z{IZuwN{e*$8fHLBE|7TE2l~PVUP~ z#^X_q8H6dY1V9X(LT(ByfvcEA!wMCHMF7fCB$U0RIzx-#)fFrtZxhOhq_o7mI%2C9 zb$ET4oy$a0TEc-gCEi}HC+5|m<{0KptTEce*v0FLy#RK7Mj4v|OWbx9D{;9u%+6(1 z0yeyeWOCW&NT7|1!6Kz3t6?4WkPi7(k;4Wh7>`Fac6~A9SymoC6Mt~ xl|l$1N-FE}y0EREib6!lPx$$w@>(R9J=Gl|5_1P!xvWTL?m+iWGzl)w>jNaIk`_>5%ql<(8z}dBvLzn)9 zu37BhA81qPAa2(dxezEK1tB=x4&jCvKbntgD1DbhE+OZ+=RM~H_>1Z_>msXMXW;{r zQcl;~BVQ&QhuL`$!Y+9%^>5!;<}h5%Vtq4}1%OwH z#xmzWKV9ju>_`nDB_a5tg>gGCMtUa_h!Oz1=mG$Yje-7pLMCrs92BbAEGyXuCZ+z( zgYlRxN-EG;=3r7PEXMo>@Sso?R*7vvb~Oi&n-YwT;h(1lkhc# literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/rake.png.import b/source/Items_Final/Item_Sprites/rake.png.import new file mode 100644 index 00000000..3ee25a38 --- /dev/null +++ b/source/Items_Final/Item_Sprites/rake.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv8o5xvrm3cm4" +path="res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/rake.png" +dest_files=["res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.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/source/Items_Final/Item_Sprites/roller skates.png b/source/Items_Final/Item_Sprites/roller skates.png new file mode 100644 index 0000000000000000000000000000000000000000..2db0eecf4af854fc5d4466cddc0d3fb6227f694c GIT binary patch literal 990 zcmV<410np0P)Px&mPtfGR9HvtlzmLiVHC%|H$!#jrG>J(NlHnJR@Y1zl5wedNlmO_&AVk-e_-Zi zGs{{bwP9?CHWs4Gq}WoTrJ1}{db@?DytLgS)6dSa=eOVO*1dVzn(aRS{C>~#oacN$ z=bYy`D)jSE^|L-~0JaR+GVuRoV8!LrlIvJcq=d}13LTW3EEx?3RHmj{wY6$MjVe8H zwp91N1BQrr5X8V^d$@lkohvapPj*g21|!Ka9DW|daQ)R&Y^f^k(N;9TJ^_$%V%$`T z05msFqi|XzpPx~jV*()na{QurpKQ~7wERyX-GOQSw*Z2ChNHadGXs1z4u-w@8$6vy z;nMPW*$+XSa#@55_bwbQ)1y$kQqII*0nC}@Eo}^Sz=!W6klHzkqf%=$4DoQoE*XF_ zrPUabQPhDDj}ct99K9Z!f4u$k3{X@lxy=aKw;eM|GdU_6WknSXQNCk`89?^r1h(Bd zBmk@T%d9Nw#{t zgcJpBTrF$ElHj2%EK*KU(>Qq|9g#X6Vp?kPwzinpNL&chlg*p7oG&5?(;#u`4NYGf zU_6^G2X2yqYZ<$x=Z)>~9y1zc53<<_y=SE`Im?_f0Ud3vKxZBHW;H-FvXdjGkr1ro zuMigE^tA{uN9!$x&5L01uI2)6CSnjobJAfv3J8?NYuX&-eJ}f$h#MbfQJ6NRygR6R z{=y_^d7=a$j7~r?>mX)tuG7~qu0|cQw(c0yT z_OBo1rRiEn)YpB+`q*{6*7d1|%Rm5BV;W9b87892NkM6~*`=2k4(?wjl{|Wi#%5Op zjrnzPR72k(CVDC6>vpNA5gF~=;O}8%2pAQv)l^_WWJ&CV`i?`<>o+`&i=F_jHkf@W zp-d)9h{SDyaCUab#aoStUEt0K7wWvFTz$3bw*HWGJnf7LYWP{TXP)0A-OYcDC(rB=73l&mFBj}Pe4oV$bnBM2X7IFTF$298&%%a) z>>i!ZM1Se{kyU1b-CbF2#eIPi5qFQSFK7P=KwpGPx%A4x<(R9J=WmcMHgVHn3h@tUYK)R4%?{YLhUfLVjW4HUNV{{!gAQF%A*Z16*?ZpySJ@FV8b5 z+d~Ic~iNoR$p>korK~G*i`bR%rTlkI;pt=R850p5xZS ze5l^;>^RTgdxq zS2iNqA>Eo4n>Q*MU+zishi~weX22bwI1xrAL$_ve^Zpen`R3-gP;IP$J^KdWSglG6 zToJ=@kUaSIkl+JrB||)aEcg4k>lMWEMw+^5jwS#cGjfgSZxKfh3PV^o&D8Qn+KXjg zFe*7H{*po1mQ{!WDfvhOfPx%uSrBfR9J=WmcMHgVI0Pv6JwUd&?_7q5~!s#QcXhb!3`Y~L4=x6>=1BBwu1fx z#{Iff=pg7Kbn6sImmm`DB;_Dh{E^tCwH{hXF2I z8_>wq!!B-eP2A2;08i~<%^H~jvr3A>ywEw^`t@}r3S(rlKZs|YIoGk-Mqq}R4@Jmi z>jbL{!>8kQzTdG{Ww0iY&~6m~>%@Av1LanQk^Mo4y)KfRFm!_V6Fu-cj~ibmhfb&Z z)DhFpj`N#q8$ntN3_+9>g((I!0Kj3>f2!$TE9@9xB!Y6Q!hjQq2o-6K2RMPy_R_sO z)B6Ah>vRqbu(Cf0G@Sw1_R2h96o5`W?S|OvPyb#k3|{8}z%&yc0Vo8}k3;pTp!31& zJWgU2l#Z^!3`s$q6dwy<2BF31NoVfvV*O1Nv?Fc`y8<{3ghF^J?i#=dV(y054vc*X ztwi4ontL&zA(4NCY({eZqvZ*JLc~^bCqNhE+dIjxv2RHzha?1cf zHn;MQqww4TmJMMsmB9S8h|R4$({6Y0cKbD!a?7rw@C1;}NMtdUK%-Xuvu1>dh!MvS zo&Z=jghs83?0z=dQ!9SY58Wj>56B8Hp5L?US{Qf~|R6Op$CxBA<_b zkZ};6Zb73~MP07j?thTC831JcG5YfW$@XTr0?1}0!m=Sp-%E-)ux-^00000NkvXXu0mjfrwv@? literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/safetyscissors.png.import b/source/Items_Final/Item_Sprites/safetyscissors.png.import new file mode 100644 index 00000000..f6088e3e --- /dev/null +++ b/source/Items_Final/Item_Sprites/safetyscissors.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4xjbdxvn3i2l" +path="res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/safetyscissors.png" +dest_files=["res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.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/source/Items_Final/Item_Sprites/soap.png b/source/Items_Final/Item_Sprites/soap.png new file mode 100644 index 0000000000000000000000000000000000000000..aadff60a19515e8dcd07e7f59204e0593a8705ac GIT binary patch literal 880 zcmV-$1CRWPP)Px&DoI2^R9J=WSI=u2K^T48M6j3A1QH6eWWkdw0ZVe&ix9kdu_s#)ym&9lrVu@e zHz_8x1U97o##K!5v@2Y4VI zj+^~kYb!=W2JsW&7_^2r%;4a#f$_~01H;~{$v0E z$W|+;U#O;_Y_)=;V%Z!Aj65i64U`Hw=DrIFn0IbXwsbfSrL7_+2}q?A$W|-1@uJo+ zlaz&J*AW+Tz;K$B5;!WBp|n*rwH5$l&QzMMtzW2!h6MD6I;I2X-hfX8Smgc50JM*i z9~H|8{4`DHQgUE+Os_8kiwmIS`{|U;IbbAIe=X2{B24 zTziG2l)$F2fiK@DCb<~oadqf}7eqj_K)_OnZo&usF!B$RbBq+onk8HJKb4~>>>YTzc zNyxk)&z{F!!)jDLFl)PC!m;3pfUeZI<3km_q3)PW!~M6&nF6dLy4p+x6~ub~`H>Ss zT;CV2myxd2xKn@thI6-LHXXp1-0O+wc^gs@0UqXUMsGd}FLF26RxI?rB66NwUj}gh z(bRFHE$SRFURsOr{Wh%sz*yUR=j`|3t)nvPx%F-b&0R9J=WmO)6{P#ng;$%X;Z9R`6}T!(`VR-_V&Vy}8_MHtp9=wKHi?7Tx! zaiy>xJc;13dQf+e&3Y?4D2zy@=%gw-SXqR0P@JGL=s|cp)MR#B^8SzJAm|4n5Az7UwY@PXYj=t_0WQ@9bq>SwdHL zKb98f9lhi6B<7|kpqI+n$*$B6&?5)fO7aJSvjKQz2_vs3@pXUCy8raKugY(RPx&)= z_tA$>r5qQ+(Ga`;jE(Gnh9}c*K{!b-m7$I1pry{S_T?cGr-xhsZVwzyKEe?IZ8XQT zVq@b3TIwFxCj@Z%VjE3~4rqtxgmPlx08qy>wD}(3EVgNT-@EYbpRu#zg?j)z2z~I$ zpWxVL#W%A>2H-w|s}T81h^9nGCGg5j+t&0dKNW!tU_t<}K->@)Aiww13jQ0!&hILK z9fWPTs$5>RkO25is49S}aA#H>PM6~fWa}GYl~fhvox0l$pV+5rH-C`#}& zm#agZq$)6q63{@(r}cnQto#E!A2b+!K?}$nuSG(yq0tv~E!Y(4ODL-EFXQe4h!g~X z$Eh)Q0qhEjg8fh24MUF{VBuc{p`z)AR?=>W1Rx3_5>5s%At*kP@LOFA{RZOe*`o6% Rsc8TJ002ovPDHLkV1myqAAkS= literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/soda.png.import b/source/Items_Final/Item_Sprites/soda.png.import new file mode 100644 index 00000000..5da22444 --- /dev/null +++ b/source/Items_Final/Item_Sprites/soda.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgtydwnlm8cga" +path="res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/soda.png" +dest_files=["res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.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/source/Items_Final/Item_Sprites/spatula.png b/source/Items_Final/Item_Sprites/spatula.png new file mode 100644 index 0000000000000000000000000000000000000000..f675b6ab805d62e6fe93d54269c1062fd765186b GIT binary patch literal 555 zcmV+`0@VG9P)Px$nO22>J+oRcdE4qFr0IlTcOgXlv3RY1Ko+)IW9G$7K-c|*xsKR>NJpDi( zNJ6xtb9T3D?9^TX5cn=A_Cypp4!^p1mN=W!ho!Alt|);YNc#I9zS~6 zGgmBu+WQWH?^4=w4G2J|(P4RI6@X74-tcbsb_%UME`X08E{p7+O-th0v&VUyXL)HY1NAYOwY_3km;FOs+F<< zsaDFjew0M7p$19fD3iGuK)Cbq21FKf$k_`V+f!3>3udhEyH=K7Fp&qKTUn|Vm1BD< zthd$X%P?2NxzibNY)>scw@KpYuDSwRS$g<__E&^ txj78zhPVAjjU3?T$$rmxRMr0%z#lZ`6lR$8B8~t6002ovPDHLkV1g1K1aANU literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/spatula.png.import b/source/Items_Final/Item_Sprites/spatula.png.import new file mode 100644 index 00000000..c1e52018 --- /dev/null +++ b/source/Items_Final/Item_Sprites/spatula.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n4gexuvjvwru" +path="res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/spatula.png" +dest_files=["res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.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/source/Items_Final/Item_Sprites/spraypaint.png b/source/Items_Final/Item_Sprites/spraypaint.png new file mode 100644 index 0000000000000000000000000000000000000000..2395e8903426c690702709aa1ded3415de8bdcb1 GIT binary patch literal 527 zcmV+q0`UEbP)Px$$w@>(R9J=WmcL5^VHn51NvWWTU}_|4kSGVCgNcYsVMY|{mSg`-dqYEO5Y-gb zQb}`#IVgfl23`%KQipM%IJ^yYrsm!0t73!S?cV3thxeZ6?g1v6Xo!kN;v^c0ld%;h zgb04}f2Wb;qc7WepLBoNvG00cyQ z3Z)uJKVC>ePyu-SG2&wwoSqy>`h`|D06-Fg3P8AGAHzVWu>t_9{A<(RdS*ANk(S6c zP!kG;I@JmzCn|tKsfI+VF6);_)&DeTr>L9I;&$SJ`+erP**3erp@7Bh1poXp8UT)a zhiz$D)UGoufX!zyBa??3pc_ypKrfmP{D zVqvceFshKujR-){=As?|P&IzGo$EB#p2l%#KOP)Px%_(?=TR9J=WmN7^hQ5eU6mXbgr1}|0;lchq;AYu;-2QjpT&_ba$Ag%3C3U&~| zO`YuQQnZ^(2OXS55Tu1dL25w@2bCyd;k48xF(P^r0|m2Ohs&M0++Ct}D24nX5Werd z_y4``eR(fXS6%;D4b_q(!_%6o=3VoG;OE`+aMd-g1TZo@tpSMlZ*#*RptBaMyPqej}FY9}Joc#n)vl4R)YZ^d$Wy2h6tHA5g=Ky4K1rF6yW~S!384aSUdGm8K z8U$c>|A-c$k)iQ^s`bj;!kVUOn)dQ(+?Kmu8JK+Yo>!wU0EmQq42}2eiD!2m7gv5B z@jI^{k=s!i#=HAR)d5sB&)CEu>2-xn_5c#12~w%8?PGR+Yy%)AL}F45DIp@SrjZgN zEkYw6uST@B+11{601@h{vmMS}w(;67)r7 z127;!Z#1J3)9VUSyd5dtPVuY(k5?m;J2k7L$ckBk-X}V+G568{PB67%04Hj(reURQ zzk*Dz;5blTU7qGQ+1*8J}H;cgck<5ipr~2*@Ty_fZGvdvInk< zL_$6@FR!L;`Dzdr073A(n}mZ^Ar)Bx^a>oRr+|C2mdkb#>7A?_L_$6?xdM@pkMOO~ zIZUZfj7O?T@R&K{BC3>I4>|q}Pt+n!g2!>EnOuPrwP-%k#`u^Nb2KoF(<>Whto+e( zy$1{kL)pEY88<-6rN|1AaF9qiNOmu0jyH_mUP=o<`j-r|nD6}g#Zn-XJ+K^u)1@;x z`4)iWorjLQtqHIxFEs#~u%tI*Pbz6Kt28wpBLluPpG|qGnx{pMbX`(PE8hiR{s$Px$c}YY;R9J=WmA^{EP!z_0ijEE@*tsG_>?Tfmg*-x@z)7JExaj8U;wHGb)~SNN zLKllp0g+O0l1Ssw!ST5CCTY^t{>i;M_)V9?<^I0&otqo@mmyU>Uw#eVXthN|q|s`d zH&OL`5fOO|BM}iXnuO|H!LPe-=2FOZuHbu(<1quPx(u8)kLZ4Ua8tDY}G?}?xX&pZ2Z{pRcntnt0t5~!!Z04LrdSTN{3tQawHesLMERp(haK(0`R z>|Ix|fM`@GfR}E-cHHEKM@fC~G8qmfT|xz}I5omfa?7WIm6lGxc3i1AH2}We*8v#z zgTly5HIRi5`vFiq?@3ztD=31eXFrP;N?;m%mbouwpiDT-If6nsi@{-z1j_DwE(5yY zFvAFR#GcmF19Wz-RG5J7&Xpz}WTJDWTmrV^%Eorx2s~%Nc3e?UX$+6_!6ExQ9>KHk px-NL$K*oq}IQ;Mq=!X9ZeFHqN1sM@5UgrP+002ovPDHLkV1jgH%*6lz literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/toothbrush.png.import b/source/Items_Final/Item_Sprites/toothbrush.png.import new file mode 100644 index 00000000..c02978ff --- /dev/null +++ b/source/Items_Final/Item_Sprites/toothbrush.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jn1r45u8tnmk" +path="res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/toothbrush.png" +dest_files=["res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.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/source/Items_Final/Item_Sprites/toyraygun.png b/source/Items_Final/Item_Sprites/toyraygun.png new file mode 100644 index 0000000000000000000000000000000000000000..316bc9b590c56e5743a3fcda5bb963b2b3212b4e GIT binary patch literal 788 zcmV+v1MB>WP)Px%&PhZ;R9J=Wl|e|8VHn4MpL0%hqr-CbEfNXALmILccHCi%A&3%2ciFi*7duJU zQ0XWgqFWKpK*!j@F2R^aVnV|m#A2U17KzI?r+ppf`}uuyn{#59_JPsYxu3KfKuW_+;yq|%+*E4 zrZ)(L0e=TG)~q%HQ#o=^ze3m5EQz>_OiC_WFc41j>2v6xz_I%Uw7~0dt0P$}idn%ooYD&XnpA0jR7~q0yu$d<0Wph>pg%z* z&(vQd9u8Frmt(0P`hd~As&EtZ@M+&Oe#+#Y;hSP~@m1 zLWH$t4=A=fyWhsD&BWl1uYg3*pCJ0GUivDRk+?Jf^y3j7if%7T&+l4Q0H3F|uJ%KP z?||MD`mqQxBKCP&0qQ2NC_s-=bFSJ}hsc})TYtSx(F_uGKtiO)+c zaH2rDzoal>%wjv2HmpPx%)Ja4^R9J=WmOo5dK^(`wk2cjXN^?c}`k0zjki@`bNbCe#2a=aA&t2l;;9v(j zI=DIz-E~nDciBi7AtY94!la zvj1$#v=fS%lGMGniLHC>YC# zk)OaOOc{tkfMO-~24b=o6j z->bsd`c~HWzy<=a14nyZP)hmuyc$BaG8B9n)XCu$bVCC$&V~$xZw3eH19`P~z zO0A|F8ukyG99Raz6`+_&nQSG%c!kzyKU-T}!s*$KG=u}dD$auR%>hmhuegtHXsA|( zyd143e*d7!51QT&Fe0mhzNUZ1+j_)z;WYRu|w#F=Ey=wRvZ}LcIiX}r)M{U7<-PZGibE> zz7Y1U2m#}J`{eK{P~6K3`4}3lJ_sRLTU`>~*&(Wxq0lGzRlHX}SNi5_lTBjd_69Uw zr4zy`Jjo{S1(SG=*aCptOEY3CH8IbGbsQxtmyVxkzg{)c4^9)QN9MoQc+=Qp`|7VsAM@_GEKbf2T Y0c%H?_82T|^Z)<=07*qoM6N<$f?%V7q5uE@ literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/trenchcoat.png.import b/source/Items_Final/Item_Sprites/trenchcoat.png.import new file mode 100644 index 00000000..82b59c2d --- /dev/null +++ b/source/Items_Final/Item_Sprites/trenchcoat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dna8nprqj1ifn" +path="res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/trenchcoat.png" +dest_files=["res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.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/source/Items_Final/Item_Sprites/trowel.png b/source/Items_Final/Item_Sprites/trowel.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5d4e03736cfec6bfdbd6b8c0ea817a99196e25 GIT binary patch literal 596 zcmV-a0;~OrP)Px%4oO5oR9J=Wl)q~eVI0Ok=MPkH2_44vs>diqIheDWXH^+=PNRSQ?5MqL9*XrA{h{=-Z)vk4wy(r1v9JpY85AzMuDb zp6?6iQfO`>BjzSDBJMetI=!4VhsFKrtEW#H@%qz_HZXu$b6A+;LjdTyj$HsCHi!$| zKDw?8fL$0Nt~j~^_!Sq#e-RX&eGL#W#O+&Ga9tN&*Q1`R2IvN17e*lBK6C^aB!m)R zP!K&!SakL^r+UP<#&4i?GqR=~x|CfV@I%n%MDgynXeiZ-6s(K&6A`SJqe8_)^^kV0mSMc1Kj|YYkP(nzqPU zdElg!QaigxEUzrU3q&s`LOYNgJGl%D!(e-(?71KzdN~nE1X4jDLIbR?u6Zs5fe6(B z-~Nl4XHUJ0NkRbLW~g*A41iSQpt|(a{kLd7wD|S?2LOpgg3S-_N#4A{U#?SlK22j! zEbi5|mi+%l)`5ys(%R$5S^1Xr?4(c;bb{bC4uHd2(}Pe&5h;Kl0zmd6XXTYHL=NDC iK!N~Jj$_ifBG54m9P_&vMCz;n0000Px%ElET{R9J=Wl`&`&Q5eU6id&!@NywmZ9U=`$6DQ-G8w6?0);(EVg&N4>9Eyct z$AXB>p17nsxTJ#!rB3a&dchP7G+<4n1YKOtLEm|{m)v(z6e0iRKJLBm`~BZ{@7{x% z{#UK8H|^E+rv1<0=Fz}5j|P9=gd5&`@%Fb(T%0D!dN=qbwsx#(`N0iXI~IwnQO88< z$2*!#ogPm+aj$CzHX)v@ z;C>2fLbM0wGbn>5?t@pJ?*U4ch8V2m z`>p0PD|XVzF&g%ni(Gbq`v*e+9&K5ShJDIKgIc}K=Gro)N`vFQ4)6CL`qme9U^MJI z&sx2IZd}33MT1hMLAhvfuiTN8mLEjrq5;6>+VZ(E1$Uc~N@T!mg>F-7ymNR!t=^`P zjfoA2_P~{E3ly?37E+4Xi_AxB)Z?F(3xg(>lPx%I7vi7R9J=WRliFcQ5^qVX$%Nb&}(sMHw?+kK~oeG*>mNxXAa*2G)1AIfj(h^Z$EywC4w7hlScxkFhQ}dwk3iY z)GT=?MBHvQzzZwMj59Oi6Jz-D`3TEP^IT!KM9Cf~bx%UK&q^{wXGRqV`F$MZ_mN7Z zF+MSNMbvdLD^RBP6meV*FoPEt@8HdPzY}w2RAHJXwsLFk9h1Jjishvi z1oZTtqg0VG9BPQLG5J__zHRbSC5Zbob1ZTIz}_K$mbewr!Ug0`M*#p?L>ybzX!w;X zK>)CPKk3;0{>Sd}SNg3R5=v^eS8t9buG=L!&(Z1!H1hC`Pk7bZCok-l@{{Leoc`pyYHCO3t`ZM5}}xQVZmvQ7gFzHdSzqP;^Cb5Gy4OxiYxh%)&C z#k9Eass3jWk<(u^o6C0#Smh=nvRgt#BuSEION5UR54;I?U%8^|*A3qlc>QvNo-I59 z08B^25&)zUX}o&(0>6INkV>SR%Hw-#V_KY4RmI(r!7J;W7qRmKY!R&W|8^X^=%N$& Y13@_gzp~jW0RR9107*qoM6N<$g19Cg#Q*>R literal 0 HcmV?d00001 diff --git a/source/Items_Final/Item_Sprites/yoyo.png.import b/source/Items_Final/Item_Sprites/yoyo.png.import new file mode 100644 index 00000000..7faaddd3 --- /dev/null +++ b/source/Items_Final/Item_Sprites/yoyo.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqmbec8uh8jaq" +path="res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/Items_Final/Item_Sprites/yoyo.png" +dest_files=["res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.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/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index afabbd4e..2d0ce435 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -2,73 +2,84 @@ class_name Player_Test extends Node #this is just a test repleca of the player -@export var items: Array[Resource] +#important code that should be transfered should also be noted +@export var items: Array[Item] -var maxHealth : int = 12 -var damage :int = 0 +@export var playerStat_Test_Textbox: RichTextLabel +var isMonster : bool = false -var health : int = 0 +var maxHealth : float = 100 +var damage :float = 0 +var speed : float = 0 +var tenasity : float = 0 +var luck : float = 0 + +var health : float = 100 +var candy : float = 0 #signal onAttack(player)#This signals will emit every attack #signal onGetHit(player)#This signal will emit every time the player gets hit #more signals to tell items when to trigger their effects var onAttackFunctions : Array[Callable] -var onFireFunctions : Array[Callable] var onHitFunctions : Array[Callable] var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter +var onSwitchCharacter : Array[Callable] +var onRoundStart : Array[Callable] @onready var statusEffects : StatusEffectManager = $StatusEffectManager #strictly for testing damage -var testToggle :bool = false - - +func _ready(): + statusEffects.setStartingStatusFunctions(self) + call_functions(onRoundStart) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(_delta: float) -> void: manage_test_input() - if(testToggle): - print("damage is " + str(damage)) - + playerStat_Test_Textbox.text = "maxHealth: " + str(maxHealth) + "\ndamage: " + str(damage) + "\nspeed: " + str(speed) +"\ncurrentHealth: " + str(health) + "\ntenasity: " + str(tenasity) + "\nluck: " + str(luck) +"\ncandy: " + str(candy) func manage_test_input(): pass #Press enter to get item (currently only the DmgBuffItem) - #if Input.is_action_just_pressed("1"): - #print("Gave Item " + str(items[0].resource_path)) - #get_item(items[0]) - #if Input.is_action_just_pressed("2"): - #print("Gave Item " + str(items[1].resource_path)) - #get_item(items[1]) - #if Input.is_action_just_pressed("3"): - #print("Gave Item " + str(items[2].resource_path)) - #get_item(items[2]) - ##press left mouse to "fire" - #if Input.is_action_just_pressed("mouse_0"): - #print("Just Fired") - ##onAttack.emit(self) - #call_functions(onAttackFunctions) - ##change_health(1) - ##press right mouse to check damage stat - #if Input.is_action_just_pressed("mouse_1"): - #testToggle = !testToggle - #if Input.is_action_just_pressed("ui_accept"): - #statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.STACK) + if Input.is_action_just_pressed("Left1"): + print("Gave Item " + str(items[0].resource_path)) + get_item(items[0]) + if Input.is_action_just_pressed("Up1"): + statusEffects.giveStatusTimed("Fire",3, StatusEffectManager.OverLapBehavior.REFRESH) + #statusEffects.giveStatusTimed("Poison",3, StatusEffectManager.OverLapBehavior.STACK) + #statusEffects.giveStatusTimed("Stun",3, StatusEffectManager.OverLapBehavior.REFRESH) + #statusEffects.giveStatusTimed("Spook",3, StatusEffectManager.OverLapBehavior.REFRESH) + #call_functions(onRoundStart) + pass + if Input.is_action_just_pressed("Right1"): + print(onRoundStart) + call_functions(onRoundStart) + print("round start") + ##press right mouse to check damage stat + if Input.is_action_just_pressed("mouse0_Test"): + hit_object(null) + print("I hit something") + call_functions(onAttackFunctions) func get_item(item : Item): - damage += item.damage - health += item.health + damage += item.attackDamage + health += item.maxHealth + speed += item.speed + tenasity += item.tenacity + luck += item.luck - for i in range(item.FunctionTypes.size()): + for i in range(item.functionTypes.size()): match item.functionTypes[i]: Item.FunctionTypes.OnStart: - Callable(Item_Functions, item.functionNames[i]).bind(self).call() - Item.FunctionTypes.OnFire: - onFireFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Callable(ItemFunctions, item.functionNames[i]).bind(self).call() + Item.FunctionTypes.OnAttack: + onAttackFunctions.append(Callable(ItemFunctions, item.functionNames[i]).bind(self)) Item.FunctionTypes.OnHit: - onHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + onHitFunctions.append(Callable(ItemFunctions, item.functionNames[i])) Item.FunctionTypes.OnGetHit: - onGetHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + onGetHitFunctions.append(Callable(ItemFunctions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnRoundStart: + onRoundStart.append(Callable(ItemFunctions, item.functionNames[i]).bind(self)) #if(item.onStartFunctions != ""): #Callable(ItemAdvancedFunctions, item.onStartFunctions).bind(self).call() #NEED TO DO ERROR HANDLING WHEN USER PASSES STRING THATS NOT A FUNCTION NAME #if(item.onFireFunctions != ""): @@ -77,10 +88,12 @@ func get_item(item : Item): #print("new on get hit function: " + item.onGetHitFunctions) #onGetHit.connect(Callable(ItemAdvancedFunctions,item.onGetHitFunctions)) -func hit_object(ps: Player_Test): - pass +func hit_object(otherPs: Player_Test):#otherPs - hit Playerscript + for i in onHitFunctions: + i.call(self,otherPs) + -func change_health(deltaHealth : int): +func change_health(deltaHealth : float): print("Player took " + str(-deltaHealth) + " damage") health += deltaHealth #onGetHit.emit(self); From bb8951c8c2be0df19e90a406e44a32c42466cbb0 Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Fri, 15 Nov 2024 23:16:23 -0500 Subject: [PATCH 101/110] Fixed bug due to legacy code --- source/items/Item_Scripts/Item.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/items/Item_Scripts/Item.gd b/source/items/Item_Scripts/Item.gd index eac8354e..b0bb7161 100644 --- a/source/items/Item_Scripts/Item.gd +++ b/source/items/Item_Scripts/Item.gd @@ -1,5 +1,5 @@ extends Resource -class_name Item +#class_name Item enum Rarity { COMMON, From 9d4b118533a34748868796cc4dbedb3343d09ca3 Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Sat, 16 Nov 2024 07:28:00 -0500 Subject: [PATCH 102/110] Added item logic into player and attempted to connect stuff --- project.godot | 4 +- .../Item_Resource_Unused/Plunger.tres | 21 -- .../Item_Resource_Unused/ToiletPaper.tres | 21 -- .../Item_Resources/BakingSoda.tres | 21 -- .../Item_Resources/BaseballBat.tres | 21 -- .../Item_Resources/BoxingGloves.tres | 21 -- .../Items_Final/Item_Resources/OvenMitts.tres | 21 -- .../Items_Final/Item_Resources/RainBoots.tres | 21 -- .../Item_Resources/SafetyScissors.tres | 21 -- .../Item_Resources/TrenchCoat.tres | 21 -- source/Items_Final/Item_Resources/Yo-Yo.tres | 24 --- source/Items_Final/Item_Scripts/Item.gd | 43 ---- .../Item_Scripts/Item_Functions.gd | 184 ----------------- .../Item_Sprites/Plunger pixel art.png | Bin 243 -> 0 bytes .../Item_Sprites/Plunger pixel art.png.import | 34 ---- .../Items_Final/Item_Sprites/Stick Sprite.png | Bin 344 -> 0 bytes .../Item_Sprites/Stick Sprite.png.import | 34 ---- .../Item_Sprites/Top hat pixel art.png | Bin 301 -> 0 bytes .../Item_Sprites/Top hat pixel art.png.import | 34 ---- .../Items_Final/Item_Sprites/bakingsoda.png | Bin 849 -> 0 bytes .../Item_Sprites/bakingsoda.png.import | 34 ---- .../Items_Final/Item_Sprites/baseballbat.png | Bin 625 -> 0 bytes .../Item_Sprites/baseballbat.png.import | 34 ---- .../Items_Final/Item_Sprites/baseballcap.png | Bin 642 -> 0 bytes .../Item_Sprites/baseballcap.png.import | 34 ---- .../Items_Final/Item_Sprites/boxinggloves.png | Bin 624 -> 0 bytes .../Item_Sprites/boxinggloves.png.import | 34 ---- source/Items_Final/Item_Sprites/bubblegum.png | Bin 812 -> 0 bytes .../Item_Sprites/bubblegum.png.import | 34 ---- source/Items_Final/Item_Sprites/candycane.png | Bin 472 -> 0 bytes .../Item_Sprites/candycane.png.import | 34 ---- source/Items_Final/Item_Sprites/fryingpan.png | Bin 508 -> 0 bytes .../Item_Sprites/fryingpan.png.import | 34 ---- source/Items_Final/Item_Sprites/hose.png | Bin 648 -> 0 bytes .../Items_Final/Item_Sprites/hose.png.import | 34 ---- source/Items_Final/Item_Sprites/juicebox.png | Bin 619 -> 0 bytes .../Item_Sprites/juicebox.png.import | 34 ---- .../Items_Final/Item_Sprites/magic8ball.png | Bin 451 -> 0 bytes .../Item_Sprites/magic8ball.png.import | 34 ---- source/Items_Final/Item_Sprites/marbles.png | Bin 988 -> 0 bytes .../Item_Sprites/marbles.png.import | 34 ---- source/Items_Final/Item_Sprites/mop.png | Bin 562 -> 0 bytes .../Items_Final/Item_Sprites/mop.png.import | 34 ---- source/Items_Final/Item_Sprites/ovenmitts.png | Bin 748 -> 0 bytes .../Item_Sprites/ovenmitts.png.import | 34 ---- source/Items_Final/Item_Sprites/piratehat.png | Bin 449 -> 0 bytes .../Item_Sprites/piratehat.png.import | 34 ---- .../Items_Final/Item_Sprites/pocketwatch.png | Bin 681 -> 0 bytes .../Item_Sprites/pocketwatch.png.import | 34 ---- .../Items_Final/Item_Sprites/propellerhat.png | Bin 751 -> 0 bytes .../Item_Sprites/propellerhat.png.import | 34 ---- .../Items_Final/Item_Sprites/puzzlecube.png | Bin 737 -> 0 bytes .../Item_Sprites/puzzlecube.png.import | 34 ---- source/Items_Final/Item_Sprites/rainboots.png | Bin 500 -> 0 bytes .../Item_Sprites/rainboots.png.import | 34 ---- .../Item_Sprites/rainbowlollipop.png | Bin 819 -> 0 bytes .../Item_Sprites/rainbowlollipop.png.import | 34 ---- source/Items_Final/Item_Sprites/rake.png | Bin 527 -> 0 bytes .../Items_Final/Item_Sprites/rake.png.import | 34 ---- .../Items_Final/Item_Sprites/rubberduck.png | Bin 613 -> 0 bytes .../Item_Sprites/rubberduck.png.import | 34 ---- .../Item_Sprites/safetyscissors.png | Bin 757 -> 0 bytes .../Item_Sprites/safetyscissors.png.import | 34 ---- source/Items_Final/Item_Sprites/soap.png | Bin 880 -> 0 bytes .../Items_Final/Item_Sprites/soap.png.import | 34 ---- source/Items_Final/Item_Sprites/soda.png | Bin 631 -> 0 bytes .../Items_Final/Item_Sprites/soda.png.import | 34 ---- source/Items_Final/Item_Sprites/spatula.png | Bin 555 -> 0 bytes .../Item_Sprites/spatula.png.import | 34 ---- .../Items_Final/Item_Sprites/spraypaint.png | Bin 527 -> 0 bytes .../Item_Sprites/spraypaint.png.import | 34 ---- .../Items_Final/Item_Sprites/toiletpaper.png | Bin 830 -> 0 bytes .../Item_Sprites/toiletpaper.png.import | 34 ---- .../Items_Final/Item_Sprites/toothbrush.png | Bin 447 -> 0 bytes .../Item_Sprites/toothbrush.png.import | 34 ---- source/Items_Final/Item_Sprites/toyraygun.png | Bin 788 -> 0 bytes .../Item_Sprites/toyraygun.png.import | 34 ---- .../Items_Final/Item_Sprites/trenchcoat.png | Bin 794 -> 0 bytes .../Item_Sprites/trenchcoat.png.import | 34 ---- source/Items_Final/Item_Sprites/trowel.png | Bin 596 -> 0 bytes .../Item_Sprites/trowel.png.import | 34 ---- source/Items_Final/Item_Sprites/winterhat.png | Bin 627 -> 0 bytes .../Item_Sprites/winterhat.png.import | 34 ---- source/Items_Final/Item_Sprites/yoyo.png | Bin 638 -> 0 bytes .../Items_Final/Item_Sprites/yoyo.png.import | 34 ---- source/items/.DS_Store | Bin 6148 -> 0 bytes .../Plunger.tres | 8 +- .../ToiletPaper.tres | 8 +- .../Item_Resource_Unused/newItem.tres | 2 +- .../Item_Resources/BarSoap.tres | 4 +- source/items/Item_Resources/BaseballCap.tres | 19 -- .../Item_Resources/BubbleGum.tres | 4 +- .../Item_Resources/CandyCane.tres | 4 +- .../Item_Resources/DeckOfCards.tres | 4 +- .../Item_Resources/FryingPan.tres | 4 +- .../Item_Resources/Hose.tres | 4 +- .../Item_Resources/JuiceBox.tres | 4 +- .../Item_Resources/Marbles.tres | 4 +- .../Item_Resources/Mop.tres | 4 +- .../Item_Resources/PocketWatch.tres | 4 +- .../Item_Resources/PropellerHat.tres | 2 +- .../Item_Resources/Puzzle Cube.tres | 4 +- .../Item_Resources/RainbowLollipop.tres | 4 +- .../Item_Resources/Rake.tres | 4 +- .../Item_Resources/RollerSkates.tres | 4 +- .../Item_Resources/RubberDucky.tres | 4 +- .../Item_Resources/Spatula.tres | 4 +- .../Item_Resources/SprayPaint.tres | 4 +- .../Item_Resources/TopHat.tres | 4 +- .../Item_Resources/WinterHat.tres | 4 +- source/items/Item_Resources/Yo-Yo.tres | 15 +- source/items/Item_Scripts/Item.gd | 7 +- source/items/Item_Scripts/Item_Functions.gd | 187 +++++++++++++++++- .../Item_Scripts/Status_Effect_Manager.gd | 20 +- .../Item_Sprites/Magic Deck of Cards.png | Bin .../Magic Deck of Cards.png.import | 6 +- .../Item_Sprites/roller skates.png | Bin .../Item_Sprites/roller skates.png.import | 6 +- source/scenes/Ite9DDE.tmp | 129 ++++++++++++ .../IteBE9E.tmp} | 51 +++-- source/scenes/IteF74B.tmp | 14 ++ source/scenes/ItemTestingScene.tscn | 7 +- source/scenes/demo_room.tscn | 46 +++++ source/scenes/player.tscn | 4 +- source/scripts/Player_Test.gd | 16 +- source/scripts/Stats.gd | 48 +++++ source/scripts/player.gd | 148 ++++++++------ 127 files changed, 628 insertions(+), 1859 deletions(-) delete mode 100644 source/Items_Final/Item_Resource_Unused/Plunger.tres delete mode 100644 source/Items_Final/Item_Resource_Unused/ToiletPaper.tres delete mode 100644 source/Items_Final/Item_Resources/BakingSoda.tres delete mode 100644 source/Items_Final/Item_Resources/BaseballBat.tres delete mode 100644 source/Items_Final/Item_Resources/BoxingGloves.tres delete mode 100644 source/Items_Final/Item_Resources/OvenMitts.tres delete mode 100644 source/Items_Final/Item_Resources/RainBoots.tres delete mode 100644 source/Items_Final/Item_Resources/SafetyScissors.tres delete mode 100644 source/Items_Final/Item_Resources/TrenchCoat.tres delete mode 100644 source/Items_Final/Item_Resources/Yo-Yo.tres delete mode 100644 source/Items_Final/Item_Scripts/Item.gd delete mode 100644 source/Items_Final/Item_Scripts/Item_Functions.gd delete mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png delete mode 100644 source/Items_Final/Item_Sprites/Plunger pixel art.png.import delete mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png delete mode 100644 source/Items_Final/Item_Sprites/Stick Sprite.png.import delete mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png delete mode 100644 source/Items_Final/Item_Sprites/Top hat pixel art.png.import delete mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png delete mode 100644 source/Items_Final/Item_Sprites/bakingsoda.png.import delete mode 100644 source/Items_Final/Item_Sprites/baseballbat.png delete mode 100644 source/Items_Final/Item_Sprites/baseballbat.png.import delete mode 100644 source/Items_Final/Item_Sprites/baseballcap.png delete mode 100644 source/Items_Final/Item_Sprites/baseballcap.png.import delete mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png delete mode 100644 source/Items_Final/Item_Sprites/boxinggloves.png.import delete mode 100644 source/Items_Final/Item_Sprites/bubblegum.png delete mode 100644 source/Items_Final/Item_Sprites/bubblegum.png.import delete mode 100644 source/Items_Final/Item_Sprites/candycane.png delete mode 100644 source/Items_Final/Item_Sprites/candycane.png.import delete mode 100644 source/Items_Final/Item_Sprites/fryingpan.png delete mode 100644 source/Items_Final/Item_Sprites/fryingpan.png.import delete mode 100644 source/Items_Final/Item_Sprites/hose.png delete mode 100644 source/Items_Final/Item_Sprites/hose.png.import delete mode 100644 source/Items_Final/Item_Sprites/juicebox.png delete mode 100644 source/Items_Final/Item_Sprites/juicebox.png.import delete mode 100644 source/Items_Final/Item_Sprites/magic8ball.png delete mode 100644 source/Items_Final/Item_Sprites/magic8ball.png.import delete mode 100644 source/Items_Final/Item_Sprites/marbles.png delete mode 100644 source/Items_Final/Item_Sprites/marbles.png.import delete mode 100644 source/Items_Final/Item_Sprites/mop.png delete mode 100644 source/Items_Final/Item_Sprites/mop.png.import delete mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png delete mode 100644 source/Items_Final/Item_Sprites/ovenmitts.png.import delete mode 100644 source/Items_Final/Item_Sprites/piratehat.png delete mode 100644 source/Items_Final/Item_Sprites/piratehat.png.import delete mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png delete mode 100644 source/Items_Final/Item_Sprites/pocketwatch.png.import delete mode 100644 source/Items_Final/Item_Sprites/propellerhat.png delete mode 100644 source/Items_Final/Item_Sprites/propellerhat.png.import delete mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png delete mode 100644 source/Items_Final/Item_Sprites/puzzlecube.png.import delete mode 100644 source/Items_Final/Item_Sprites/rainboots.png delete mode 100644 source/Items_Final/Item_Sprites/rainboots.png.import delete mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png delete mode 100644 source/Items_Final/Item_Sprites/rainbowlollipop.png.import delete mode 100644 source/Items_Final/Item_Sprites/rake.png delete mode 100644 source/Items_Final/Item_Sprites/rake.png.import delete mode 100644 source/Items_Final/Item_Sprites/rubberduck.png delete mode 100644 source/Items_Final/Item_Sprites/rubberduck.png.import delete mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png delete mode 100644 source/Items_Final/Item_Sprites/safetyscissors.png.import delete mode 100644 source/Items_Final/Item_Sprites/soap.png delete mode 100644 source/Items_Final/Item_Sprites/soap.png.import delete mode 100644 source/Items_Final/Item_Sprites/soda.png delete mode 100644 source/Items_Final/Item_Sprites/soda.png.import delete mode 100644 source/Items_Final/Item_Sprites/spatula.png delete mode 100644 source/Items_Final/Item_Sprites/spatula.png.import delete mode 100644 source/Items_Final/Item_Sprites/spraypaint.png delete mode 100644 source/Items_Final/Item_Sprites/spraypaint.png.import delete mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png delete mode 100644 source/Items_Final/Item_Sprites/toiletpaper.png.import delete mode 100644 source/Items_Final/Item_Sprites/toothbrush.png delete mode 100644 source/Items_Final/Item_Sprites/toothbrush.png.import delete mode 100644 source/Items_Final/Item_Sprites/toyraygun.png delete mode 100644 source/Items_Final/Item_Sprites/toyraygun.png.import delete mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png delete mode 100644 source/Items_Final/Item_Sprites/trenchcoat.png.import delete mode 100644 source/Items_Final/Item_Sprites/trowel.png delete mode 100644 source/Items_Final/Item_Sprites/trowel.png.import delete mode 100644 source/Items_Final/Item_Sprites/winterhat.png delete mode 100644 source/Items_Final/Item_Sprites/winterhat.png.import delete mode 100644 source/Items_Final/Item_Sprites/yoyo.png delete mode 100644 source/Items_Final/Item_Sprites/yoyo.png.import delete mode 100644 source/items/.DS_Store rename source/items/{Item_Resources => Item_Resource_Unused}/Plunger.tres (77%) rename source/items/{Item_Resources => Item_Resource_Unused}/ToiletPaper.tres (76%) rename source/{Items_Final => items}/Item_Resource_Unused/newItem.tres (79%) rename source/{Items_Final => items}/Item_Resources/BarSoap.tres (79%) delete mode 100644 source/items/Item_Resources/BaseballCap.tres rename source/{Items_Final => items}/Item_Resources/BubbleGum.tres (75%) rename source/{Items_Final => items}/Item_Resources/CandyCane.tres (78%) rename source/{Items_Final => items}/Item_Resources/DeckOfCards.tres (78%) rename source/{Items_Final => items}/Item_Resources/FryingPan.tres (75%) rename source/{Items_Final => items}/Item_Resources/Hose.tres (75%) rename source/{Items_Final => items}/Item_Resources/JuiceBox.tres (75%) rename source/{Items_Final => items}/Item_Resources/Marbles.tres (75%) rename source/{Items_Final => items}/Item_Resources/Mop.tres (76%) rename source/{Items_Final => items}/Item_Resources/PocketWatch.tres (75%) rename source/{Items_Final => items}/Item_Resources/PropellerHat.tres (83%) rename source/{Items_Final => items}/Item_Resources/Puzzle Cube.tres (79%) rename source/{Items_Final => items}/Item_Resources/RainbowLollipop.tres (80%) rename source/{Items_Final => items}/Item_Resources/Rake.tres (75%) rename source/{Items_Final => items}/Item_Resources/RollerSkates.tres (78%) rename source/{Items_Final => items}/Item_Resources/RubberDucky.tres (78%) rename source/{Items_Final => items}/Item_Resources/Spatula.tres (75%) rename source/{Items_Final => items}/Item_Resources/SprayPaint.tres (79%) rename source/{Items_Final => items}/Item_Resources/TopHat.tres (76%) rename source/{Items_Final => items}/Item_Resources/WinterHat.tres (78%) rename source/{Items_Final => items}/Item_Sprites/Magic Deck of Cards.png (100%) rename source/{Items_Final => items}/Item_Sprites/Magic Deck of Cards.png.import (67%) rename source/{Items_Final => items}/Item_Sprites/roller skates.png (100%) rename source/{Items_Final => items}/Item_Sprites/roller skates.png.import (69%) create mode 100644 source/scenes/Ite9DDE.tmp rename source/{Items_Final/Item_Scripts/Status_Effect_Manager.gd => scenes/IteBE9E.tmp} (65%) create mode 100644 source/scenes/IteF74B.tmp create mode 100644 source/scenes/demo_room.tscn create mode 100644 source/scripts/Stats.gd diff --git a/project.godot b/project.godot index 4f7441b2..9e5972f5 100644 --- a/project.godot +++ b/project.godot @@ -11,13 +11,13 @@ config_version=5 [application] config/name="Hallow's Thief" -run/main_scene="res://source/scenes/game_container/game_container.tscn" +run/main_scene="res://source/scenes/player.tscn" config/features=PackedStringArray("4.3", "Forward Plus") config/icon="res://icon.svg" [autoload] -ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" +ItemFunctions="*res://source/items/Item_Scripts/Item_Functions.gd" [display] diff --git a/source/Items_Final/Item_Resource_Unused/Plunger.tres b/source/Items_Final/Item_Resource_Unused/Plunger.tres deleted file mode 100644 index 95e7186a..00000000 --- a/source/Items_Final/Item_Resource_Unused/Plunger.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b2odg7j76fhrt"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_c7p57"] -[ext_resource type="Texture2D" uid="uid://6sjrjy3ts348" path="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" id="2_2bdyh"] - -[resource] -script = ExtResource("1_c7p57") -sprite = ExtResource("2_2bdyh") -name = "Plunger" -description = "Slightly increases damage and decreases cooldown" -rarity = 0 -cost = 0 -attackDamage = 1.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 1.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resource_Unused/ToiletPaper.tres b/source/Items_Final/Item_Resource_Unused/ToiletPaper.tres deleted file mode 100644 index 9876848d..00000000 --- a/source/Items_Final/Item_Resource_Unused/ToiletPaper.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://8uxqwbgx5io3"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_teqfg"] -[ext_resource type="Texture2D" uid="uid://drouo1e7b67oo" path="res://source/Items_Final/Item_Sprites/toiletpaper.png" id="2_aox3e"] - -[resource] -script = ExtResource("1_teqfg") -sprite = ExtResource("2_aox3e") -name = "Toilet Paper" -description = "Decreases Cooldown" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 2.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BakingSoda.tres b/source/Items_Final/Item_Resources/BakingSoda.tres deleted file mode 100644 index 0d987ea0..00000000 --- a/source/Items_Final/Item_Resources/BakingSoda.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://bbebjdnx0jnqm"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_powpt"] -[ext_resource type="Texture2D" uid="uid://b7rs3tdjkmife" path="res://source/Items_Final/Item_Sprites/bakingsoda.png" id="2_pi18r"] - -[resource] -script = ExtResource("1_powpt") -sprite = ExtResource("2_pi18r") -name = "Baking Soda" -description = "Increases Speed" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 2.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BaseballBat.tres b/source/Items_Final/Item_Resources/BaseballBat.tres deleted file mode 100644 index 9a25dccf..00000000 --- a/source/Items_Final/Item_Resources/BaseballBat.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://chya8oc2ch8i5"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_gvtxx"] -[ext_resource type="Texture2D" uid="uid://n8kc5ecpojp0" path="res://source/Items_Final/Item_Sprites/baseballbat.png" id="2_1p0jc"] - -[resource] -script = ExtResource("1_gvtxx") -sprite = ExtResource("2_1p0jc") -name = "Baseball Bat" -description = "Increases Damage" -rarity = 0 -cost = 0 -attackDamage = 2.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/BoxingGloves.tres b/source/Items_Final/Item_Resources/BoxingGloves.tres deleted file mode 100644 index d355c9d7..00000000 --- a/source/Items_Final/Item_Resources/BoxingGloves.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://1lo3qihmupbe"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_dphqa"] -[ext_resource type="Texture2D" uid="uid://bxu2g1kcx6k20" path="res://source/Items_Final/Item_Sprites/boxinggloves.png" id="2_ky0rr"] - -[resource] -script = ExtResource("1_dphqa") -sprite = ExtResource("2_ky0rr") -name = "Boxing Gloves" -description = "Slightly increases attack and health" -rarity = 0 -cost = 0 -attackDamage = 1.0 -attackSpeed = 0.0 -maxHealth = 1.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/OvenMitts.tres b/source/Items_Final/Item_Resources/OvenMitts.tres deleted file mode 100644 index a74d5a92..00000000 --- a/source/Items_Final/Item_Resources/OvenMitts.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://21ntxjjt6dfa"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_ombo1"] -[ext_resource type="Texture2D" uid="uid://b781y2yilgedy" path="res://source/Items_Final/Item_Sprites/ovenmitts.png" id="2_f8fv4"] - -[resource] -script = ExtResource("1_ombo1") -sprite = ExtResource("2_f8fv4") -name = "Oven Mitts" -description = "Slightly increases tenacity" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 1.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/RainBoots.tres b/source/Items_Final/Item_Resources/RainBoots.tres deleted file mode 100644 index ea00e265..00000000 --- a/source/Items_Final/Item_Resources/RainBoots.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://jdhh5df8llh8"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_aeuxc"] -[ext_resource type="Texture2D" uid="uid://bldr5242uuk63" path="res://source/Items_Final/Item_Sprites/rainboots.png" id="2_x8rcl"] - -[resource] -script = ExtResource("1_aeuxc") -sprite = ExtResource("2_x8rcl") -name = "Rain Boots" -description = "Slightly increases health and speed" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 1.0 -speed = 1.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/SafetyScissors.tres b/source/Items_Final/Item_Resources/SafetyScissors.tres deleted file mode 100644 index 8cc63a9a..00000000 --- a/source/Items_Final/Item_Resources/SafetyScissors.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://dal6qgym6pnyf"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_innlo"] -[ext_resource type="Texture2D" uid="uid://b4xjbdxvn3i2l" path="res://source/Items_Final/Item_Sprites/safetyscissors.png" id="2_h66q4"] - -[resource] -script = ExtResource("1_innlo") -sprite = ExtResource("2_h66q4") -name = "SafetyScissors" -description = "Slightly increases damage and speed" -rarity = 0 -cost = 0 -attackDamage = 1.0 -attackSpeed = 0.0 -maxHealth = 0.0 -speed = 1.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/TrenchCoat.tres b/source/Items_Final/Item_Resources/TrenchCoat.tres deleted file mode 100644 index 0cfffca9..00000000 --- a/source/Items_Final/Item_Resources/TrenchCoat.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://cc563lr5i06gw"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_7l3le"] -[ext_resource type="Texture2D" uid="uid://dna8nprqj1ifn" path="res://source/Items_Final/Item_Sprites/trenchcoat.png" id="2_rr3wv"] - -[resource] -script = ExtResource("1_7l3le") -sprite = ExtResource("2_rr3wv") -name = "Trench Coat" -description = "Increases Health" -rarity = 0 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 2.0 -speed = 0.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([]) -functionNames = Array[String]([]) diff --git a/source/Items_Final/Item_Resources/Yo-Yo.tres b/source/Items_Final/Item_Resources/Yo-Yo.tres deleted file mode 100644 index 02897c5e..00000000 --- a/source/Items_Final/Item_Resources/Yo-Yo.tres +++ /dev/null @@ -1,24 +0,0 @@ -[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://b1h7kigidl5t2"] - -[ext_resource type="Script" path="res://source/Items_Final/Item_Scripts/Item.gd" id="1_12rx8"] -[ext_resource type="Texture2D" uid="uid://dqmbec8uh8jaq" path="res://source/Items_Final/Item_Sprites/yoyo.png" id="2_ibfa5"] - -[resource] -script = ExtResource("1_12rx8") -sprite = ExtResource("2_ibfa5") -name = "Yo-Yo" -description = "+++++ Health -+ Speed -Passive: After hitting an enemy, gain + Attack Damage for 3 seconds, stacking up to 5 times. -" -rarity = 2 -cost = 0 -attackDamage = 0.0 -attackSpeed = 0.0 -maxHealth = 5.0 -speed = 1.0 -cooldownReduction = 0.0 -tenacity = 0.0 -luck = 0.0 -functionTypes = Array[int]([0, 2]) -functionNames = Array[String](["yoyo_onStart", "yoyo_onHit"]) diff --git a/source/Items_Final/Item_Scripts/Item.gd b/source/Items_Final/Item_Scripts/Item.gd deleted file mode 100644 index 8e0cf645..00000000 --- a/source/Items_Final/Item_Scripts/Item.gd +++ /dev/null @@ -1,43 +0,0 @@ -extends Resource -class_name Item - -enum Rarity { - COMMON, - UNCOMMON, - RARE, - LEGENDARY -} - -enum FunctionTypes -{ - OnStart, - OnAttack, - OnHit, - OnGetHit, - OnRoundStart -} - -#Info -@export_group("General Information") -@export var sprite : Texture -@export var name : String -@export_multiline var description : String -@export var rarity : Rarity -@export var cost : int - - -#Stats -@export_group("Stats") -@export var attackDamage: float -@export var attackSpeed: float -@export var maxHealth : float -@export var speed : float -@export var cooldownReduction : float -@export var tenacity : float -@export var luck : float - - -#Functions -@export_group("Functions") -@export var functionTypes : Array[FunctionTypes] -@export var functionNames : Array[String] diff --git a/source/Items_Final/Item_Scripts/Item_Functions.gd b/source/Items_Final/Item_Scripts/Item_Functions.gd deleted file mode 100644 index 65ae7b5f..00000000 --- a/source/Items_Final/Item_Scripts/Item_Functions.gd +++ /dev/null @@ -1,184 +0,0 @@ -#Needs to be a global script -extends Node - -func fire_start(ps : Player_Test): - ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.IGNORE) -func fire_tick_end(ps : Player_Test): - ps.change_health(-5) - if(ps.statusEffects.hasStatus("Fire")): - ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.IGNORE) - -func poison_start(ps : Player_Test): - ps.statusEffects.giveStatusTimed("PoisonTick", 1, StatusEffectManager.OverLapBehavior.STACK) -func poison_tick_end(ps : Player_Test): - ps.change_health(-1) - if(ps.statusEffects.hasStatus("Poison")): - ps.statusEffects.giveStatusTimed("PoisonTick", 1, StatusEffectManager.OverLapBehavior.STACK) - -func stun_start(ps : Player_Test): #GAME DESIGN WARNING. this just gives a speed debuff using the speed bonus stat. maybe it should modify the player's base stats? - ps.speed -= 4 -func stun_end(ps : Player_Test): - ps.speed += 4 - -func spook_start(ps : Player_Test): - ps.damage -= 4 -func spook_end(ps : Player_Test): - ps.damage += 4 - -func yoyo_onStart(ps: Player_Test): - ps.statusEffects.addStatusStartAndEndFunction("yoyo_speedBuff", Callable(self,"yoyo_speedBuff_start").bind(ps), Callable(self,"yoyo_speedBuff_end").bind(ps)) -func yoyo_onHit(ps: Player_Test, other :Player_Test): - ps.statusEffects.giveStatusTimed("yoyo_speedBuff", 3, StatusEffectManager.OverLapBehavior.STACK) -func yoyo_speedBuff_start(ps: Player_Test): - ps.speed += 2 -func yoyo_speedBuff_end(ps: Player_Test): - ps.speed -= 2 - -func propellerHat_onStart(ps: Player_Test): - ps.statusEffects.addStatusStartAndEndFunction("Fire", Callable(self,"propellerHat_speedBuff_start").bind(ps), Callable(self,"propellerHat_speedBuff_end").bind(ps)) - ps.statusEffects.addStatusStartAndEndFunction("Poison", Callable(self,"propellerHat_speedBuff_start").bind(ps), Callable(self,"propellerHat_speedBuff_end").bind(ps)) - ps.statusEffects.addStatusStartAndEndFunction("Stun", Callable(self,"propellerHat_speedBuff_start").bind(ps), Callable(self,"propellerHat_speedBuff_end").bind(ps)) - ps.statusEffects.addStatusStartAndEndFunction("Spook", Callable(self,"propellerHat_speedBuff_start").bind(ps), Callable(self,"propellerHat_speedBuff_end").bind(ps)) -func propellerHat_speedBuff_start(ps : Player_Test): - if not(ps.statusEffects.hasStatus("propellerHat_speedBuff")): - ps.speed += 2 - ps.statusEffects.giveStatus("propellerHat_speedBuff") -func propellerHat_speedBuff_end(ps : Player_Test): - if not(ps.statusEffects.hasStatus("Fire") or ps.statusEffects.hasStatus("Poison") or ps.statusEffects.hasStatus("Stun") or ps.statusEffects.hasStatus("Spook")): - ps.speed -= 2 - ps.statusEffects.removeStatus("propellerHat_speedBuff") - -func topHat_onStart(ps: Player_Test): - ps.statusEffects.addStatusStartAndEndFunction("topHat_speedBuff", Callable(self,"topHat_speedBuff_start").bind(ps), Callable(self,"topHat_speedBuff_end").bind(ps)) -func topHat_onAttack(ps : Player_Test): - ps.statusEffects.giveStatusTimed("topHat_speedBuff", 1, StatusEffectManager.OverLapBehavior.REFRESH) -func topHat_speedBuff_start(ps : Player_Test): - ps.speed += 1 -func topHat_speedBuff_end(ps : Player_Test): - ps.speed -= 1 - -func winterHat_onStart(ps : Player_Test): - ps.statusEffects.addStatusStartAndEndFunction("winterHat_damageBuff", Callable(self,"winterHat_damageBuff_start").bind(ps), Callable(self,"winterHat_damageBuff_end").bind(ps)) -func winterHat_onGetHit(ps : Player_Test): - if(ps.health / ps.maxHealth < .5): - if(!ps.statusEffects.hasStatus("winterHat_damageBuff")): - ps.statusEffects.giveStatus("winterHat_damageBuff") - else: - if(ps.statusEffects.hasStatus("winterHat_damageBuff")): - ps.statusEffects.removeStatus("winterHat_damageBuff") -func winterHat_damageBuff_start(ps : Player_Test): - ps.damage += 2 -func winterHat_damageBuff_end(ps : Player_Test): - ps.damage -= 2 - -func rubberDuck_onRoundStart(ps : Player_Test): - ps.maxHealth += 1 - -func candyCane_onRoundStart(ps : Player_Test): - ps.statusEffects.addStatusEndFunction("candyCane_buff", Callable(self,"candyCane_buff_end").bind(ps)) - ps.statusEffects.giveStatusTimed("candyCane_buff", 1, StatusEffectManager.OverLapBehavior.REFRESH) -func candyCane_buff_end(ps : Player_Test): - ps.candy += 1 - ps.statusEffects.giveStatusTimed("candyCane_buff", 1, StatusEffectManager.OverLapBehavior.REFRESH) - -func puzzleCube_onHit(ps : Player_Test, other : Player_Test): - if other.isMonster: - other.statusEffects.addStatusStartAndEndFunction("puzzleCube_speedDebuff", Callable(self,"puzzleCube_speedDebuff_start").bind(other), Callable(self,"puzzleCube_speedDebuff_end").bind(other)) - else: - ps.statusEffects.addStatusStartAndEndFunction("puzzleCube_speedBuff", Callable(self,"puzzleCube_speedBuff_start").bind(ps), Callable(self,"puzzleCube_speedBuff_end").bind(ps)) -func puzzleCube_speedBuff_start(ps : Player_Test): - ps.speed += 2 -func puzzleCube_speedBuff_end(ps : Player_Test): - ps.speed -= 2 -func puzzleCube_speedDebuff_start(other : Player_Test): - other.speed -= 2 -func puzzleCube_speedDebuff_end(other : Player_Test): - other.speed += 2 - -func sprayPaint_onStart(ps : Player_Test): - ps.statusEffects.addStatusStartAndEndFunction("sprayPaint_Buff", Callable(self,"sprayPaint_attackBuff_start").bind(ps), Callable(self,"sprayPaint_attackBuff_end").bind(ps)) -func sprayPaint_onGetHit(ps : Player_Test): - ps.statusEffects.giveStatusTimed("sprayPaint_Buff", 3, StatusEffectManager.OverLapBehavior.STACK) -func sprayPaint_attackBuff_start(ps : Player_Test): - ps.speed += 2 -func sprayPaint_attackBuff_end(ps : Player_Test): - ps.speed -= 2 - -func deckOfCards_onStart(ps : Player_Test): - ps.statusEffects.addStatusStartAndEndFunction("deckOfCards_damageBuff", Callable(self, "deckOfCards_damageBuff_start").bind(ps), Callable(self, "deckOfCards_damageBuff_end").bind(ps)) - ps.statusEffects.addStatusStartAndEndFunction("deckOfCards_speedBuff", Callable(self, "deckOfCards_speedBuff_start").bind(ps), Callable(self, "deckOfCards_speedBuff_end").bind(ps)) - ps.statusEffects.addStatusStartAndEndFunction("deckOfCards_healthBuff", Callable(self, "deckOfCards_healthBuff_start").bind(ps), Callable(self, "deckOfCards_healthBuff_end").bind(ps)) - ps.statusEffects.addStatusStartAndEndFunction("deckOfCards_damageBuff2", Callable(self, "deckOfCards_damageBuff2_start").bind(ps), Callable(self, "deckOfCards_damageBuff2_end").bind(ps)) -func deckOfCards_onRoundStart(ps : Player_Test): - if(ps.statusEffects.hasStatus("deckOfCards_damageBuff")): - ps.statusEffects.removeStatus("deckOfCards_damageBuff") - if(ps.statusEffects.hasStatus("deckOfCards_speedBuff")): - ps.statusEffects.removeStatus("deckOfCards_speedBuff") - if(ps.statusEffects.hasStatus("deckOfCards_healthBuff")): - ps.statusEffects.removeStatus("deckOfCards_healthBuff") - var rand = RandomNumberGenerator.new() - var randomNum = rand.randi_range(0, 2) - match(randomNum): - 0: - ps.statusEffects.giveStatus("deckOfCards_damageBuff", StatusEffectManager.OverLapBehavior.IGNORE) - 1: - ps.statusEffects.giveStatus("deckOfCards_speedBuff", StatusEffectManager.OverLapBehavior.IGNORE) - 2: - ps.statusEffects.giveStatus("deckOfCards_healthBuff", StatusEffectManager.OverLapBehavior.IGNORE) -func deckOfCards_onGetHit(ps : Player_Test): - if(ps.health / ps.maxHealth <= .1): - if(!ps.statusEffects.hasStatus("deckOfCards_damageBuff2")): - ps.statusEffects.giveStatus("deckOfCards_damageBuff2") - else: - if(ps.statusEffects.hasStatus("deckOfCards_damageBuff2")): - ps.statusEffects.removeStatus("deckOfCards_damageBuff2") -func deckOfCards_damageBuff_start(ps : Player_Test): - ps.damage += 10 -func deckOfCards_damageBuff_end(ps : Player_Test): - ps.damage -= 10 -func deckOfCards_speedBuff_start(ps : Player_Test): - ps.speed += 10 -func deckOfCards_speedBuff_end(ps : Player_Test): - ps.speed -= 10 -func deckOfCards_healthBuff_start(ps : Player_Test): - ps.maxHealth += 10 -func deckOfCards_healthBuff_end(ps : Player_Test): - ps.maxHealth -= 10 -func deckOfCards_damageBuff2_start(ps : Player_Test): - ps.damage += 5 -func deckOfCards_damageBuff2_end(ps : Player_Test): - ps.damage -= 5 - -func rainbowLolipop_onStart(ps : Player_Test): - ps.statusEffects.addStatusStartAndEndFunction("rainbowLolipop_buff", Callable(self,"rainbowLolipop_buff_start").bind(ps),Callable(self,"rainbowLolipop_buff_end").bind(ps)) - ps.statusEffects.addStatusStartAndEndFunction("rainbowLolipop_tenasityBuff", Callable(self,"rainbowLolipop_tenasityBuff_start").bind(ps),Callable(self,"rainbowLolipop_tenasityBuff_end").bind(ps)) -func rainbowLolipop_onGetHit(ps : Player_Test): - ps.statusEffects.giveStatusTimed("rainbowLolipop_tenasityBuff", 3, StatusEffectManager.OverLapBehavior.STACK) - if(ps.health / ps.maxHealth <= .4): - if(!ps.statusEffects.hasStatus("rainbowLolipop_buff")): - ps.statusEffects.giveStatusTimed("rainbowLolipop_buff",8, StatusEffectManager.OverLapBehavior.REFRESH) - else: - if(ps.statusEffects.hasStatus("rainbowLolipop_buff")): - ps.statusEffects.removeStatus("rainbowLolipop_buff") -func rainbowLolipop_buff_start(ps : Player_Test): - ps.damage += 2 - ps.speed += 2 -func rainbowLolipop_buff_end(ps : Player_Test): - ps.damage -= 2 - ps.speed -= 2 -func rainbowLolipop_tenasityBuff_start(ps : Player_Test): - ps.tenasity += 2 -func rainbowLolipop_tenasityBuff_end(ps : Player_Test): - ps.tenasity -= 2 - -func rollerSkates_onStart(ps : Player_Test): - ps.statusEffects.addStatusStartAndEndFunction("rollerSkates_buff", Callable(self, "rollerSkates_buff_start").bind(ps), Callable(self, "rollerSkates_buff_end").bind(ps)) -func rollerSkates_onHit(ps : Player_Test): - while(ps.statusEffects.hasStatus("rollerSkates_buff")): - ps.statusEffects.removeStatus("rollerSkates_buff") - for i in range(0, (int)((1- ps.health / ps.maxHealth) * 10)): - ps.statusEffects.giveStatus("rollerSkates_buff", StatusEffectManager.OverLapBehavior.STACK) -func rollerSkates_buff_start(ps : Player_Test): - ps.speed += 1 -func rollerSkates_buff_end(ps : Player_Test): - ps.speed -= 1 diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png b/source/Items_Final/Item_Sprites/Plunger pixel art.png deleted file mode 100644 index b0b25d39f518b696ca3a611062a0a631b074f32c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ydu{YLn7Rh zQzQ}&cy#{lJ{g$J;NNqL$h3(|IPWGs@#8%qsNk^5xucBX z&Zk=W!m?#23RwdA96nl}sM4}(s$g%>DSf1VXR3;!ufTf-rCPpX#f_Pb8tek!%zkPy Y%&U|%@X+%r1v;F;)78&qol`;+01H7|TmS$7 diff --git a/source/Items_Final/Item_Sprites/Plunger pixel art.png.import b/source/Items_Final/Item_Sprites/Plunger pixel art.png.import deleted file mode 100644 index 68e45fc7..00000000 --- a/source/Items_Final/Item_Sprites/Plunger pixel art.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://6sjrjy3ts348" -path="res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/Plunger pixel art.png" -dest_files=["res://.godot/imported/Plunger pixel art.png-a7d4edd1967043844bb4bcc6bd99f15f.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/source/Items_Final/Item_Sprites/Stick Sprite.png b/source/Items_Final/Item_Sprites/Stick Sprite.png deleted file mode 100644 index 5a0a9b90c68691230e30d550d9cd343c66ea9dbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmV-e0jK_nP)Px$5=lfsR9HvtmN5##KoCWfS_JQ4VP|D6*o!yuG~Pt)1#27aL~J~PAl54*3=FdC z{F&^s7D%Bq5 zsU8AAx*Px#=Sf6CR9Hvtmf;PAAPj|N4i>w(l5q{=V$5-uUV^E$Ek!{z!GDJ8`}ztkZfN{C zi@x{%Yl)L$LI|SHVd1J62k{Po8kt8oOb#>$h_p38Ob&Dae0)lmA*%!cQW`)z4Qz+% z0L>k!wGYP6xEmGIJUMYn)o|f<01#Z(WuU^?hN2EoAu0~<_<{K60MMFiwrRH`oMrq6 z&HPXTZo{1c;Oec3LyP{G;3_~Av1AN-cs9HjfU7lRm$IDhAJKu-H5~5|=xC{UX?^=J zxASQ;J_qJG0NRbHRJNQmr)!sEvliO{nmh0VD6)}-Px&3rR#lR9J=WmrqC(Q5?rVnwW^YO}j$6{y|7xgu*n)1o6<#ONYcm*g?cYhoJBj z9zr~52Z_DfLA*qV@Dfos4<(2aN+ij;88W%6hU<=wi0)yhgU)kiXLg-wtqA(UrPgO{lA^f4#KX%c?HRQifCnAxBKG>-q3!ov17uRL?gT12x618~ z^N!wg3^11J9k67J;J-c>Mt+$tTKKs!u$h&HR@DB*`act7k%9 zS;XrPh@xvRo@c6a0vPg-3uAqz0K4&+fYFOlXSxLAfe?zaZ30o0Z2==mKCw59v(A>2FjD}ZC$0Z+{4Xx=9lX+#ihpN#9qKOpIL@Lb;5sxNP$Z^#+1Lus!RTr-fmR6QBJ-dY0cYM?B zC7GRG5PiLEj79x7Sxz=k`27RwfyPe0ME-t)=^a1vVKMSyF>hB_ZI6N_*mHMS0|>SR zMJzlUCfE|BrL9Ro=rMi#$INrf$1|B`1+atBWi$kscsY>sACprx_3>NAYb@K?ZPx%D@jB_R9J=Om%ne*P!xqf7sL>Wsl=p^?BoX#a+C#>t*{`FK!V9T6(b8>5CcQ_ z6U<&Qq!I`r7CLocLQMm0lpzyJic+hvAY~xKV=&jajU8g=nT0b&wv+qi+;iW1hW}kg z)QzTHRduTX!0MxSkoB4u&JuQf-765$M9)>;~fY7GM7JO_EsQ>;P zbmGp93!u@3DF>XLJ)^aC=tF>H!BfSmVU?D3)COj(1LaIkl`fsaDlH>Z5p?3&^S9`5 zAv6O3-SNl(`1!*Kb>hkTEiI!N2>`I!J}~wNN0AT@>?;dH%mfgK*4E)M2$7jDES!hG z0)W?!pc6qCZr;ASkPERwRLW)WKBPtL{6$?Nh zHeR`aw_-{=k_IyI9G5dWW#2Uc{C2pm%j@@FW3?i-10r!EI31>G#{Qke00JSIkPR$u zD;5F}h+rlFDur`%e_z|aE+Z=19~{k<1+Ax>awex5#VjlNKgK?N^J!*{nMbm?>W)VS zJrq4S2@<7Lj@#u-&JSUun8n%Ii>$M72*V^>IlxMOiM870$f-yLKp+~$EC3H5Ut`km zsHR<=0!a-3;G6mmcxQ;-uH&zm{|q1~*)dNl^>@DDs;K*=MvHy{@K^KexE)jW00000 LNkvXXu0mjfxyBU8 diff --git a/source/Items_Final/Item_Sprites/baseballbat.png.import b/source/Items_Final/Item_Sprites/baseballbat.png.import deleted file mode 100644 index 8480338a..00000000 --- a/source/Items_Final/Item_Sprites/baseballbat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://n8kc5ecpojp0" -path="res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/baseballbat.png" -dest_files=["res://.godot/imported/baseballbat.png-a4dd4bbf15b9be2d7800fc6a26793977.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/source/Items_Final/Item_Sprites/baseballcap.png b/source/Items_Final/Item_Sprites/baseballcap.png deleted file mode 100644 index e904fe88b64b0d5c613ba695e52ffd34292363f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)Px%JV``BR9J=WmN7^hQ5eVn7D)yVGE|dH2XcXf5(nWjr9(>xMJI{46tPQ*Md{$u z$wilT3KR+z2Z^YNn~Ugl8FVtxA)*|_!A!C05IBe4avj?5arf>ecP|l2A^+*#yLa#Z zd*8kHeGllXuYaro*$?9Bq)X3A!oY)dBt1u00MGR)W^A{r41mGJbllWR(lCQjjLDFU zlo1`aV<9(DWc@E*0_9c9m5oTp!L({6rUL+M$3iNTXYX(8XGmr8P_-qa zhG;u5o=&>yk+-aEI~J6fjv;l}H;y0xK-IF+5YM8RcTy^o$8G(LwJ%SBrLUX5%_+H56yB_3c43@F zB8sFVAkvjt!R7T245`ETw7iIwwfUz7@a6%L3ahVBE^R>7vN$>1!TP%ruFMLeL^3oH zMbUBj0*bBU{A2?Kv%>nDce|nAcJ&KH8?ov)r<1O?(%G#l_%@l6fykIdwZc3I zrs$5fz}qG>-khSs*9g+&!rwxrjROFdrVSrNXu%L=Gv1u!g`iyUd1g8=XT4ElzM-3t z51ALpb}S*t%Gx|LCbNt>=JMu17gsVb1SJ~2R6Di(fKfa3be|)TUan?60eB&R;P2|I cum3{70j$8}NTOV_@c;k-07*qoM6N<$f|V*Nl>h($ diff --git a/source/Items_Final/Item_Sprites/baseballcap.png.import b/source/Items_Final/Item_Sprites/baseballcap.png.import deleted file mode 100644 index bdce6f60..00000000 --- a/source/Items_Final/Item_Sprites/baseballcap.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dm5a1jhe6ojrw" -path="res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/baseballcap.png" -dest_files=["res://.godot/imported/baseballcap.png-8d8cb81311bd36b4b1a0a38e319f708f.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/source/Items_Final/Item_Sprites/boxinggloves.png b/source/Items_Final/Item_Sprites/boxinggloves.png deleted file mode 100644 index 1c0b93388a74208416b6207347299c0af8ff4e9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)Px%DoI2^R9J=Wl{;_RP#A_E2r8z=MJNqwAXOxfWU_>mKajb5FH^Qm{DDqYe?Tf# zVrrL4*(y=b3|)y(I}xc%l}LdSmdfE$C<1ptrucG>UFcA$yqo!szxUz09K%K%{qKtX zjU?riVT)p~etedCtPN038TR96*MYIu@9wi5Q=|}U0XXKZj|1VEPu+*qlNz;dBhX6- z5LVW5%CMW-7AKhtp)tVKI8NuD3J?g95E(C*HNEX-X}&GlP2kbsD`dpx)rkdhp#Pm0 zg*aJ3|I%mJTyn0x@WZX;%@ zdL)QeTcKhV=fk(6q(dlzXtfnuZ3R=+g{5^=Pij(t&^3(O4#&u8h4XySo6^*_RtFHt zyDbO3`2|+jG}m*O0s(5>MvPo(@d@Uj}IoJF(r|p6xYv zN-vv}NG&+YT!hYow`yU=e*_Supbdy(=#}(^BhNot*KDJIQojIt%I7|uO0hKn0000< KMNUMnLSTXp_#a&W diff --git a/source/Items_Final/Item_Sprites/boxinggloves.png.import b/source/Items_Final/Item_Sprites/boxinggloves.png.import deleted file mode 100644 index 773b8950..00000000 --- a/source/Items_Final/Item_Sprites/boxinggloves.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bxu2g1kcx6k20" -path="res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/boxinggloves.png" -dest_files=["res://.godot/imported/boxinggloves.png-56a356377ef30c1061002e120b4f63e4.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/source/Items_Final/Item_Sprites/bubblegum.png b/source/Items_Final/Item_Sprites/bubblegum.png deleted file mode 100644 index 30438077f0c370ca04e06afdba12fd6aabeb310e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 812 zcmV+{1JnG8P)Px%=1D|BR9J=Wm0w6xQ5?rVi?m=dp}9R6DkwEH6%mY2=i%^#hrgZX+BI>Dvn}d>*0D&_wLTA)5m>Z?(dv? z&i#DP@0{PckXK%L<)G^3-c)sSZ|W$%bu8D3WtBA?g^A33WF|Urygkewkr`sHBCS z*~{=)w;>&_*5a36l=gJ9y|9k4HEJ;1no)A?5 zyJksrme+QsjAg|DB$n5B?|4V;#X{YLbhrYx)i&tH#$!f&uY2%byGb+{$#_;o6>KFX zSeE0ZP`|+ug5kL$-Kx^z6;JL0@CPXH1&POun5_u_@iduBFgZ)uN=m8pOlTTrTa#`; zCQY|lQl^bA&8p)uBc?}{6!?OoZMG&v7Dn%PvKe1Nni-Mb?{G9X;eO$n?gz6q!HM~w znzmY-@f85h|xM3E;eJT9xv2#bZVhM}rYLr~_$cL@YL|0i}%W z?W;RbS&7-Gi1&hTNNWIuyL>y9wMt+hfJ2hU=?s`{O)2GuJ5zTKlevV7Tazq$of;Db z>s30SMHMSx|CEQ;!8uXZfdM~`m#bo{_q;@^oL2yO52L{di(WY!Zy%loz;&sEB3m(* ztEZWN9uf2XQyu^T4-EJLH1Mnj)ETigwg7TDeVdpBV9~p(xunvSZPf=dpqQ|`+?qZm zBjGMz#yO#{NfGY`Kac?>w!7S-q~QPQR<=d~XM-NtK)ME2XOU_B^ZOJRI!{{HpuTk(>0J>fP00006P)Px$l1W5CR9J=Wmpx0vP!xtAgCL<>ODBse43TjzKrP)$!Ra_f{75Rav4Zw&`QSYFyzf1ibK$?oMA!)p-IVvw zJG*Or8IxgyYa6RftzQE0vNF$e$C2Zcz0eE&0`GO(((AUxs<*_dx5QRsZ|@5El6;?K zNVo?rt7)lJEh(#MsYRk<)mwcRF_Z;{ZpvnIfs1&G1Yj$Ilhts}_93U?ps@s8#Z%-I zfqW@EI}F{FS|s{G_Rm!o@+B#&X|dIq?{^qb0Yf)sd2gH9_ARH)4sJ0+BfE%SbxGx( z*{53`njPO<16%NLbPn+pt|EbOfa${~0CzXn;V!@}W^fe(;f8L?+`$%!MuRKhkr~Ko zgW|qMAzupI+1~!}TCq~Kezq0;;NBT9a=6#`-kC7+%560!wi=UKB>E3!AA3Ibe5CNP z=VRGN2LJQ22Tnw8F~bgk0!~&79Jz)K<+~sH&3j>lZ{qiI|M<1)x8oJ<0jssxVQlvR O0000Px$wn;=mR9J=WmOX32Kpcl3ONB0i5O5Mo5tJ-yhah4Klq)Xt23vfA~mcHbz)5F*!s3ahR?*faI^Jx-U13Eor0mor< z4BT(FPQxJK4goRxW8nACk90m>{Rsd&KeI#dW}|)-d`kdO8oeFf9xjPT!~O-l#ts*C zLbV2f;#mNY$QtDCZXNLHVy#sD>~YLMrCI}i3X2RZHe0h%XEIy)hJ&jV+iSl&Vwa2Q y27JS}1cZe9&s7Ene8Z&zLSo-TrvU%w*W?>?FCriV3SsU50000L diff --git a/source/Items_Final/Item_Sprites/fryingpan.png.import b/source/Items_Final/Item_Sprites/fryingpan.png.import deleted file mode 100644 index 1afdff0f..00000000 --- a/source/Items_Final/Item_Sprites/fryingpan.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bdh5om0n3ttan" -path="res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/fryingpan.png" -dest_files=["res://.godot/imported/fryingpan.png-d1f2e64701bfc1a3024808cd0d1cd647.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/source/Items_Final/Item_Sprites/hose.png b/source/Items_Final/Item_Sprites/hose.png deleted file mode 100644 index 821c0cec857e8b7614f06836e7cc48b50af7b5a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)Px%LPh{tdxP z>DVz8+RZpa;!a*taE4?G2#QISEvXR_KN%evDk9@@b_5S*+#{l0te-jiXe zrT($*<(X{QPN+NgdT^-q?gx2{w|2Ja9rppay(-MiDON_&_|=OBdl2e?WKtTo6K?Hn z1JFC};}3?Jz@}|QV}CGILTE*x(>JX5Z z{S#JJH>9BH5x9W>mrfU2%?3T>yAHf5kcgOg2f)he2Bl~6l*!M)x)V~?%l8b>=_L0F z)8N!iJp;-gH~_~}SuZh)kD9%E;1Ed)5cxX@ms^)b>l-)(P>Z{B|k zbs-i85WC)OZ?b=Oo_oC%pja6Zc-iLlmyZD0KRajed0Yv3Qjq#N7A0lc*4*DP!*)V( zJ#ByF==<;SPP|{a%|TWLlMX1#Fka)yzTgjrJim1BWG)3rgGic2%F*?50mLCvwV<&U iKm?JZMU9vGZ}b-!!~&?gamwES0000Px%B}qgEshyBce}~V-KG%oSHqjP z@Bik_>@cvS|4ARdtOZHe+@+hiyjl&OJ$=RUYBf=aE?x87!Xm|jm83VI(E({*{p9c@ zea(!N3qbDzjgN%13_(kWMPlSox(h8Rqi! zEdjLt0)W9If3*Q9>8EPn15tW0^RtuB0fP>N)qPJcv0shdiz7I~r8nDcR7<-9j&POv ziHQsV=k~4uP%C>ZUH)!tZUi8U*UBDm=Ibh6D|?ZkZ+~oz$4Pq&!tHG~Z3V5z&Ns{W z5SA(jV`GkRRR?rsbO;^c(l?!^biEa#Z#um(cP#__P8J}}tP^!~4@ga%Ke_z?lS6-E z=jI>22H--vVho_Y1->nq9LnO`g58I+Dt`a{9yNaOt7rQFBt+O;LV3eubS=G9@wvQy zP2)4*+X8QR3_!t1bKe&DwlJ!v-2uy52Vit`AF0PV{18Ccw2`-88^E{&5=0uenwzPu z->})pvew%&hc+*wD2Qf#Td8dM8UlkSnI@N#j`@xN{sF2l@6mIi3dsNf002ovPDHLk FV1m&P7%2b% diff --git a/source/Items_Final/Item_Sprites/juicebox.png.import b/source/Items_Final/Item_Sprites/juicebox.png.import deleted file mode 100644 index dd35366f..00000000 --- a/source/Items_Final/Item_Sprites/juicebox.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://eehdxpdnjdbn" -path="res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/juicebox.png" -dest_files=["res://.godot/imported/juicebox.png-b498c4b508352fcc9ba0d7bd51639523.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/source/Items_Final/Item_Sprites/magic8ball.png b/source/Items_Final/Item_Sprites/magic8ball.png deleted file mode 100644 index 4b578a1d7086c4ca1d5705cf98a51f7a90220163..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmV;!0X+VRP)Px$eMv+?R9J=Wmc44jFcgJPe};mW4qZaPLn`PH{0gCcgDxFPr;QGwygiS?vR|xzLIr5UCGh~j`}0*7H$6D3?<2+PUo17XS+*WqQ|NAIdS)agztn--UK305Tp7=Kz4!GAXpr;tA62#t7mC zz`}?RhI6cz31;!c*gxHFtRSoa$o&1SXVcvXv0Jn`?E@o#$$T1*O0lQMt`UNy1z=&s zyRUs^%Jb%AN-p`aRsI&y4f<_Ar;9?e} z0Is^fz01x9dcI*-R^NI9e6D|t?Q|&VB;ACvC6En9vj%|P%R?bX@1n#d&;r=ZAP*tJ z>;+(S_LK;q{SE7o_8_X-%=sXyL&m$HDkJB+ph^hcZI~^As*1I(Y<$cC$BL+Gb3m~P tW!Z4egm+D-DxdT6t%|Kh5Jw$^egRW*$Px&mPtfGR9J=WmTzoRRT##9ZRZjicg|DQ5w0T zH1b04);vMED47H6cesT2z*Ah1Yw57P%qyoo1kXqSDDenie|S!pt0V%}?{Eq8${On1 zWjytrnz_T@p5&ijYkAOoS$8|ij0*eQlE%KZ-^qr8gJ&c>^)M9l^M1z=&+O?2YEj}5 zey2h=N4KC#+_rZ$04aMXqn@J$h17QM63@OEV9J}oys{<}SK<+NztP1|(9e`Np}P%v z4*1-XXxqD*l)V$hv(zZ>H#{ih0v{L=}E#@b!x-K+4JV$-Itf?2CjWhC5B@3fpEPe=m zZb_)5U+qgE+0q8Jejetx-PHhueC1TNSV%@p1w{bd_t*@8Avxr1!T2>n_1$jgq7v{I z0AJc`kZkGht6D7lF?ySj)sk0i=J-Jq-Ma+94gYljL-ITU+346T=R}fsyN9Y43!zK; zc{9fk{-;kn??sM^l8X7GA$} zLzC<3>DSyD=RV!OBq#E=Aok0nJnal4M^hOm%4lx3nk#^ z{Evf%LUbqlR@eoA#~IGVy=34oo0)AY7ILc>D}ftZ<(hts*K zf&GRebPu6Qz?fa=#tV=G1Y+7_Wp3!C8AKrwhW~e_DCj~_0+fKC zo?`<5nQpVOq3;y(LX@VB>i{sfI#B|C-C9Kn0O)`3Gt8~dy!idWS>%Q2lIs*Lz})IY z85u)bWz)n}a<%)P=B^pmDf&g!?C27Xw-0df#5bC_N}Nq@^eGnYfJ%@}m^-%=EbC3! z?C26@FTG~CX0eNC*^km@N0$J|6_Og*4^Z4yyc{7a79+j~6?Xsu(}omv%#vyV0000< KMNUMnLSTXgIN0g{ diff --git a/source/Items_Final/Item_Sprites/marbles.png.import b/source/Items_Final/Item_Sprites/marbles.png.import deleted file mode 100644 index d1a1e42c..00000000 --- a/source/Items_Final/Item_Sprites/marbles.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cam6hafwuwn0g" -path="res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/marbles.png" -dest_files=["res://.godot/imported/marbles.png-6ff99fc82c24904fb73ab5b99abf07d5.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/source/Items_Final/Item_Sprites/mop.png b/source/Items_Final/Item_Sprites/mop.png deleted file mode 100644 index c9d46a94bef731e51cab934786f0e826bbff5b72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)Px$>`6pHR9J=Wl`%*gQ5=WAScgs_i=ZHBmJS^pu2N6oC^$qg2qK7}L!nCvJxbvS zr9^P((nU%^P8`J{9aM^oLj(mIhzX(6wSx(P(qiFAZYXr=>rn2I!)oK*yL9nCy?gKA z``+*W9uID+$CVu&5t&pFT8x<+x-n3AQmH z31mk{#L#dbl~3(U;SkX+@OJ($I7E;@H?c=1&~5CI2n2yE69@`dA`k{1S|BVulz<9& zU;$O|YYSMWEq;`W**fNz7|-fEoL51Qz@Owxp*>x+iU^gHd{P<^%TG-5#~%t zfljz?XcvCe4Na~sZ|0@YAK9D;Dj{3oIBoJzUdV-bGJ$Sr92Aa-ClkJT55Bgt&feBL z#-=6$x27Lp{QkUXw;fJC?!<-$Q=(cdGd4AWZfK;JCOIe^kzSgVLIBlbxik8}=i<`X zI(PK-TZ7q0i|B^N+R8c*uJ3_rE|ZJo8vghC4KQ>a`wz&v(*OVf07*qoM6N<$f=6uq AqyPW_ diff --git a/source/Items_Final/Item_Sprites/mop.png.import b/source/Items_Final/Item_Sprites/mop.png.import deleted file mode 100644 index 04dddad6..00000000 --- a/source/Items_Final/Item_Sprites/mop.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c3o5u4wsuwtfj" -path="res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/mop.png" -dest_files=["res://.godot/imported/mop.png-344a8d7edfe5e25c1b50832b41d3c5d2.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/source/Items_Final/Item_Sprites/ovenmitts.png b/source/Items_Final/Item_Sprites/ovenmitts.png deleted file mode 100644 index 266d0f95a2769c2701e2a29d97b1c322851d7f9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmVPx%rb$FWR9J=WRzGjrKotKOVq%F90$9S57Y`K!Bg(>#Iz(M5AAliyzfFgHfQYr~ z#LiMNFm%Y|1<4=-F$82F;11Edp3i?%DzyV|Io+N8et+)Wvw?G*;~$6gH(`FeDN%!klEtmIul4td#mFm0HBcB zVl+FM{M$O-eqLF(W+PwT zqnUFeYal5iYk)|6x_${%|4&n9$-6Zh6(t*41Ak25b$LWH=LD*sLIeZ+%8BH}QetmH zfIx3JmcITd`zn~P{+4E=Z>g*yiOOlcZtQ(Gh-xae1AI3VYoKE+7zth}y+b5uUu;~7 z1bV}<^zfuIReWO62~jx^EZT~aMN6}BXBdHFi2YW#8@ku6*}hIFj*n&uEzM@{h+R^g z_bnCQO_Sj!c0#h4Pb79k5ln2^VMUzE0dk?4b68P@InlRNbc{u;a&n7T52W}b>J7&d z8oCG50kvb%3DK1>f&c>GsT`oVGYpSZMgg=m+ea`CIJEPx$dr3q=R9J=Wl&??2KorLxKg2Q;5R3#&#nQQ+!y`zj0!_07v%l*MNpt8;L4uga z4L5>7kpN;71hW*wYu>%PTYKxo67FNJz1#Zz+`HET1Ooq^ttNktBT>-%m$!-c^LCpA zizMYsg|CR001tlsnriDrsHiL9T>+7#Mlgc&e>wY#Uue*mm zm^|NC9>=y%I44)K4DDwFO~zHFl?0GhyJMB0BSj>sAsk1A80vp3GtvS$$rmC2j00000NkvXXu0mjf8?(Un diff --git a/source/Items_Final/Item_Sprites/piratehat.png.import b/source/Items_Final/Item_Sprites/piratehat.png.import deleted file mode 100644 index f82fe5e8..00000000 --- a/source/Items_Final/Item_Sprites/piratehat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bng36643tueog" -path="res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/piratehat.png" -dest_files=["res://.godot/imported/piratehat.png-92d645addff861c04d2b77da1cad53ea.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/source/Items_Final/Item_Sprites/pocketwatch.png b/source/Items_Final/Item_Sprites/pocketwatch.png deleted file mode 100644 index 2a62e81650b35629762e1c896fb951d62b94d458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)Px%V@X6oR9J=WR=;c8Kp1_l+d-hxsU8c4Qc{YtXc1jPjkZE4G?2yMsX|LB=pQit z2M$V?l1_mvH7%6RBE?I|;zgn^m_VT5!SNJglEH}UAU^dZpX58&rAyvq-+lMJ_x;ix zaD)Ghnu<}>_c;JOc|6CDpC;%x0MxA`B_C@G2t9*GQN48k&4(8o5h6v@_c?P+US-1^ zlQYNUN!(ttOX9Y4T?wIQtRycA5y_Ic%_#tF5vw8(J%fjyv9vFeMSVZBsSxT400YZ2$6NCOsGTY+$RURE}FJ zDhX_Gj9{lFCGYO;>$qACS?Z^gQI>l8Kb?&JsuWroxO?wDfP5ypyZh*U{kU$N<#&My zA`|ORB8ucxiamP+0_gQ45{r;UPHS;bO@USkfIrPwHUYZO8pAR%Mf|fdyu6rgJOh;i z+=J`dd3cD1+rjtXK~4xDpM9O^0fi~}G<=9Xq#~%XtnN@w3}ocvMH4{0%Dvic=-U>5 zbmt5JAie{Npm)P~(Zu^Px%sYygZR9J=Wmd#64Q5c7xaiR;M2@Oos!jbUOBs5X!Mr2?FT{MbWi|8+C8?Fl4 zx~N4+>sqvE*-A8sD1rzHMqDVw#0)i8YfSuh>_fBDVmjCRIrqa_ zt4}KRrT9i~SJ(42Hh0?IJ+5{GkZe1HR+?o?Te3lTW}rMX8mVpdwN)rID8#DkKPws8Q@}w;rj`DQ~t>&4F z9|6e7;L9}6UYrIXetm_3zB$IpiOZ?8JbZMgE=WTV^WJ!;$eybZttdn*3ILa0H8cL? zn{Dhs-yA#131VG2+xZCv&>Qa*H{0KvV$q61=2sGcoz-b}R;T%Nx6JtS786K42wwnB z<^Xr!opM~gRReu<`j-+IAdI;+3kyq4uJilKz{cmFeug=!p1E%T2_ZrJrrv0ty`nm9 zL!hrff&lE6)*SnHOKYxuPV)Q@RI2k7PDDw4-E}l`Q}sh0&a0jPzB5ob67@UOQS;@+ z-~h2yPAs%s;NJI)4k1A%Cs+0bB;~pVu~bgTatiR6Zc0=4YYzM#nKjsGl_zf-?Kf}`pWq1Gp002ovPDHLkV1lA)R(1dY diff --git a/source/Items_Final/Item_Sprites/propellerhat.png.import b/source/Items_Final/Item_Sprites/propellerhat.png.import deleted file mode 100644 index c08d1f21..00000000 --- a/source/Items_Final/Item_Sprites/propellerhat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dghjg34gr46gq" -path="res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/propellerhat.png" -dest_files=["res://.godot/imported/propellerhat.png-f15908662be9b615f96f37adefcd71a5.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/source/Items_Final/Item_Sprites/puzzlecube.png b/source/Items_Final/Item_Sprites/puzzlecube.png deleted file mode 100644 index 29e0f53377fd273642911cf77698655b46426381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)Px%n@L1LR9J=WmQ7C+Q51%s0WD}#Cl$JA7u6KEqa+v?#uzaq`~Ve*ZVVWO4N*6& z6r(E=6I@n-gpC10ObBcZs8Kg1rlD%AA5buS2yIM(ifsdRQRdQVr&Bsx`zDjzd+x{k zOzt^%21+XFf0tx-;R&~r%8q?s2o$|vQ46w7ElP`MCj!H!VDe6K*j*{vR+SUCIz8Nf z)C0i7dtI8bXESd_`pcy?ynofmf-YPeCk#LfahyV;>pxpFfPoyJ3Gt+B;^JG;(WI@dv$y_62T`ac-_0z623Ong+_{Bf?zOO4!EYWQBPE z`_@n0xLTgc>N7cGK1snRDQrjAS)8n3@XZVJ0BRDB$QBXPE6q%EKpaaU^MU}Ii68*2 z_K<)WpYRHZ*g}}tLYT52FWHW+<8@2)DRNHo{r!_a8TXw7t@aR*zKGQO!It!6OZtUj zT~kFB+N~0;mu`s&~W29ruQa zr!OK)&V1GQ!%!%5y?KDlO?q*qAYxz`;n$FM&3;t$FOPx$u1Q2eR9J=Wma$6$Q5?s=mxmyd$gM7+)e;dRC=cB14`^s~agnxy{)gt;q6Qa7 zh1TF&N_Z7$gM(1%5V*x5g4A$&P480gz31s!6x?_F{eF-4{qVc@?)Ly+zUI`R6tg~W zx2$FDx3Y-Qu-(I;6k7^}5Fn6(sc2=#!qX@!F5GIOO;b#!1}%>)>>d!7tD1N^jn03YE00;o?n+#IFG?*IVc znq~8G=*5uhN$Ck7n~$Sb?s$T51t9wy&VrZ);%XQ%iRJoLn#jo4pVb#o^s9f+&omPN0000Px%?MXyIR9J=WmtROzVHn1L8zBv^hJOf&hzev75fj5T)<`HyL<%-yL`-Ty5e$}& zDf9=rSu%BH7opBdyx7GCg^3qI!a;0a?IHxxx`@yv=@>z#$k^A#I45yVchn-O2M&Da z{a(K3`JVUvKF)#v_}8IPlk9425o=?i7Y|jfu@-yO5cfX!12B>Z0#IAw0T9~}vY`N( z_|cOe09c;J0jREgOZz)F8Q#!+_%zx(X92`kMC29VYHSgw9ykCvH;_iM1UXSU1Axa> zOoBcfULOGALzlP@Oc-rqJRVggV$%}z45g{Ayob$a07e0D8x8|5DiP}nkayoRltxM}VCygd5N(^wCcL@=K=a8i+#Lqy>m5jzAeo6mX@5bRZ{qT| z0FosL7Y4HArZXfORscxU-%#=nHcgTa`LT|AvO99MQe(8`oR)mZalqBsBD$Mqly{qN zAM^DNtUwqrJC}hfpqDY+09ak6SrN1%B^NLk%D$ceK(W|bQc4+N03=Hgb11`D|6V1> z{IZuwN{e*$8fHLBE|7TE2l~PVUP~ z#^X_q8H6dY1V9X(LT(ByfvcEA!wMCHMF7fCB$U0RIzx-#)fFrtZxhOhq_o7mI%2C9 zb$ET4oy$a0TEc-gCEi}HC+5|m<{0KptTEce*v0FLy#RK7Mj4v|OWbx9D{;9u%+6(1 z0yeyeWOCW&NT7|1!6Kz3t6?4WkPi7(k;4Wh7>`Fac6~A9SymoC6Mt~ xl|l$1N-FE}y0EREib6!lPx$$w@>(R9J=Gl|5_1P!xvWTL?m+iWGzl)w>jNaIk`_>5%ql<(8z}dBvLzn)9 zu37BhA81qPAa2(dxezEK1tB=x4&jCvKbntgD1DbhE+OZ+=RM~H_>1Z_>msXMXW;{r zQcl;~BVQ&QhuL`$!Y+9%^>5!;<}h5%Vtq4}1%OwH z#xmzWKV9ju>_`nDB_a5tg>gGCMtUa_h!Oz1=mG$Yje-7pLMCrs92BbAEGyXuCZ+z( zgYlRxN-EG;=3r7PEXMo>@Sso?R*7vvb~Oi&n-YwT;h(1lkhc# diff --git a/source/Items_Final/Item_Sprites/rake.png.import b/source/Items_Final/Item_Sprites/rake.png.import deleted file mode 100644 index 3ee25a38..00000000 --- a/source/Items_Final/Item_Sprites/rake.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cv8o5xvrm3cm4" -path="res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/rake.png" -dest_files=["res://.godot/imported/rake.png-3bf9ee60d1b0c2a9f9fc616424ab97b8.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/source/Items_Final/Item_Sprites/rubberduck.png b/source/Items_Final/Item_Sprites/rubberduck.png deleted file mode 100644 index 0e3039ae7020cf8d9217fdc7e0a07b85988d6027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)Px%A4x<(R9J=WmcMHgVHn3h@tUYK)R4%?{YLhUfLVjW4HUNV{{!gAQF%A*Z16*?ZpySJ@FV8b5 z+d~Ic~iNoR$p>korK~G*i`bR%rTlkI;pt=R850p5xZS ze5l^;>^RTgdxq zS2iNqA>Eo4n>Q*MU+zishi~weX22bwI1xrAL$_ve^Zpen`R3-gP;IP$J^KdWSglG6 zToJ=@kUaSIkl+JrB||)aEcg4k>lMWEMw+^5jwS#cGjfgSZxKfh3PV^o&D8Qn+KXjg zFe*7H{*po1mQ{!WDfvhOfPx%uSrBfR9J=WmcMHgVI0Pv6JwUd&?_7q5~!s#QcXhb!3`Y~L4=x6>=1BBwu1fx z#{Iff=pg7Kbn6sImmm`DB;_Dh{E^tCwH{hXF2I z8_>wq!!B-eP2A2;08i~<%^H~jvr3A>ywEw^`t@}r3S(rlKZs|YIoGk-Mqq}R4@Jmi z>jbL{!>8kQzTdG{Ww0iY&~6m~>%@Av1LanQk^Mo4y)KfRFm!_V6Fu-cj~ibmhfb&Z z)DhFpj`N#q8$ntN3_+9>g((I!0Kj3>f2!$TE9@9xB!Y6Q!hjQq2o-6K2RMPy_R_sO z)B6Ah>vRqbu(Cf0G@Sw1_R2h96o5`W?S|OvPyb#k3|{8}z%&yc0Vo8}k3;pTp!31& zJWgU2l#Z^!3`s$q6dwy<2BF31NoVfvV*O1Nv?Fc`y8<{3ghF^J?i#=dV(y054vc*X ztwi4ontL&zA(4NCY({eZqvZ*JLc~^bCqNhE+dIjxv2RHzha?1cf zHn;MQqww4TmJMMsmB9S8h|R4$({6Y0cKbD!a?7rw@C1;}NMtdUK%-Xuvu1>dh!MvS zo&Z=jghs83?0z=dQ!9SY58Wj>56B8Hp5L?US{Qf~|R6Op$CxBA<_b zkZ};6Zb73~MP07j?thTC831JcG5YfW$@XTr0?1}0!m=Sp-%E-)ux-^00000NkvXXu0mjfrwv@? diff --git a/source/Items_Final/Item_Sprites/safetyscissors.png.import b/source/Items_Final/Item_Sprites/safetyscissors.png.import deleted file mode 100644 index f6088e3e..00000000 --- a/source/Items_Final/Item_Sprites/safetyscissors.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b4xjbdxvn3i2l" -path="res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/safetyscissors.png" -dest_files=["res://.godot/imported/safetyscissors.png-e82586fd10131f52db4b5800b7c9967b.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/source/Items_Final/Item_Sprites/soap.png b/source/Items_Final/Item_Sprites/soap.png deleted file mode 100644 index aadff60a19515e8dcd07e7f59204e0593a8705ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmV-$1CRWPP)Px&DoI2^R9J=WSI=u2K^T48M6j3A1QH6eWWkdw0ZVe&ix9kdu_s#)ym&9lrVu@e zHz_8x1U97o##K!5v@2Y4VI zj+^~kYb!=W2JsW&7_^2r%;4a#f$_~01H;~{$v0E z$W|+;U#O;_Y_)=;V%Z!Aj65i64U`Hw=DrIFn0IbXwsbfSrL7_+2}q?A$W|-1@uJo+ zlaz&J*AW+Tz;K$B5;!WBp|n*rwH5$l&QzMMtzW2!h6MD6I;I2X-hfX8Smgc50JM*i z9~H|8{4`DHQgUE+Os_8kiwmIS`{|U;IbbAIe=X2{B24 zTziG2l)$F2fiK@DCb<~oadqf}7eqj_K)_OnZo&usF!B$RbBq+onk8HJKb4~>>>YTzc zNyxk)&z{F!!)jDLFl)PC!m;3pfUeZI<3km_q3)PW!~M6&nF6dLy4p+x6~ub~`H>Ss zT;CV2myxd2xKn@thI6-LHXXp1-0O+wc^gs@0UqXUMsGd}FLF26RxI?rB66NwUj}gh z(bRFHE$SRFURsOr{Wh%sz*yUR=j`|3t)nvPx%F-b&0R9J=WmO)6{P#ng;$%X;Z9R`6}T!(`VR-_V&Vy}8_MHtp9=wKHi?7Tx! zaiy>xJc;13dQf+e&3Y?4D2zy@=%gw-SXqR0P@JGL=s|cp)MR#B^8SzJAm|4n5Az7UwY@PXYj=t_0WQ@9bq>SwdHL zKb98f9lhi6B<7|kpqI+n$*$B6&?5)fO7aJSvjKQz2_vs3@pXUCy8raKugY(RPx&)= z_tA$>r5qQ+(Ga`;jE(Gnh9}c*K{!b-m7$I1pry{S_T?cGr-xhsZVwzyKEe?IZ8XQT zVq@b3TIwFxCj@Z%VjE3~4rqtxgmPlx08qy>wD}(3EVgNT-@EYbpRu#zg?j)z2z~I$ zpWxVL#W%A>2H-w|s}T81h^9nGCGg5j+t&0dKNW!tU_t<}K->@)Aiww13jQ0!&hILK z9fWPTs$5>RkO25is49S}aA#H>PM6~fWa}GYl~fhvox0l$pV+5rH-C`#}& zm#agZq$)6q63{@(r}cnQto#E!A2b+!K?}$nuSG(yq0tv~E!Y(4ODL-EFXQe4h!g~X z$Eh)Q0qhEjg8fh24MUF{VBuc{p`z)AR?=>W1Rx3_5>5s%At*kP@LOFA{RZOe*`o6% Rsc8TJ002ovPDHLkV1myqAAkS= diff --git a/source/Items_Final/Item_Sprites/soda.png.import b/source/Items_Final/Item_Sprites/soda.png.import deleted file mode 100644 index 5da22444..00000000 --- a/source/Items_Final/Item_Sprites/soda.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dgtydwnlm8cga" -path="res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/soda.png" -dest_files=["res://.godot/imported/soda.png-83df441d400e10cc1216483031c881f9.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/source/Items_Final/Item_Sprites/spatula.png b/source/Items_Final/Item_Sprites/spatula.png deleted file mode 100644 index f675b6ab805d62e6fe93d54269c1062fd765186b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)Px$nO22>J+oRcdE4qFr0IlTcOgXlv3RY1Ko+)IW9G$7K-c|*xsKR>NJpDi( zNJ6xtb9T3D?9^TX5cn=A_Cypp4!^p1mN=W!ho!Alt|);YNc#I9zS~6 zGgmBu+WQWH?^4=w4G2J|(P4RI6@X74-tcbsb_%UME`X08E{p7+O-th0v&VUyXL)HY1NAYOwY_3km;FOs+F<< zsaDFjew0M7p$19fD3iGuK)Cbq21FKf$k_`V+f!3>3udhEyH=K7Fp&qKTUn|Vm1BD< zthd$X%P?2NxzibNY)>scw@KpYuDSwRS$g<__E&^ txj78zhPVAjjU3?T$$rmxRMr0%z#lZ`6lR$8B8~t6002ovPDHLkV1g1K1aANU diff --git a/source/Items_Final/Item_Sprites/spatula.png.import b/source/Items_Final/Item_Sprites/spatula.png.import deleted file mode 100644 index c1e52018..00000000 --- a/source/Items_Final/Item_Sprites/spatula.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://n4gexuvjvwru" -path="res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/spatula.png" -dest_files=["res://.godot/imported/spatula.png-64427b4885b6d0d2820235c1cd8b8ecb.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/source/Items_Final/Item_Sprites/spraypaint.png b/source/Items_Final/Item_Sprites/spraypaint.png deleted file mode 100644 index 2395e8903426c690702709aa1ded3415de8bdcb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UEbP)Px$$w@>(R9J=WmcL5^VHn51NvWWTU}_|4kSGVCgNcYsVMY|{mSg`-dqYEO5Y-gb zQb}`#IVgfl23`%KQipM%IJ^yYrsm!0t73!S?cV3thxeZ6?g1v6Xo!kN;v^c0ld%;h zgb04}f2Wb;qc7WepLBoNvG00cyQ z3Z)uJKVC>ePyu-SG2&wwoSqy>`h`|D06-Fg3P8AGAHzVWu>t_9{A<(RdS*ANk(S6c zP!kG;I@JmzCn|tKsfI+VF6);_)&DeTr>L9I;&$SJ`+erP**3erp@7Bh1poXp8UT)a zhiz$D)UGoufX!zyBa??3pc_ypKrfmP{D zVqvceFshKujR-){=As?|P&IzGo$EB#p2l%#KOP)Px%_(?=TR9J=WmN7^hQ5eU6mXbgr1}|0;lchq;AYu;-2QjpT&_ba$Ag%3C3U&~| zO`YuQQnZ^(2OXS55Tu1dL25w@2bCyd;k48xF(P^r0|m2Ohs&M0++Ct}D24nX5Werd z_y4``eR(fXS6%;D4b_q(!_%6o=3VoG;OE`+aMd-g1TZo@tpSMlZ*#*RptBaMyPqej}FY9}Joc#n)vl4R)YZ^d$Wy2h6tHA5g=Ky4K1rF6yW~S!384aSUdGm8K z8U$c>|A-c$k)iQ^s`bj;!kVUOn)dQ(+?Kmu8JK+Yo>!wU0EmQq42}2eiD!2m7gv5B z@jI^{k=s!i#=HAR)d5sB&)CEu>2-xn_5c#12~w%8?PGR+Yy%)AL}F45DIp@SrjZgN zEkYw6uST@B+11{601@h{vmMS}w(;67)r7 z127;!Z#1J3)9VUSyd5dtPVuY(k5?m;J2k7L$ckBk-X}V+G568{PB67%04Hj(reURQ zzk*Dz;5blTU7qGQ+1*8J}H;cgck<5ipr~2*@Ty_fZGvdvInk< zL_$6@FR!L;`Dzdr073A(n}mZ^Ar)Bx^a>oRr+|C2mdkb#>7A?_L_$6?xdM@pkMOO~ zIZUZfj7O?T@R&K{BC3>I4>|q}Pt+n!g2!>EnOuPrwP-%k#`u^Nb2KoF(<>Whto+e( zy$1{kL)pEY88<-6rN|1AaF9qiNOmu0jyH_mUP=o<`j-r|nD6}g#Zn-XJ+K^u)1@;x z`4)iWorjLQtqHIxFEs#~u%tI*Pbz6Kt28wpBLluPpG|qGnx{pMbX`(PE8hiR{s$Px$c}YY;R9J=WmA^{EP!z_0ijEE@*tsG_>?Tfmg*-x@z)7JExaj8U;wHGb)~SNN zLKllp0g+O0l1Ssw!ST5CCTY^t{>i;M_)V9?<^I0&otqo@mmyU>Uw#eVXthN|q|s`d zH&OL`5fOO|BM}iXnuO|H!LPe-=2FOZuHbu(<1quPx(u8)kLZ4Ua8tDY}G?}?xX&pZ2Z{pRcntnt0t5~!!Z04LrdSTN{3tQawHesLMERp(haK(0`R z>|Ix|fM`@GfR}E-cHHEKM@fC~G8qmfT|xz}I5omfa?7WIm6lGxc3i1AH2}We*8v#z zgTly5HIRi5`vFiq?@3ztD=31eXFrP;N?;m%mbouwpiDT-If6nsi@{-z1j_DwE(5yY zFvAFR#GcmF19Wz-RG5J7&Xpz}WTJDWTmrV^%Eorx2s~%Nc3e?UX$+6_!6ExQ9>KHk px-NL$K*oq}IQ;Mq=!X9ZeFHqN1sM@5UgrP+002ovPDHLkV1jgH%*6lz diff --git a/source/Items_Final/Item_Sprites/toothbrush.png.import b/source/Items_Final/Item_Sprites/toothbrush.png.import deleted file mode 100644 index c02978ff..00000000 --- a/source/Items_Final/Item_Sprites/toothbrush.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://jn1r45u8tnmk" -path="res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/toothbrush.png" -dest_files=["res://.godot/imported/toothbrush.png-c4b564296f3ddabafb65a67ff4bb3656.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/source/Items_Final/Item_Sprites/toyraygun.png b/source/Items_Final/Item_Sprites/toyraygun.png deleted file mode 100644 index 316bc9b590c56e5743a3fcda5bb963b2b3212b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmV+v1MB>WP)Px%&PhZ;R9J=Wl|e|8VHn4MpL0%hqr-CbEfNXALmILccHCi%A&3%2ciFi*7duJU zQ0XWgqFWKpK*!j@F2R^aVnV|m#A2U17KzI?r+ppf`}uuyn{#59_JPsYxu3KfKuW_+;yq|%+*E4 zrZ)(L0e=TG)~q%HQ#o=^ze3m5EQz>_OiC_WFc41j>2v6xz_I%Uw7~0dt0P$}idn%ooYD&XnpA0jR7~q0yu$d<0Wph>pg%z* z&(vQd9u8Frmt(0P`hd~As&EtZ@M+&Oe#+#Y;hSP~@m1 zLWH$t4=A=fyWhsD&BWl1uYg3*pCJ0GUivDRk+?Jf^y3j7if%7T&+l4Q0H3F|uJ%KP z?||MD`mqQxBKCP&0qQ2NC_s-=bFSJ}hsc})TYtSx(F_uGKtiO)+c zaH2rDzoal>%wjv2HmpPx%)Ja4^R9J=WmOo5dK^(`wk2cjXN^?c}`k0zjki@`bNbCe#2a=aA&t2l;;9v(j zI=DIz-E~nDciBi7AtY94!la zvj1$#v=fS%lGMGniLHC>YC# zk)OaOOc{tkfMO-~24b=o6j z->bsd`c~HWzy<=a14nyZP)hmuyc$BaG8B9n)XCu$bVCC$&V~$xZw3eH19`P~z zO0A|F8ukyG99Raz6`+_&nQSG%c!kzyKU-T}!s*$KG=u}dD$auR%>hmhuegtHXsA|( zyd143e*d7!51QT&Fe0mhzNUZ1+j_)z;WYRu|w#F=Ey=wRvZ}LcIiX}r)M{U7<-PZGibE> zz7Y1U2m#}J`{eK{P~6K3`4}3lJ_sRLTU`>~*&(Wxq0lGzRlHX}SNi5_lTBjd_69Uw zr4zy`Jjo{S1(SG=*aCptOEY3CH8IbGbsQxtmyVxkzg{)c4^9)QN9MoQc+=Qp`|7VsAM@_GEKbf2T Y0c%H?_82T|^Z)<=07*qoM6N<$f?%V7q5uE@ diff --git a/source/Items_Final/Item_Sprites/trenchcoat.png.import b/source/Items_Final/Item_Sprites/trenchcoat.png.import deleted file mode 100644 index 82b59c2d..00000000 --- a/source/Items_Final/Item_Sprites/trenchcoat.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dna8nprqj1ifn" -path="res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/trenchcoat.png" -dest_files=["res://.godot/imported/trenchcoat.png-df58a537ccaa509ee2e9184a88419c76.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/source/Items_Final/Item_Sprites/trowel.png b/source/Items_Final/Item_Sprites/trowel.png deleted file mode 100644 index 8d5d4e03736cfec6bfdbd6b8c0ea817a99196e25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP)Px%4oO5oR9J=Wl)q~eVI0Ok=MPkH2_44vs>diqIheDWXH^+=PNRSQ?5MqL9*XrA{h{=-Z)vk4wy(r1v9JpY85AzMuDb zp6?6iQfO`>BjzSDBJMetI=!4VhsFKrtEW#H@%qz_HZXu$b6A+;LjdTyj$HsCHi!$| zKDw?8fL$0Nt~j~^_!Sq#e-RX&eGL#W#O+&Ga9tN&*Q1`R2IvN17e*lBK6C^aB!m)R zP!K&!SakL^r+UP<#&4i?GqR=~x|CfV@I%n%MDgynXeiZ-6s(K&6A`SJqe8_)^^kV0mSMc1Kj|YYkP(nzqPU zdElg!QaigxEUzrU3q&s`LOYNgJGl%D!(e-(?71KzdN~nE1X4jDLIbR?u6Zs5fe6(B z-~Nl4XHUJ0NkRbLW~g*A41iSQpt|(a{kLd7wD|S?2LOpgg3S-_N#4A{U#?SlK22j! zEbi5|mi+%l)`5ys(%R$5S^1Xr?4(c;bb{bC4uHd2(}Pe&5h;Kl0zmd6XXTYHL=NDC iK!N~Jj$_ifBG54m9P_&vMCz;n0000Px%ElET{R9J=Wl`&`&Q5eU6id&!@NywmZ9U=`$6DQ-G8w6?0);(EVg&N4>9Eyct z$AXB>p17nsxTJ#!rB3a&dchP7G+<4n1YKOtLEm|{m)v(z6e0iRKJLBm`~BZ{@7{x% z{#UK8H|^E+rv1<0=Fz}5j|P9=gd5&`@%Fb(T%0D!dN=qbwsx#(`N0iXI~IwnQO88< z$2*!#ogPm+aj$CzHX)v@ z;C>2fLbM0wGbn>5?t@pJ?*U4ch8V2m z`>p0PD|XVzF&g%ni(Gbq`v*e+9&K5ShJDIKgIc}K=Gro)N`vFQ4)6CL`qme9U^MJI z&sx2IZd}33MT1hMLAhvfuiTN8mLEjrq5;6>+VZ(E1$Uc~N@T!mg>F-7ymNR!t=^`P zjfoA2_P~{E3ly?37E+4Xi_AxB)Z?F(3xg(>lPx%I7vi7R9J=WRliFcQ5^qVX$%Nb&}(sMHw?+kK~oeG*>mNxXAa*2G)1AIfj(h^Z$EywC4w7hlScxkFhQ}dwk3iY z)GT=?MBHvQzzZwMj59Oi6Jz-D`3TEP^IT!KM9Cf~bx%UK&q^{wXGRqV`F$MZ_mN7Z zF+MSNMbvdLD^RBP6meV*FoPEt@8HdPzY}w2RAHJXwsLFk9h1Jjishvi z1oZTtqg0VG9BPQLG5J__zHRbSC5Zbob1ZTIz}_K$mbewr!Ug0`M*#p?L>ybzX!w;X zK>)CPKk3;0{>Sd}SNg3R5=v^eS8t9buG=L!&(Z1!H1hC`Pk7bZCok-l@{{Leoc`pyYHCO3t`ZM5}}xQVZmvQ7gFzHdSzqP;^Cb5Gy4OxiYxh%)&C z#k9Eass3jWk<(u^o6C0#Smh=nvRgt#BuSEION5UR54;I?U%8^|*A3qlc>QvNo-I59 z08B^25&)zUX}o&(0>6INkV>SR%Hw-#V_KY4RmI(r!7J;W7qRmKY!R&W|8^X^=%N$& Y13@_gzp~jW0RR9107*qoM6N<$g19Cg#Q*>R diff --git a/source/Items_Final/Item_Sprites/yoyo.png.import b/source/Items_Final/Item_Sprites/yoyo.png.import deleted file mode 100644 index 7faaddd3..00000000 --- a/source/Items_Final/Item_Sprites/yoyo.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dqmbec8uh8jaq" -path="res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://source/Items_Final/Item_Sprites/yoyo.png" -dest_files=["res://.godot/imported/yoyo.png-42017300d4a26e5ea5cec441b59e415a.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/source/items/.DS_Store b/source/items/.DS_Store deleted file mode 100644 index 08dc376a09e7b055cd66239d3e507fb2262327c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO>fgc5S>j^uvI`gfCLAmmAFRW^Z>26m{1PA)(8%OLfk}P;d&$6A%`fE@9ss41-BkB-Q0B3B4XntWl&c0zSpVIXiOCunr>7};(t_t*X|A-QjK*xq2=`}>6q8@FgM3(Zc^0oNAd#x_`({Zzi`u8 zHSyfDbdqOP9YyD=wbkCfaWe>lo!~?A+02r9SWm0|uzbh8*T&@OWjsvZWaHVObN8hw z>S0!lOH0T`W0bsqn-wE7>zipYsw_8g13?&ugU*Bbd^hTKb#M3CqO0eUfS@OJXLFu%wJ8kau0k zQ`9aCxyqYZ9xuuoPd!}Yp(`c|hytR(RTc1CUa)gjqST85qQJFRfcFOtXN)~I4(--~ z#$Ew{ZKSOs=HEo-XpgbS#vw*v%29!is{9p0IXd#%*To(ihmKClUp|z7vhp_+WuK1u zwJj$VJCs%w5Cv8h*mB(tpZ~9ZfB#=4Nlz3I1+J9>s(p|g^zlmmY~6S{K5I4nBb<%v n8izkA2<%aeT0V;J!>u8&IRM5U8;8ii void: - setStartingStatusFunctions(player) - func setStartingStatusFunctions(ps : Player_Test): #Temperary. StatusEffect behavior should be stored elsewhere - addStatusStartFunction("Fire", Callable(Item,"fire_start").bind(ps)) - addStatusEndFunction("FireTick", Callable(Item_Functions,"fire_tick_end").bind(ps)) - addStatusStartFunction("Damage Buff 2", (func(x : Player_Test): x.damage += 3).bind(ps)) - addStatusEndFunction("Damage Buff 2", (func(x : Player_Test): x.damage -= 3).bind(ps)) + addStatusStartFunction("Fire", Callable(ItemFunctions,"fire_start").bind(ps)) + addStatusEndFunction("FireTick", Callable(ItemFunctions,"fire_tick_end").bind(ps)) + addStatusStartFunction("Poison", Callable(ItemFunctions, "poison_start").bind(ps)) + addStatusEndFunction("PoisonTick", Callable(ItemFunctions,"poison_tick_end").bind(ps)) + addStatusStartFunction("Stun", Callable(ItemFunctions, "stun_start").bind(ps)) + addStatusEndFunction("Stun", Callable(ItemFunctions,"stun_end").bind(ps)) + addStatusStartFunction("Spook", Callable(ItemFunctions, "spook_start").bind(ps)) + addStatusEndFunction("Spook", Callable(ItemFunctions,"spook_end").bind(ps)) func giveStatus(status : String, overlapBehavior : OverLapBehavior = OverLapBehavior.IGNORE) -> void: if(statusFunctionsStart.has(status)): @@ -97,7 +97,9 @@ func addStatusEndFunction(statusName : String, function : Callable): var newFunctions : Array[Callable] statusFunctionsEnd[statusName] = newFunctions statusFunctionsEnd[statusName].append(function) - +func addStatusStartAndEndFunction(statusName : String, startFunction : Callable, endFunction : Callable): + addStatusStartFunction(statusName, startFunction) + addStatusEndFunction(statusName, endFunction) func call_start_functions(status : String) -> void: for c in statusFunctionsStart[status]: c.call() diff --git a/source/Items_Final/Item_Sprites/Magic Deck of Cards.png b/source/items/Item_Sprites/Magic Deck of Cards.png similarity index 100% rename from source/Items_Final/Item_Sprites/Magic Deck of Cards.png rename to source/items/Item_Sprites/Magic Deck of Cards.png diff --git a/source/Items_Final/Item_Sprites/Magic Deck of Cards.png.import b/source/items/Item_Sprites/Magic Deck of Cards.png.import similarity index 67% rename from source/Items_Final/Item_Sprites/Magic Deck of Cards.png.import rename to source/items/Item_Sprites/Magic Deck of Cards.png.import index 31b624e0..c5cf0b05 100644 --- a/source/Items_Final/Item_Sprites/Magic Deck of Cards.png.import +++ b/source/items/Item_Sprites/Magic Deck of Cards.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://rdfoxey27gip" -path="res://.godot/imported/Magic Deck of Cards.png-79c8b93f3f1d9ddaecee72e0c1be9dfd.ctex" +path="res://.godot/imported/Magic Deck of Cards.png-709d9409b93ee4069d1ac5cea9a61f62.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://source/Items_Final/Item_Sprites/Magic Deck of Cards.png" -dest_files=["res://.godot/imported/Magic Deck of Cards.png-79c8b93f3f1d9ddaecee72e0c1be9dfd.ctex"] +source_file="res://source/items/Item_Sprites/Magic Deck of Cards.png" +dest_files=["res://.godot/imported/Magic Deck of Cards.png-709d9409b93ee4069d1ac5cea9a61f62.ctex"] [params] diff --git a/source/Items_Final/Item_Sprites/roller skates.png b/source/items/Item_Sprites/roller skates.png similarity index 100% rename from source/Items_Final/Item_Sprites/roller skates.png rename to source/items/Item_Sprites/roller skates.png diff --git a/source/Items_Final/Item_Sprites/roller skates.png.import b/source/items/Item_Sprites/roller skates.png.import similarity index 69% rename from source/Items_Final/Item_Sprites/roller skates.png.import rename to source/items/Item_Sprites/roller skates.png.import index 54e8762b..8046cb11 100644 --- a/source/Items_Final/Item_Sprites/roller skates.png.import +++ b/source/items/Item_Sprites/roller skates.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dfxoi3ybrks0c" -path="res://.godot/imported/roller skates.png-ce3384efdbf22788459aabcc0de71130.ctex" +path="res://.godot/imported/roller skates.png-d0d921aece948ea3791c3d8a1393263e.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://source/Items_Final/Item_Sprites/roller skates.png" -dest_files=["res://.godot/imported/roller skates.png-ce3384efdbf22788459aabcc0de71130.ctex"] +source_file="res://source/items/Item_Sprites/roller skates.png" +dest_files=["res://.godot/imported/roller skates.png-d0d921aece948ea3791c3d8a1393263e.ctex"] [params] diff --git a/source/scenes/Ite9DDE.tmp b/source/scenes/Ite9DDE.tmp new file mode 100644 index 00000000..41bfa6cc --- /dev/null +++ b/source/scenes/Ite9DDE.tmp @@ -0,0 +1,129 @@ +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] + +[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[sub_resource type="GDScript" id="GDScript_iagei"] +script/source = "#class_name StatusEffectManager +extends Node + +var statuses : Array[String] +var statusFunctionsStart : Dictionary#[String:Array[Callable]] +var statusFunctionsEnd : Dictionary#[String,Array[Callable]] + +var timers : Dictionary#[Timer, String] +#might need to be list of statuses for status effect stacking +@onready var player : Player_Test = get_parent() +enum OverLapBehavior{ + IGNORE, + REFRESH, + STACK +} + +func _ready() -> void: + setStartingStatusFunctions(player) + +func setStartingStatusFunctions(ps : Player_Test): + #Temperary. StatusEffect behavior should be stored elsewhere + addStatusStartFunction(\"Fire\", Callable(Item,\"fire_start\").bind(ps)) + addStatusEndFunction(\"FireTick\", Callable(Item_Functions,\"fire_tick_end\").bind(ps)) + addStatusStartFunction(\"Damage Buff 2\", (func(x : Player_Test): x.damage += 3).bind(ps)) + addStatusEndFunction(\"Damage Buff 2\", (func(x : Player_Test): x.damage -= 3).bind(ps)) + +func giveStatus(status : String, overlapBehavior : OverLapBehavior = OverLapBehavior.IGNORE) -> void: + if(statusFunctionsStart.has(status)): + call_start_functions(status) + if(hasStatus(status)): + match overlapBehavior: + OverLapBehavior.IGNORE: + pass + OverLapBehavior.REFRESH: + removeStatus(status) + statuses.append(status) + OverLapBehavior.STACK: + statuses.append(status) + else: + statuses.append(status) + + + + +func giveStatusTimed(status: String,duration : float, overlapBehavior : OverLapBehavior = OverLapBehavior.IGNORE) -> void: + if(hasStatus(status)): + match overlapBehavior: + OverLapBehavior.IGNORE: + pass + OverLapBehavior.REFRESH: + for t : Timer in timers: #for loop not looking good. maybe we can reorganize the timers + if(timers[t] == status): + remove_timer(t) + create_timer(status,duration) + OverLapBehavior.STACK: + giveStatus(status, overlapBehavior) + create_timer(status,duration) + else: + giveStatus(status, overlapBehavior) + create_timer(status,duration) + +func hasStatus(status: String) -> bool: + return statuses.has(status) + +func create_timer(status : String, duration :float): + var timer := Timer.new() + add_child(timer) + timer.wait_time = duration + timer.one_shot = true + timers[timer] = status + timer.start() + timer.connect(\"timeout\", Callable(self,\"removeStatus\").bind(status)) + timer.connect(\"timeout\", Callable(self, \"remove_timer\").bind(timer)) + timer.connect(\"timeout\", timer.queue_free) + +func remove_timer(timer : Timer): + if(timers.has(timer)): + timers.erase(timer) + timer.queue_free() + else: + print(\"tried to remove timer without a that doesnt exist in timers list\") + +func removeStatus(status: String): + statuses.erase(status) + if(statusFunctionsEnd.has(status)): + call_end_functions(status) + + + +func addStatusStartFunction(statusName : String, function : Callable): + if(!statusFunctionsStart.has(statusName)): + var newFunctions : Array[Callable] + statusFunctionsStart[statusName] = newFunctions + statusFunctionsStart[statusName].append(function) +func addStatusEndFunction(statusName : String, function : Callable): + if(!statusFunctionsEnd.has(statusName)): + var newFunctions : Array[Callable] + statusFunctionsEnd[statusName] = newFunctions + statusFunctionsEnd[statusName].append(function) + +func call_start_functions(status : String) -> void: + for c in statusFunctionsStart[status]: + c.call() + +func call_end_functions(status : String) -> void: + for c in statusFunctionsEnd[status]: + c.call() + +" + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] +script = ExtResource("1_rryau") + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") + +[node name="StatusEffectManager" type="Node2D" parent="Player"] +script = SubResource("GDScript_iagei") diff --git a/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd b/source/scenes/IteBE9E.tmp similarity index 65% rename from source/Items_Final/Item_Scripts/Status_Effect_Manager.gd rename to source/scenes/IteBE9E.tmp index dde36fd6..93a16fcd 100644 --- a/source/Items_Final/Item_Scripts/Status_Effect_Manager.gd +++ b/source/scenes/IteBE9E.tmp @@ -1,4 +1,11 @@ -class_name StatusEffectManager +[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] + +[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[sub_resource type="GDScript" id="GDScript_iagei"] +script/source = "class_name StatusEffectManager extends Node var statuses : Array[String] @@ -7,22 +14,22 @@ var statusFunctionsEnd : Dictionary#[String,Array[Callable]] var timers : Dictionary#[Timer, String] #might need to be list of statuses for status effect stacking +@onready var player : Player_Test = get_parent() enum OverLapBehavior{ IGNORE, REFRESH, STACK } +func _ready() -> void: + setStartingStatusFunctions(player) + func setStartingStatusFunctions(ps : Player_Test): #Temperary. StatusEffect behavior should be stored elsewhere - addStatusStartFunction("Fire", Callable(ItemFunctions,"fire_start").bind(ps)) - addStatusEndFunction("FireTick", Callable(ItemFunctions,"fire_tick_end").bind(ps)) - addStatusStartFunction("Poison", Callable(ItemFunctions, "poison_start").bind(ps)) - addStatusEndFunction("PoisonTick", Callable(ItemFunctions,"poison_tick_end").bind(ps)) - addStatusStartFunction("Stun", Callable(ItemFunctions, "stun_start").bind(ps)) - addStatusEndFunction("Stun", Callable(ItemFunctions,"stun_end").bind(ps)) - addStatusStartFunction("Spook", Callable(ItemFunctions, "spook_start").bind(ps)) - addStatusEndFunction("Spook", Callable(ItemFunctions,"spook_end").bind(ps)) + addStatusStartFunction(\"Fire\", Callable(Item,\"fire_start\").bind(ps)) + addStatusEndFunction(\"FireTick\", Callable(Item_Functions,\"fire_tick_end\").bind(ps)) + addStatusStartFunction(\"Damage Buff 2\", (func(x : Player_Test): x.damage += 3).bind(ps)) + addStatusEndFunction(\"Damage Buff 2\", (func(x : Player_Test): x.damage -= 3).bind(ps)) func giveStatus(status : String, overlapBehavior : OverLapBehavior = OverLapBehavior.IGNORE) -> void: if(statusFunctionsStart.has(status)): @@ -69,16 +76,16 @@ func create_timer(status : String, duration :float): timer.one_shot = true timers[timer] = status timer.start() - timer.connect("timeout", Callable(self,"removeStatus").bind(status)) - timer.connect("timeout", Callable(self, "remove_timer").bind(timer)) - timer.connect("timeout", timer.queue_free) + timer.connect(\"timeout\", Callable(self,\"removeStatus\").bind(status)) + timer.connect(\"timeout\", Callable(self, \"remove_timer\").bind(timer)) + timer.connect(\"timeout\", timer.queue_free) func remove_timer(timer : Timer): if(timers.has(timer)): timers.erase(timer) timer.queue_free() else: - print("tried to remove timer without a that doesnt exist in timers list") + print(\"tried to remove timer without a that doesnt exist in timers list\") func removeStatus(status: String): statuses.erase(status) @@ -97,9 +104,7 @@ func addStatusEndFunction(statusName : String, function : Callable): var newFunctions : Array[Callable] statusFunctionsEnd[statusName] = newFunctions statusFunctionsEnd[statusName].append(function) -func addStatusStartAndEndFunction(statusName : String, startFunction : Callable, endFunction : Callable): - addStatusStartFunction(statusName, startFunction) - addStatusEndFunction(statusName, endFunction) + func call_start_functions(status : String) -> void: for c in statusFunctionsStart[status]: c.call() @@ -108,3 +113,17 @@ func call_end_functions(status : String) -> void: for c in statusFunctionsEnd[status]: c.call() +" + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] +script = ExtResource("1_rryau") + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") + +[node name="StatusEffectManager" type="Node2D" parent="Player"] +script = SubResource("GDScript_iagei") diff --git a/source/scenes/IteF74B.tmp b/source/scenes/IteF74B.tmp new file mode 100644 index 00000000..07be4f27 --- /dev/null +++ b/source/scenes/IteF74B.tmp @@ -0,0 +1,14 @@ +[gd_scene load_steps=2 format=3 uid="uid://csmmvcufjnsl2"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] + +[node name="Node2D" type="Node2D"] + +[node name="Player" type="Node2D" parent="."] + +[node name="Area2D" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"] +shape = SubResource("CircleShape2D_f54gc") + +[node name="StatusEffectManager" type="Node2D" parent="Player"] diff --git a/source/scenes/ItemTestingScene.tscn b/source/scenes/ItemTestingScene.tscn index 8ab21e82..07be4f27 100644 --- a/source/scenes/ItemTestingScene.tscn +++ b/source/scenes/ItemTestingScene.tscn @@ -1,14 +1,10 @@ -[gd_scene load_steps=4 format=3 uid="uid://csmmvcufjnsl2"] - -[ext_resource type="Script" path="res://source/scripts/Player_Test.gd" id="1_rryau"] -[ext_resource type="Script" path="res://source/items/Item_Scripts/Status_Effect_Manager.gd" id="2_evv0p"] +[gd_scene load_steps=2 format=3 uid="uid://csmmvcufjnsl2"] [sub_resource type="CircleShape2D" id="CircleShape2D_f54gc"] [node name="Node2D" type="Node2D"] [node name="Player" type="Node2D" parent="."] -script = ExtResource("1_rryau") [node name="Area2D" type="Area2D" parent="Player"] @@ -16,4 +12,3 @@ script = ExtResource("1_rryau") shape = SubResource("CircleShape2D_f54gc") [node name="StatusEffectManager" type="Node2D" parent="Player"] -script = ExtResource("2_evv0p") diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn new file mode 100644 index 00000000..3074afae --- /dev/null +++ b/source/scenes/demo_room.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=5 format=3 uid="uid://cy7svppwvqp1j"] + +[ext_resource type="PackedScene" uid="uid://rgfnpcsvv534" path="res://source/scenes/player.tscn" id="1_uxgo6"] +[ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] +[ext_resource type="PackedScene" uid="uid://b55salwd6xeoq" path="res://source/scenes/settings.tscn" id="3_c83ju"] +[ext_resource type="PackedScene" uid="uid://bakpk65fsky20" path="res://source/scenes/itemSelector/item_selector_portal.tscn" id="4_nji7u"] + +[node name="DemoRoom" type="Node2D"] + +[node name="Player" parent="." instance=ExtResource("1_uxgo6")] +collision_mask = 2 +metadata/player_num = 1 + +[node name="Player2" parent="." instance=ExtResource("1_uxgo6")] +position = Vector2(73, 0) +collision_mask = 2 +metadata/player_num = 2 + +[node name="Player3" parent="." instance=ExtResource("1_uxgo6")] +position = Vector2(122, 1) +collision_mask = 2 +metadata/player_num = 3 + +[node name="Player4" parent="." instance=ExtResource("1_uxgo6")] +position = Vector2(156, -2) +collision_mask = 2 +metadata/player_num = 4 + +[node name="ItemSelectorPortal" parent="." instance=ExtResource("4_nji7u")] +position = Vector2(86, -110) + +[node name="ColorRect" type="ColorRect" parent="."] +offset_right = 40.0 +offset_bottom = 40.0 +color = Color(1, 0, 1, 1) + +[node name="quit" type="Node2D" parent="."] +script = ExtResource("2_c3313") + +[node name="Settings" parent="." instance=ExtResource("3_c83ju")] +visible = false +z_index = 1 +offset_left = -508.0 +offset_top = -258.0 +offset_right = 516.0 +offset_bottom = 254.0 diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index f251ff42..ad49175d 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -662,7 +662,9 @@ height = 28.0 [node name="Player" type="CharacterBody2D"] script = ExtResource("1_ws1a7") -metadata/player_num = "" +base_speed = 100.0 +character = 2 +metadata/player_num = "1" [node name="PlayerSprite" type="Node2D" parent="."] diff --git a/source/scripts/Player_Test.gd b/source/scripts/Player_Test.gd index 2d0ce435..845d5683 100644 --- a/source/scripts/Player_Test.gd +++ b/source/scripts/Player_Test.gd @@ -37,7 +37,7 @@ func _ready(): # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(_delta: float) -> void: manage_test_input() - playerStat_Test_Textbox.text = "maxHealth: " + str(maxHealth) + "\ndamage: " + str(damage) + "\nspeed: " + str(speed) +"\ncurrentHealth: " + str(health) + "\ntenasity: " + str(tenasity) + "\nluck: " + str(luck) +"\ncandy: " + str(candy) + #playerStat_Test_Textbox.text = "maxHealth: " + str(maxHealth) + "\ndamage: " + str(damage) + "\nspeed: " + str(speed) +"\ncurrentHealth: " + str(health) + "\ntenasity: " + str(tenasity) + "\nluck: " + str(luck) +"\ncandy: " + str(candy) func manage_test_input(): pass #Press enter to get item (currently only the DmgBuffItem) @@ -57,10 +57,10 @@ func manage_test_input(): print("round start") ##press right mouse to check damage stat - if Input.is_action_just_pressed("mouse0_Test"): - hit_object(null) - print("I hit something") - call_functions(onAttackFunctions) + #if Input.is_action_just_pressed("mouse0_Test"): + # hit_object(null) + # print("I hit something") + # call_functions(onAttackFunctions) func get_item(item : Item): damage += item.attackDamage health += item.maxHealth @@ -94,12 +94,12 @@ func hit_object(otherPs: Player_Test):#otherPs - hit Playerscript func change_health(deltaHealth : float): - print("Player took " + str(-deltaHealth) + " damage") health += deltaHealth - #onGetHit.emit(self); call_functions(onGetHitFunctions) if(health < 0): - print("You died fool") + #handle death + pass + func call_functions(arr : Array[Callable]): for i in arr: diff --git a/source/scripts/Stats.gd b/source/scripts/Stats.gd new file mode 100644 index 00000000..a7c10bb8 --- /dev/null +++ b/source/scripts/Stats.gd @@ -0,0 +1,48 @@ +extends Node +class_name Stats +var attackDamage: float +var attackSpeed: float #unused currently +var maxHealth : float +var speed : float +var cooldownReduction : float #unused currently +var tenacity : float +var luck : float +func setStats(_attackDamage: float, _attackSpeed: float, _maxHealth : float, _speed : float, _cooldownReduction : float, _tenacity : float, _luck : float) -> Stats: + self.attackDamage = _attackDamage + self.attackSpeed = _attackSpeed + self.maxHealth = _maxHealth + self.speed = _speed + self.cooldownReduction = _cooldownReduction + self.tenacity = _tenacity + self.luck = _luck + return self + +func setStatsCopy(other: Stats) -> Stats: + self.attackDamage = other.attackDamage + self.attackSpeed = other.attackSpeed + self.maxHealth = other.maxHealth + self.speed = other.speed + self.cooldownReduction = other.cooldownReduction + self.tenacity = other.tenacity + self.luck = other.luck + return self + +func addStats(_attackDamage: float, _attackSpeed: float, _maxHealth : float, _speed : float, _cooldownReduction : float, _tenacity : float, _luck : float) -> Stats: + self.attackDamage += _attackDamage + self.attackSpeed += _attackSpeed + self.maxHealth += _maxHealth + self.speed += _speed + self.cooldownReduction += _cooldownReduction + self.tenacity += _tenacity + self.luck += _luck + return self + +func addStatsCopy(stats: Stats) -> Stats: + self.attackDamage += stats.attackDamage + self.attackSpeed += stats.attackSpeed + self.maxHealth += stats.maxHealth + self.speed += stats.speed + self.cooldownReduction += stats.cooldownReduction + self.tenacity += stats.tenacity + self.luck += stats.luck + return self diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 48685435..a5e218dd 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -7,9 +7,9 @@ var Speed := 0.0 var movement := Vector2.ZERO var last_movement := Vector2(0,1) -var TOP_SPEED_FACTOR := 15.0 -var ACCELERATION := 15.0 -var DECELERATION := 15.0 +#var TOP_SPEED_FACTOR := 15.0 replaced by total_stats.speed +var ACCELERATION := 2 +var DECELERATION := 2 var dash: bool @export var base_attackDamage: float @export var base_attackSpeed: float @@ -18,16 +18,10 @@ var dash: bool @export var base_cooldownReduction : float @export var base_tenacity : float @export var base_luck : float -var item_attackDamage: float -var item_attackSpeed: float -var item_maxHealth : float -var item_speed : float -var item_cooldownReduction : float -var item_tenacity : float -var item_luck : float -#These are placeholder sprites for each character -var sprite_list: Array = [preload("res://source/items/Item_Resources/BakingSoda.tres"), preload("res://source/items/Item_Resources/BaseballBat.tres"), -preload("res://source/items/Item_Resources/BaseballCap.tres"), preload("res://source/items/Item_Resources/BoxingGloves.tres")] + +var total_stats : Stats +var base_stats : Stats +var item_stats : Stats #keep doing for each type of animation var run_animations: Array = [null, null, null, null] @@ -36,9 +30,10 @@ var hit_animations: Array = [null, null, null, null] #this is just a test repleca of the player @export var items: Array[Resource] -var maxHealth : int = 12 -var damage : int = 0 -var topSpeed : int = 10 +#LEGACY replaced by total_stats +#var maxHealth : int = 12 +#var damage : int = 0 +#var topSpeed : int = 10 enum Character { WITCH, @@ -46,8 +41,8 @@ enum Character { GHOST, PUMPKIN } -var character = Character.WITCH - +@export var character : Character #SHOULD BE SET WHEN INSTANTIATING +@export var isMonster : bool #Enemy attack instances const Projectile_Scene := preload("res://source/scenes/projectile.tscn") const Frank_Attack_Scene := preload("res://source/scenes/frankenstein_attack.tscn") @@ -56,22 +51,23 @@ const Ghost_Attack_Scene := preload("res://source/scenes/ghost_attack.tscn") var health :int = 0 -#signal onAttack(player)#This signals will emit every attack -#signal onGetHit(player)#This signal will emit every time the player gets hit -#more signals to tell items when to trigger their effects var onAttackFunctions : Array[Callable] -var onFireFunctions : Array[Callable] var onHitFunctions : Array[Callable] var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter +var onSwitchCharacter : Array[Callable] +var onRoundStart : Array[Callable] var direction: Vector2 = Vector2(0, 1) -var model: String = "ghost_kid" +var model: String #@onready var statusEffects : StatusEffectManager = $StatusEffectManager @onready var sprite : AnimatedSprite2D = $PlayerSprite/Body func _ready() -> void: player_num = str(get_meta("player_num")) + set_starting_stats() + set_model_name() + health = total_stats.maxHealth pass func _process(delta: float) -> void: @@ -80,42 +76,60 @@ func _process(delta: float) -> void: if(movement != Vector2.ZERO): last_movement = movement +func round_start(): + call_functions(onRoundStart) + func handle_move() -> void: - movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() - + #movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() playWalkOrIdleAnimation(velocity) if not velocity.is_zero_approx(): direction = velocity if movement.length() : - Speed = move_toward(Speed, topSpeed * TOP_SPEED_FACTOR, ACCELERATION) + Speed = move_toward(Speed, total_stats.speed, ACCELERATION) - if movement.x: - var player_num = str(get_meta("player_num")) - #movement = Vector2(Input.get_axis("Left1", "Right1"), Input.get_axis("Up1", "Down1")).normalized() - #TOP_SPEED_FACTOR = 15 - #ACCELERATION = 15 - #DECELERATION = 15 - #if not dash and Input.is_action_just_pressed("Dash"): - #print("ENTERING DASH") - #dashing() - #if movement.length(): # stats.topSpeed = 10 - #Speed = move_toward(Speed, 10 * TOP_SPEED_FACTOR, ACCELERATION) - #else: - #Speed = move_toward(Speed, 0, DECELERATION) # Gradually decrease speed to zero - # #if movement.x: - #velocity.x = movement.x * Speed - #else: - #velocity.x = move_toward(velocity.x, 0, DECELERATION) # Gradually decrease horizontal velocity to zero - # - #if movement.y: - #velocity.y = movement.y * Speed - #else: - #velocity.y = move_toward(velocity.y, 0, DECELERATION) # Gradually decrease vertical velocity to zero - # - #move_and_slide() # Ensure velocity is passed to move_and_slide + #var player_num = str(get_meta("player_num")) + movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() #this needs to use the input map + if not dash and Input.is_action_just_pressed("Dash"): + print("ENTERING DASH") + #dashing() + if movement.length(): # stats.topSpeed = 10 + Speed = move_toward(Speed, total_stats.speed, total_stats.speed * ACCELERATION) + else: + Speed = move_toward(Speed, 0, total_stats.speed * DECELERATION) # Gradually decrease speed to zero + + if movement.x: + velocity.x = movement.x * Speed + else: + velocity.x = move_toward(velocity.x, 0, total_stats.speed * DECELERATION) # Gradually decrease horizontal velocity to zero + + if movement.y: + velocity.y = movement.y * Speed + else: + velocity.y = move_toward(velocity.y, 0, total_stats.speed * DECELERATION) # Gradually decrease vertical velocity to zero + + move_and_slide() # Ensure velocity is passed to move_and_slide + +func set_starting_stats(): + total_stats = Stats.new().setStats(base_attackDamage, base_attackSpeed, base_maxHealth, base_speed, base_cooldownReduction, base_tenacity, base_luck) + base_stats = Stats.new().setStatsCopy(total_stats) + item_stats = Stats.new().setStats(0,0,0,0,0,0,0) + +func set_model_name(): + match character: + Character.WITCH: + model = "witch_" + ("monster" if isMonster else "kid") + Character.FRANKENSTEIN: + model = "frankenstein_" + ("monster" if isMonster else "kid") + Character.GHOST: + model = "ghost_" + ("monster" if isMonster else "kid") + Character.PUMPKIN: + model = "pumpkin_" + ("monster" if isMonster else "kid") + _: + print("ERROR: Player not assigned character") func handle_attack(): #Right now, just enables, hitbox for 0.5 seconds + call_functions(onAttackFunctions) match character: #THIS NEEDS TO BE UPDATED AFTER ATTACK SCENES MADE Character.WITCH: @@ -130,7 +144,10 @@ func handle_attack(): #Right now, just enables, hitbox for 0.5 seconds print("ERROR: Player not assigned character") func handle_damage(attackingPlayer: CharacterBody2D) -> void: - pass + for i in onGetHitFunctions: + i.call(self,attackingPlayer) + attackingPlayer = attackingPlayer as Player + attackingPlayer.call_functions(attackingPlayer.onHitFunctions) #UPDATE #Health -= attackingPlayer.get_damage() @@ -153,30 +170,30 @@ func get_damage() -> float: func get_item(item : Item): - damage += item.damage - health += item.health + item_stats.addStats(item.attackDamage, item.attackSpeed, item.maxHealth, item.speed, item.cooldownReduction, item.tenacity, item.luck) for i in range(item.FunctionTypes.size()): match item.functionTypes[i]: Item.FunctionTypes.OnStart: - Callable(Item_Functions, item.functionNames[i]).bind(self).call() - Item.FunctionTypes.OnFire: - onFireFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + Callable(ItemFunctions, item.functionNames[i]).bind(self).call() + Item.FunctionTypes.OnAttack: + onAttackFunctions.append(Callable(ItemFunctions, item.functionNames[i]).bind(self)) Item.FunctionTypes.OnHit: - onHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + onHitFunctions.append(Callable(ItemFunctions, item.functionNames[i])) Item.FunctionTypes.OnGetHit: - onGetHitFunctions.append(Callable(Item_Functions, item.functionNames[i]).bind(self)) + onGetHitFunctions.append(Callable(ItemFunctions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnRoundStart: + onRoundStart.append(Callable(ItemFunctions, item.functionNames[i]).bind(self)) -func hit_object(ps: Player_Test): - pass +func update_totalStats(): + total_stats.setStats(base_stats.attackDamage + item_stats.attackDamage * .1 * base_stats.attackDamage, base_stats.attackSpeed + item_stats.attackSpeed * .1 * base_stats.attackSpeed, base_stats.maxHealth + item_stats.maxHealth * .25 * base_stats.maxHealth, base_stats.speed + item_stats.speed * .1 * base_stats.speed, base_stats.cooldownReduction + item_stats.cooldownReduction, base_stats.tenacity + item_stats.tenacity, base_stats.luck + item_stats.luck) func change_health(deltaHealth : float): - print("Player took " + str(-deltaHealth) + " damage") health += deltaHealth - #onGetHit.emit(self); call_functions(onGetHitFunctions) if(health < 0): - print("You died fool") + #handle death + pass func call_functions(arr : Array[Callable]): for i in arr: @@ -197,8 +214,9 @@ func getDirectionWord(direction: Vector2): if direction.y > 0: return "down" elif direction.y < 0: return "up" -func changeModel(newModel: String): - model = newModel +#currently unused +#func changeModel(newModel: String): + #model = newModel #SPLIT From 8d2b9c116ac79002fee6284f468fa6055081eb04 Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Sat, 16 Nov 2024 07:47:05 -0500 Subject: [PATCH 103/110] Minor changes to remove some warnings --- source/items/Item_Scripts/Item_Functions.gd | 2 +- source/scripts/player.gd | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/source/items/Item_Scripts/Item_Functions.gd b/source/items/Item_Scripts/Item_Functions.gd index 5e9f88f4..cc4aa9c9 100644 --- a/source/items/Item_Scripts/Item_Functions.gd +++ b/source/items/Item_Scripts/Item_Functions.gd @@ -27,7 +27,7 @@ func spook_end(ps : Player): func yoyo_onStart(ps: Player): ps.statusEffects.addStatusStartAndEndFunction("yoyo_speedBuff", Callable(self,"yoyo_speedBuff_start").bind(ps), Callable(self,"yoyo_speedBuff_end").bind(ps)) -func yoyo_onHit(ps: Player, other :Player): +func yoyo_onHit(ps: Player, _other :Player): ps.statusEffects.giveStatusTimed("yoyo_speedBuff", 3, StatusEffectManager.OverLapBehavior.STACK) func yoyo_speedBuff_start(ps: Player): ps.speed += 2 diff --git a/source/scripts/player.gd b/source/scripts/player.gd index a5e218dd..05bcf72a 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -50,7 +50,7 @@ const Pumpkin_Attack_Scene := preload("res://source/scenes/pumpkin_attack.tscn") const Ghost_Attack_Scene := preload("res://source/scenes/ghost_attack.tscn") -var health :int = 0 +var health : float = 0 var onAttackFunctions : Array[Callable] var onHitFunctions : Array[Callable] @@ -199,20 +199,20 @@ func call_functions(arr : Array[Callable]): for i in arr: i.call() -func playWalkOrIdleAnimation(velocity: Vector2): - if velocity.is_zero_approx(): +func playWalkOrIdleAnimation(_velocity: Vector2): + if _velocity.is_zero_approx(): sprite.play(model + "_idle_" + getDirectionWord(direction)) else: sprite.play(model + "_walk_" + getDirectionWord(velocity)) -func getDirectionWord(direction: Vector2): - if direction.is_zero_approx(): return "down" - if abs(direction.x) >= abs(direction.y): - if direction.x > 0: return "right" - elif direction.x < 0: return "left" +func getDirectionWord(_direction: Vector2): + if _direction.is_zero_approx(): return "down" + if abs(_direction.x) >= abs(direction.y): + if _direction.x > 0: return "right" + elif _direction.x < 0: return "left" else: - if direction.y > 0: return "down" - elif direction.y < 0: return "up" + if _direction.y > 0: return "down" + elif _direction.y < 0: return "up" #currently unused #func changeModel(newModel: String): From aacc8b76e3def86fe6f95610386ee08ea7e98a2f Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Sat, 16 Nov 2024 15:30:17 -0500 Subject: [PATCH 104/110] A fix for the item system in player script Item system still doesnt work completely --- .../Item_Resource_Unused/Magic8Ball.tres | 25 +++++++++++++++ source/items/Item_Scripts/Item_Functions.gd | 29 +++++++++++------ source/scripts/Stats.gd | 31 +++++++++++++++++++ source/scripts/player.gd | 3 +- 4 files changed, 78 insertions(+), 10 deletions(-) create mode 100644 source/items/Item_Resource_Unused/Magic8Ball.tres diff --git a/source/items/Item_Resource_Unused/Magic8Ball.tres b/source/items/Item_Resource_Unused/Magic8Ball.tres new file mode 100644 index 00000000..e6c00c4a --- /dev/null +++ b/source/items/Item_Resource_Unused/Magic8Ball.tres @@ -0,0 +1,25 @@ +[gd_resource type="Resource" script_class="Item" load_steps=3 format=3 uid="uid://cny0mhc6ffqvk"] + +[ext_resource type="Script" path="res://source/items/Item_Scripts/Item.gd" id="1_7qar8"] +[ext_resource type="Texture2D" uid="uid://sqeho1chu66e" path="res://source/items/Item_Sprites/magic8ball.png" id="2_tmdtx"] + +[resource] +script = ExtResource("1_7qar8") +sprite = ExtResource("2_tmdtx") +name = "" +description = "++++ Luck +On 10% hp: +++++++++ Attack damage +++++ Speed +" +rarity = 3 +cost = 0 +attackDamage = 0.0 +attackSpeed = 0.0 +maxHealth = 0.0 +speed = 0.0 +cooldownReduction = 0.0 +tenacity = 0.0 +luck = 4.0 +functionTypes = Array[int]([]) +functionNames = Array[String]([]) diff --git a/source/items/Item_Scripts/Item_Functions.gd b/source/items/Item_Scripts/Item_Functions.gd index cc4aa9c9..c5183d4e 100644 --- a/source/items/Item_Scripts/Item_Functions.gd +++ b/source/items/Item_Scripts/Item_Functions.gd @@ -161,24 +161,35 @@ func rainbowLolipop_onGetHit(ps : Player): if(ps.statusEffects.hasStatus("rainbowLolipop_buff")): ps.statusEffects.removeStatus("rainbowLolipop_buff") func rainbowLolipop_buff_start(ps : Player): - ps.damage += 2 - ps.speed += 2 + ps.item_stats.modifyAttackDamage(2) + ps.item_stats.modifySpeed(2) func rainbowLolipop_buff_end(ps : Player): - ps.damage -= 2 - ps.speed -= 2 + ps.item_stats.modifyAttackDamage(-2) + ps.item_stats.modifySpeed(-2) func rainbowLolipop_tenasityBuff_start(ps : Player): - ps.tenasity += 2 + ps.item_stats.modifyTenasity(2) func rainbowLolipop_tenasityBuff_end(ps : Player): - ps.tenasity -= 2 + ps.item_stats.modifyTenasity(-2) func rollerSkates_onStart(ps : Player): - ps.statusEffects.addStatusStartAndEndFunction("rollerSkates_buff", Callable(self, "rollerSkates_buff_start").bind(ps), Callable(self, "rollerSkates_buff_end").bind(ps)) + ps.statusEffects.addStatusStartAndEndFunction("rollerSkates_buff", Callable(self, "rollerSkates_buff_start").bind(ps), Callable(self, "rollerSkates_buff_end").bind(ps)) func rollerSkates_onHit(ps : Player): while(ps.statusEffects.hasStatus("rollerSkates_buff")): ps.statusEffects.removeStatus("rollerSkates_buff") for i in range(0, (int)((1- ps.health / ps.maxHealth) * 10)): ps.statusEffects.giveStatus("rollerSkates_buff", StatusEffectManager.OverLapBehavior.STACK) func rollerSkates_buff_start(ps : Player): - ps.speed += 1 + ps.item_stats.modifySpeed(1) func rollerSkates_buff_end(ps : Player): - ps.speed -= 1 + ps.item_stats.modifySpeed(-1) + +func magic8Ball_onStart(ps : Player): + ps.statusEffects.addStatusStartAndEndFunction("magic8Ball_buff", Callable(self, "magic8Ball_buff_start"), Callable(self, "magic8Ball_buff_end")) +func magic8Ball_onGetHit(ps : Player): + pass +func magic8Ball_buff_start(ps : Player): + ps.item_stats.modifyAttackDamage(8) + ps.item_stats.modifySpeed(4) +func magic8Ball_buff_end(ps : Player): + ps.item_stats.modifyAttackDamage(-8) + ps.item_stats.modifySpeed(-4) diff --git a/source/scripts/Stats.gd b/source/scripts/Stats.gd index a7c10bb8..8e083fbd 100644 --- a/source/scripts/Stats.gd +++ b/source/scripts/Stats.gd @@ -7,6 +7,7 @@ var speed : float var cooldownReduction : float #unused currently var tenacity : float var luck : float +signal statChanged() func setStats(_attackDamage: float, _attackSpeed: float, _maxHealth : float, _speed : float, _cooldownReduction : float, _tenacity : float, _luck : float) -> Stats: self.attackDamage = _attackDamage self.attackSpeed = _attackSpeed @@ -35,6 +36,7 @@ func addStats(_attackDamage: float, _attackSpeed: float, _maxHealth : float, _sp self.cooldownReduction += _cooldownReduction self.tenacity += _tenacity self.luck += _luck + statChanged.emit() return self func addStatsCopy(stats: Stats) -> Stats: @@ -45,4 +47,33 @@ func addStatsCopy(stats: Stats) -> Stats: self.cooldownReduction += stats.cooldownReduction self.tenacity += stats.tenacity self.luck += stats.luck + statChanged.emit() return self + +func modifyAttackDamage(delta : float): + self.attackDamage += delta + statChanged.emit() + +func modifyAttackSpeed(delta : float): + self.attackSpeed += delta + statChanged.emit() + +func modifyMaxHealth(delta : float): + self.maxHealth += delta + statChanged.emit() + +func modifySpeed(delta : float): + self.speed += delta + statChanged.emit() + +func modifyCooldownReduction(delta : float): + self.cooldownReduction += delta + statChanged.emit() + +func modifyTenasity(delta : float): + self.tenacity += tenacity + statChanged.emit() + +func modifyLuck(delats : float): + self.tenacity + statChanged.emit() diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 05bcf72a..27663786 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -23,6 +23,7 @@ var total_stats : Stats var base_stats : Stats var item_stats : Stats +var statusEffects : StatusEffectManager #keep doing for each type of animation var run_animations: Array = [null, null, null, null] var hit_animations: Array = [null, null, null, null] @@ -67,6 +68,7 @@ func _ready() -> void: player_num = str(get_meta("player_num")) set_starting_stats() set_model_name() + item_stats.statChanged.connect(update_totalStats) health = total_stats.maxHealth pass @@ -171,7 +173,6 @@ func get_damage() -> float: func get_item(item : Item): item_stats.addStats(item.attackDamage, item.attackSpeed, item.maxHealth, item.speed, item.cooldownReduction, item.tenacity, item.luck) - for i in range(item.FunctionTypes.size()): match item.functionTypes[i]: Item.FunctionTypes.OnStart: From 9b73cca7f8b28b17c1ae756afface9074ddc6798 Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Sat, 16 Nov 2024 15:38:15 -0500 Subject: [PATCH 105/110] hopefully fixed the item stat to use the new stats system --- source/items/Item_Scripts/Item_Functions.gd | 54 ++++++++++----------- source/scripts/player.gd | 2 +- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/source/items/Item_Scripts/Item_Functions.gd b/source/items/Item_Scripts/Item_Functions.gd index c5183d4e..42c5017e 100644 --- a/source/items/Item_Scripts/Item_Functions.gd +++ b/source/items/Item_Scripts/Item_Functions.gd @@ -16,23 +16,23 @@ func poison_tick_end(ps : Player): ps.statusEffects.giveStatusTimed("PoisonTick", 1, StatusEffectManager.OverLapBehavior.STACK) func stun_start(ps : Player): #GAME DESIGN WARNING. this just gives a speed debuff using the speed bonus stat. maybe it should modify the player's base stats? - ps.speed -= 4 + ps.item_stats.modifySpeed(-4) func stun_end(ps : Player): - ps.speed += 4 + ps.item_stats.modifySpeed(4) func spook_start(ps : Player): - ps.damage -= 4 + ps.item_stats.modifyAttackDamage(-4) func spook_end(ps : Player): - ps.damage += 4 + ps.item_stats.modifyAttackDamage(4) func yoyo_onStart(ps: Player): ps.statusEffects.addStatusStartAndEndFunction("yoyo_speedBuff", Callable(self,"yoyo_speedBuff_start").bind(ps), Callable(self,"yoyo_speedBuff_end").bind(ps)) func yoyo_onHit(ps: Player, _other :Player): ps.statusEffects.giveStatusTimed("yoyo_speedBuff", 3, StatusEffectManager.OverLapBehavior.STACK) func yoyo_speedBuff_start(ps: Player): - ps.speed += 2 + ps.item_stats.modifySpeed(2) func yoyo_speedBuff_end(ps: Player): - ps.speed -= 2 + ps.item_stats.modifySpeed(-2) func propellerHat_onStart(ps: Player): ps.statusEffects.addStatusStartAndEndFunction("Fire", Callable(self,"propellerHat_speedBuff_start").bind(ps), Callable(self,"propellerHat_speedBuff_end").bind(ps)) @@ -41,11 +41,11 @@ func propellerHat_onStart(ps: Player): ps.statusEffects.addStatusStartAndEndFunction("Spook", Callable(self,"propellerHat_speedBuff_start").bind(ps), Callable(self,"propellerHat_speedBuff_end").bind(ps)) func propellerHat_speedBuff_start(ps : Player): if not(ps.statusEffects.hasStatus("propellerHat_speedBuff")): - ps.speed += 2 + ps.item_stats.modifySpeed(2) ps.statusEffects.giveStatus("propellerHat_speedBuff") func propellerHat_speedBuff_end(ps : Player): if not(ps.statusEffects.hasStatus("Fire") or ps.statusEffects.hasStatus("Poison") or ps.statusEffects.hasStatus("Stun") or ps.statusEffects.hasStatus("Spook")): - ps.speed -= 2 + ps.item_stats.modifySpeed(-2) ps.statusEffects.removeStatus("propellerHat_speedBuff") func topHat_onStart(ps: Player): @@ -53,9 +53,9 @@ func topHat_onStart(ps: Player): func topHat_onAttack(ps : Player): ps.statusEffects.giveStatusTimed("topHat_speedBuff", 1, StatusEffectManager.OverLapBehavior.REFRESH) func topHat_speedBuff_start(ps : Player): - ps.speed += 1 + ps.item_stats.modifySpeed(1) func topHat_speedBuff_end(ps : Player): - ps.speed -= 1 + ps.item_stats.modifySpeed(-1) func winterHat_onStart(ps : Player): ps.statusEffects.addStatusStartAndEndFunction("winterHat_damageBuff", Callable(self,"winterHat_damageBuff_start").bind(ps), Callable(self,"winterHat_damageBuff_end").bind(ps)) @@ -67,12 +67,12 @@ func winterHat_onGetHit(ps : Player): if(ps.statusEffects.hasStatus("winterHat_damageBuff")): ps.statusEffects.removeStatus("winterHat_damageBuff") func winterHat_damageBuff_start(ps : Player): - ps.damage += 2 + ps.item_stats.modifyAttackDamage(2) func winterHat_damageBuff_end(ps : Player): - ps.damage -= 2 + ps.item_stats.modifyAttackDamage(-2) func rubberDuck_onRoundStart(ps : Player): - ps.maxHealth += 1 + ps.item_stats.modifyMaxHealth(1) func candyCane_onRoundStart(ps : Player): ps.statusEffects.addStatusEndFunction("candyCane_buff", Callable(self,"candyCane_buff_end").bind(ps)) @@ -87,22 +87,22 @@ func puzzleCube_onHit(ps : Player, other : Player): else: ps.statusEffects.addStatusStartAndEndFunction("puzzleCube_speedBuff", Callable(self,"puzzleCube_speedBuff_start").bind(ps), Callable(self,"puzzleCube_speedBuff_end").bind(ps)) func puzzleCube_speedBuff_start(ps : Player): - ps.speed += 2 + ps.item_stats.modifySpeed(2) func puzzleCube_speedBuff_end(ps : Player): - ps.speed -= 2 + ps.item_stats.modifySpeed(-2) func puzzleCube_speedDebuff_start(other : Player): - other.speed -= 2 + other.item_stats.modifySpeed(-2) func puzzleCube_speedDebuff_end(other : Player): - other.speed += 2 + other.item_stats.modifySpeed(2) func sprayPaint_onStart(ps : Player): ps.statusEffects.addStatusStartAndEndFunction("sprayPaint_Buff", Callable(self,"sprayPaint_attackBuff_start").bind(ps), Callable(self,"sprayPaint_attackBuff_end").bind(ps)) func sprayPaint_onGetHit(ps : Player): ps.statusEffects.giveStatusTimed("sprayPaint_Buff", 3, StatusEffectManager.OverLapBehavior.STACK) func sprayPaint_attackBuff_start(ps : Player): - ps.speed += 2 + ps.item_stats.modifySpeed(2) func sprayPaint_attackBuff_end(ps : Player): - ps.speed -= 2 + ps.item_stats.modifySpeed(-2) func deckOfCards_onStart(ps : Player): ps.statusEffects.addStatusStartAndEndFunction("deckOfCards_damageBuff", Callable(self, "deckOfCards_damageBuff_start").bind(ps), Callable(self, "deckOfCards_damageBuff_end").bind(ps)) @@ -133,21 +133,21 @@ func deckOfCards_onGetHit(ps : Player): if(ps.statusEffects.hasStatus("deckOfCards_damageBuff2")): ps.statusEffects.removeStatus("deckOfCards_damageBuff2") func deckOfCards_damageBuff_start(ps : Player): - ps.damage += 10 + ps.item_stats.modifyAttackDamage(10) func deckOfCards_damageBuff_end(ps : Player): - ps.damage -= 10 + ps.item_stats.modifyAttackDamage(-10) func deckOfCards_speedBuff_start(ps : Player): - ps.speed += 10 + ps.item_stats.modifySpeed(10) func deckOfCards_speedBuff_end(ps : Player): - ps.speed -= 10 + ps.item_stats.modifySpeed(-10) func deckOfCards_healthBuff_start(ps : Player): - ps.maxHealth += 10 + ps.item_stats.modifyMaxHealth(10) func deckOfCards_healthBuff_end(ps : Player): - ps.maxHealth -= 10 + ps.item_stats.modifyMaxHealth(-10) func deckOfCards_damageBuff2_start(ps : Player): - ps.damage += 5 + ps.item_stats.modifyAttackDamage(5) func deckOfCards_damageBuff2_end(ps : Player): - ps.damage -= 5 + ps.item_stats.modifyAttackDamage(-5) func rainbowLolipop_onStart(ps : Player): ps.statusEffects.addStatusStartAndEndFunction("rainbowLolipop_buff", Callable(self,"rainbowLolipop_buff_start").bind(ps),Callable(self,"rainbowLolipop_buff_end").bind(ps)) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 27663786..c0f211f2 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -52,7 +52,7 @@ const Ghost_Attack_Scene := preload("res://source/scenes/ghost_attack.tscn") var health : float = 0 - +var candy : int var onAttackFunctions : Array[Callable] var onHitFunctions : Array[Callable] var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter From 68bf9fc0ca15a59733c73e6b6519a9f6505c3b87 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 16 Nov 2024 15:56:08 -0500 Subject: [PATCH 106/110] player instantiation and collision --- .../scenes/game_container/game_container.gd | 5 +-- source/scenes/menus/character_select.gd | 28 +++++++++++---- source/scenes/player.tscn | 7 ++-- source/scenes/stages/stage1.tscn | 23 ------------- source/scenes/stages/stage_template.tscn | 6 ++-- source/scripts/player.gd | 34 +++++++++---------- 6 files changed, 50 insertions(+), 53 deletions(-) delete mode 100644 source/scenes/stages/stage1.tscn diff --git a/source/scenes/game_container/game_container.gd b/source/scenes/game_container/game_container.gd index fe33b872..c9575e70 100644 --- a/source/scenes/game_container/game_container.gd +++ b/source/scenes/game_container/game_container.gd @@ -19,7 +19,7 @@ static var GAME_CONTAINER : GameContainer @onready var pre_game_cut_scene : PackedScene = preload("res://source/scenes/cut_scenes/pre_game_cut_scene.tscn") @onready var shop : PackedScene = preload("res://source/scenes/stages/shop.tscn") @onready var game_over : PackedScene = preload("res://source/scenes/menus/game_over.tscn") -@onready var stage1 : PackedScene = preload("res://source/scenes/stages/stage_template.tscn") +@onready var stage : PackedScene = preload("res://source/scenes/stages/stage_template.tscn") @onready var scene_dict = { "MainMenu" : main_menu, @@ -29,7 +29,7 @@ static var GAME_CONTAINER : GameContainer "PreGameCutScene" : pre_game_cut_scene, "Shop" : shop, "GameOver" : game_over, - "Stage1" : stage1 + "Stage" : stage } #Scoring @@ -49,6 +49,7 @@ func _process(_elta): func switch_to_scene(scene_name : String): switch_active_scene(scene_dict[scene_name]) + #below: debug code, above: actual code #if scene == shop: #award_point_to_player(1) diff --git a/source/scenes/menus/character_select.gd b/source/scenes/menus/character_select.gd index de911d25..97e73221 100644 --- a/source/scenes/menus/character_select.gd +++ b/source/scenes/menus/character_select.gd @@ -9,6 +9,10 @@ enum {NONE, FRANKENSTEIN, PUMPKIN, WITCH, GHOST} @onready var player_classes = [NONE, NONE, NONE, NONE] @onready var player_insts = [] +@onready var player_scene : PackedScene = preload("res://source/scenes/player.tscn") +@onready var settings_scene : PackedScene = preload("res://source/scenes/settings.tscn") +@onready var game_container = get_parent().get_parent() + func _ready(): add_player() add_player() @@ -30,12 +34,24 @@ func _physics_process(_delta: float) -> void: player_classes[3] = player_insts[3].value func _on_start_button_pressed() -> void: - var counter = 0 - for x in player_classes: - if x == NONE: - counter += 1 - if counter != 4: - get_parent().get_parent().switch_to_scene("Stage1") + get_parent().get_parent().switch_to_scene("Stage") + + for i in player_classes.size(): + if player_classes[i] != 0: + var player = player_scene.instantiate() + player.set_meta("player_num", i+1) + player.position.x = 512/5*(i+1) + player.position.y = 160 + player.character = player_classes[i] + print(player.character) + get_parent().get_parent().get_node("Players").add_child(player) + game_container.get_node("Players").set_meta("player_classes", player_classes) + + var settings = settings_scene.instantiate() + settings.visible = false + settings.scale = Vector2(0.4, 0.4) + settings.position = Vector2(51.2, 57.6) + game_container.add_child(settings) func _on_left_button_1_pressed() -> void: player_classes[0] -= 1 diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index f251ff42..7600f41a 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -654,13 +654,15 @@ animations = [{ "speed": 3.0 }] -[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1d7hi"] +[sub_resource type="RectangleShape2D" id="RectangleShape2D_8bd1v"] +size = Vector2(19.5, 5.5) [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_vlfgb"] radius = 9.0 height = 28.0 [node name="Player" type="CharacterBody2D"] +collision_layer = 2 script = ExtResource("1_ws1a7") metadata/player_num = "" @@ -673,7 +675,8 @@ frame = 5 frame_progress = 0.392947 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource("CapsuleShape2D_1d7hi") +position = Vector2(0.25, 16.25) +shape = SubResource("RectangleShape2D_8bd1v") [node name="PlayerHurtbox" type="Area2D" parent="."] script = ExtResource("2_lav1o") diff --git a/source/scenes/stages/stage1.tscn b/source/scenes/stages/stage1.tscn deleted file mode 100644 index 423efb95..00000000 --- a/source/scenes/stages/stage1.tscn +++ /dev/null @@ -1,23 +0,0 @@ -[gd_scene format=3 uid="uid://brihhvr3e0dtq"] - -[node name="Stage1" type="Node2D"] - -[node name="StageOverButton" type="Button" parent="."] -offset_right = 8.0 -offset_bottom = 8.0 -text = "[StageOver]" - -[node name="THIS SCENE IS TEMP" type="Label" parent="."] -offset_left = 117.0 -offset_top = 121.0 -offset_right = 1076.0 -offset_bottom = 300.0 -text = "Stage 1 -THIS SCENE IS TEMP -for now this scene just assumes player 1 wins -delete the button and trigger the next scene when someone wins -(use GameContainer.GAME_CONTAINER.switch_to_scene(GameContainer.Scene.RANDOM_STAGE) -before switching to the next scene, make sure the points have been awarded. -(call GameContinaer.GAME_CONTAINER.award_point_to_player() -or .award_points_to_players() or .award_points_to_players()) -(you can call these methods from any script)" diff --git a/source/scenes/stages/stage_template.tscn b/source/scenes/stages/stage_template.tscn index c30a9aed..4d90a2e0 100644 --- a/source/scenes/stages/stage_template.tscn +++ b/source/scenes/stages/stage_template.tscn @@ -23,14 +23,16 @@ texture_region_size = Vector2i(32, 32) 2:2/0 = 0 2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16) 2:3/0 = 0 +2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(0.9375, -1.25, 16, -16, 16, 16, -16, 16) 1:3/0 = 0 1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:3/0 = 0 +0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -0.6875, -0.75, 16, 16, -16, 16) [sub_resource type="TileSet" id="TileSet_ruhe0"] tile_size = Vector2i(32, 32) -physics_layer_0/collision_layer = 0 -physics_layer_0/collision_mask = 0 +physics_layer_0/collision_layer = 1 +physics_layer_0/collision_mask = 2 sources/0 = SubResource("TileSetAtlasSource_j2huj") [node name="StageTemplate" type="Node2D"] diff --git a/source/scripts/player.gd b/source/scripts/player.gd index 48685435..dd271365 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -46,7 +46,7 @@ enum Character { GHOST, PUMPKIN } -var character = Character.WITCH +@export var character = Character.WITCH #Enemy attack instances const Projectile_Scene := preload("res://source/scenes/projectile.tscn") @@ -89,8 +89,6 @@ func handle_move() -> void: if movement.length() : Speed = move_toward(Speed, topSpeed * TOP_SPEED_FACTOR, ACCELERATION) - if movement.x: - var player_num = str(get_meta("player_num")) #movement = Vector2(Input.get_axis("Left1", "Right1"), Input.get_axis("Up1", "Down1")).normalized() #TOP_SPEED_FACTOR = 15 #ACCELERATION = 15 @@ -102,18 +100,18 @@ func handle_move() -> void: #Speed = move_toward(Speed, 10 * TOP_SPEED_FACTOR, ACCELERATION) #else: #Speed = move_toward(Speed, 0, DECELERATION) # Gradually decrease speed to zero - # - #if movement.x: - #velocity.x = movement.x * Speed - #else: - #velocity.x = move_toward(velocity.x, 0, DECELERATION) # Gradually decrease horizontal velocity to zero - # - #if movement.y: - #velocity.y = movement.y * Speed - #else: - #velocity.y = move_toward(velocity.y, 0, DECELERATION) # Gradually decrease vertical velocity to zero - # - #move_and_slide() # Ensure velocity is passed to move_and_slide + + if movement.x: + velocity.x = movement.x * Speed + else: + velocity.x = move_toward(velocity.x, 0, DECELERATION) # Gradually decrease horizontal velocity to zero + + if movement.y: + velocity.y = movement.y * Speed + else: + velocity.y = move_toward(velocity.y, 0, DECELERATION) # Gradually decrease vertical velocity to zero + + move_and_slide() # Ensure velocity is passed to move_and_slide func handle_attack(): #Right now, just enables, hitbox for 0.5 seconds match character: @@ -190,11 +188,11 @@ func playWalkOrIdleAnimation(velocity: Vector2): func getDirectionWord(direction: Vector2): if direction.is_zero_approx(): return "down" - if abs(direction.x) >= abs(direction.y): - if direction.x > 0: return "right" + if abs(direction.x) >= abs(direction.y - 0.1): + if direction.x >= 0: return "right" elif direction.x < 0: return "left" else: - if direction.y > 0: return "down" + if direction.y >= 0: return "down" elif direction.y < 0: return "up" func changeModel(newModel: String): From 1a868469755f525c2cf49bb7517852441e325687 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 16 Nov 2024 15:56:45 -0500 Subject: [PATCH 107/110] Update character_select.gd --- source/scenes/menus/character_select.gd | 1 - 1 file changed, 1 deletion(-) diff --git a/source/scenes/menus/character_select.gd b/source/scenes/menus/character_select.gd index 97e73221..4c11e2ed 100644 --- a/source/scenes/menus/character_select.gd +++ b/source/scenes/menus/character_select.gd @@ -43,7 +43,6 @@ func _on_start_button_pressed() -> void: player.position.x = 512/5*(i+1) player.position.y = 160 player.character = player_classes[i] - print(player.character) get_parent().get_parent().get_node("Players").add_child(player) game_container.get_node("Players").set_meta("player_classes", player_classes) From bbe4c25a5ad2233453d41dcef4eb11a7e1fe40d0 Mon Sep 17 00:00:00 2001 From: VincentChan22 <74437770+VincentChan22@users.noreply.github.com> Date: Sat, 16 Nov 2024 16:22:14 -0500 Subject: [PATCH 108/110] Added statuseffects re implemented dashing fixed animation edge case added simple candy system --- source/scripts/player.gd | 46 +++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/source/scripts/player.gd b/source/scripts/player.gd index c0f211f2..ebbe0ee6 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -52,7 +52,7 @@ const Ghost_Attack_Scene := preload("res://source/scenes/ghost_attack.tscn") var health : float = 0 -var candy : int +var candy : int = 0 var onAttackFunctions : Array[Callable] var onHitFunctions : Array[Callable] var onGetHitFunctions : Array[Callable]#When this one is called. should also call with the object hit as a parameter @@ -78,12 +78,12 @@ func _process(delta: float) -> void: if(movement != Vector2.ZERO): last_movement = movement -func round_start(): +func round_start(): #called by game manager call_functions(onRoundStart) func handle_move() -> void: #movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() - playWalkOrIdleAnimation(velocity) + playWalkOrIdleAnimation() if not velocity.is_zero_approx(): direction = velocity if movement.length() : @@ -94,7 +94,7 @@ func handle_move() -> void: movement = Vector2(Input.get_axis("Left" + player_num, "Right" + player_num), Input.get_axis("Up" + player_num, "Down" + player_num)).normalized() #this needs to use the input map if not dash and Input.is_action_just_pressed("Dash"): print("ENTERING DASH") - #dashing() + dashing() if movement.length(): # stats.topSpeed = 10 Speed = move_toward(Speed, total_stats.speed, total_stats.speed * ACCELERATION) else: @@ -150,6 +150,20 @@ func handle_damage(attackingPlayer: CharacterBody2D) -> void: i.call(self,attackingPlayer) attackingPlayer = attackingPlayer as Player attackingPlayer.call_functions(attackingPlayer.onHitFunctions) + if(attackingPlayer.isMonster): + match attackingPlayer.character: + Character.WITCH: + statusEffects.giveStatusTimed("Poison", max(3 * (1 - total_stats.tenacity * 0.1), 0), StatusEffectManager.OverLapBehavior.STACK) + Character.FRANKENSTEIN: + statusEffects.giveStatusTimed("Stun", max(3 * (1 - total_stats.tenacity * 0.1), 0)) + Character.GHOST: + statusEffects.giveStatusTimed("Spook", max(3 * (1 - total_stats.tenacity * 0.1), 0)) + Character.PUMPKIN: + statusEffects.giveStatusTimed("Fire", max(3 * (1 - total_stats.tenacity * 0.1), 0)) + _: + print("ERROR: attacking Player does not have a valid character") + if(!isMonster && attackingPlayer.isMonster): + candy += 1 #UPDATE #Health -= attackingPlayer.get_damage() @@ -166,9 +180,7 @@ func add_attack_instance_as_child(attack_scene: PackedScene) -> void: func getPlayerPosition() -> Vector2: return position func get_damage() -> float: - return 0.0 - #UPDATE - #return stats.attackDamage + return total_stats.attackDamage func get_item(item : Item): @@ -200,8 +212,8 @@ func call_functions(arr : Array[Callable]): for i in arr: i.call() -func playWalkOrIdleAnimation(_velocity: Vector2): - if _velocity.is_zero_approx(): +func playWalkOrIdleAnimation(): + if velocity.is_zero_approx(): sprite.play(model + "_idle_" + getDirectionWord(direction)) else: sprite.play(model + "_walk_" + getDirectionWord(velocity)) @@ -209,10 +221,10 @@ func playWalkOrIdleAnimation(_velocity: Vector2): func getDirectionWord(_direction: Vector2): if _direction.is_zero_approx(): return "down" if abs(_direction.x) >= abs(direction.y): - if _direction.x > 0: return "right" + if _direction.x >= 0: return "right" elif _direction.x < 0: return "left" else: - if _direction.y > 0: return "down" + if _direction.y >= 0: return "down" elif _direction.y < 0: return "up" #currently unused @@ -268,10 +280,10 @@ func getDirectionWord(_direction: Vector2): ##add this in child Classes #print("Player Attacked!") #pass -#func dashing(): +func dashing(): ## dash values, please - #dash = true - #Speed = 750 - #await get_tree().create_timer(2).timeout - #dash = false - ##Speed = move_toward(Speed, 0, DECELERATION) + dash = true + Speed = 750 + await get_tree().create_timer(2).timeout + dash = false + Speed = move_toward(Speed, 0, total_stats.speed * DECELERATION) From fd8ce90ac86e199f963a3d6cd5c1d08666b9f070 Mon Sep 17 00:00:00 2001 From: stick-h <68358227+stick-h@users.noreply.github.com> Date: Sat, 16 Nov 2024 16:31:30 -0500 Subject: [PATCH 109/110] Update project.godot --- project.godot | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/project.godot b/project.godot index 9e5972f5..2fc2c009 100644 --- a/project.godot +++ b/project.godot @@ -11,12 +11,13 @@ config_version=5 [application] config/name="Hallow's Thief" -run/main_scene="res://source/scenes/player.tscn" +run/main_scene="res://source/scenes/game_container/game_container.tscn" config/features=PackedStringArray("4.3", "Forward Plus") config/icon="res://icon.svg" [autoload] +ItemAdvancedFunctions="*res://source/scripts/Item_Advanced_Functions.gd" ItemFunctions="*res://source/items/Item_Scripts/Item_Functions.gd" [display] From efd6bf30e7dca275bf1ae09a33066fa915c02ceb Mon Sep 17 00:00:00 2001 From: 3amBEANS Date: Sat, 16 Nov 2024 17:17:03 -0500 Subject: [PATCH 110/110] Made some attack animations functionality and made the walk for the ghost slightly faster --- source/scenes/demo_room.tscn | 2 +- source/scenes/player.tscn | 12 +++++------- source/scenes/stages/stage1.tscn | 23 +++++++++++++++++++++++ source/scripts/player.gd | 4 ++++ 4 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 source/scenes/stages/stage1.tscn diff --git a/source/scenes/demo_room.tscn b/source/scenes/demo_room.tscn index 3074afae..40e6eeae 100644 --- a/source/scenes/demo_room.tscn +++ b/source/scenes/demo_room.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=5 format=3 uid="uid://cy7svppwvqp1j"] +[gd_scene load_steps=5 format=3 uid="uid://dfb11uyou157k"] [ext_resource type="PackedScene" uid="uid://rgfnpcsvv534" path="res://source/scenes/player.tscn" id="1_uxgo6"] [ext_resource type="Script" path="res://source/scripts/quit.gd" id="2_c3313"] diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn index 97e36c00..b445578f 100644 --- a/source/scenes/player.tscn +++ b/source/scenes/player.tscn @@ -382,7 +382,7 @@ animations = [{ }], "loop": true, "name": &"ghost_kid_walk_down", -"speed": 3.0 +"speed": 6.0 }, { "frames": [{ "duration": 1.0, @@ -399,7 +399,7 @@ animations = [{ }], "loop": true, "name": &"ghost_kid_walk_left", -"speed": 3.0 +"speed": 6.0 }, { "frames": [{ "duration": 1.0, @@ -416,7 +416,7 @@ animations = [{ }], "loop": true, "name": &"ghost_kid_walk_right", -"speed": 3.0 +"speed": 6.0 }, { "frames": [{ "duration": 1.0, @@ -427,7 +427,7 @@ animations = [{ }], "loop": true, "name": &"ghost_kid_walk_up", -"speed": 3.0 +"speed": 6.0 }, { "frames": [{ "duration": 1.0, @@ -672,9 +672,7 @@ metadata/player_num = "1" [node name="Body" type="AnimatedSprite2D" parent="PlayerSprite"] sprite_frames = SubResource("SpriteFrames_1n7tg") -animation = &"ghost_kid_attack_right" -frame = 5 -frame_progress = 0.392947 +animation = &"ghost_kid_idle_up" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0.25, 16.25) diff --git a/source/scenes/stages/stage1.tscn b/source/scenes/stages/stage1.tscn new file mode 100644 index 00000000..7a38354f --- /dev/null +++ b/source/scenes/stages/stage1.tscn @@ -0,0 +1,23 @@ +[gd_scene format=3 uid="uid://w46i3qg323y4"] + +[node name="Stage1" type="Node2D"] + +[node name="StageOverButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "[StageOver]" + +[node name="THIS SCENE IS TEMP" type="Label" parent="."] +offset_left = 117.0 +offset_top = 121.0 +offset_right = 1076.0 +offset_bottom = 300.0 +text = "Stage 1 +THIS SCENE IS TEMP +for now this scene just assumes player 1 wins +delete the button and trigger the next scene when someone wins +(use GameContainer.GAME_CONTAINER.switch_to_scene(GameContainer.Scene.RANDOM_STAGE) +before switching to the next scene, make sure the points have been awarded. +(call GameContinaer.GAME_CONTAINER.award_point_to_player() +or .award_points_to_players() or .award_points_to_players()) +(you can call these methods from any script)" diff --git a/source/scripts/player.gd b/source/scripts/player.gd index dfa29fdc..d8dc54ba 100644 --- a/source/scripts/player.gd +++ b/source/scripts/player.gd @@ -133,6 +133,7 @@ func set_model_name(): func handle_attack(): #Right now, just enables, hitbox for 0.5 seconds call_functions(onAttackFunctions) + playAttackAnimation() match character: #THIS NEEDS TO BE UPDATED AFTER ATTACK SCENES MADE Character.WITCH: @@ -219,6 +220,9 @@ func playWalkOrIdleAnimation(): else: sprite.play(model + "_walk_" + getDirectionWord(velocity)) +func playAttackAnimation(): + print("AMONGUS") + sprite.play(model + "_attack_" + getDirectionWord(direction)) func getDirectionWord(_direction: Vector2): if _direction.is_zero_approx(): return "down"