diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 00000000..9fef35e2 Binary files /dev/null and b/.DS_Store differ 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/README.md b/README.md index c80af4b5..72a21951 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ -# ProjectTemplate -This is a project template for SGD semester projects. +# Hallow's Thief + +This is a Github repository for Hallow's Thief, an SGD semester project. diff --git a/assets/backgrounds/Character_Selection.png b/assets/backgrounds/Character_Selection.png new file mode 100644 index 00000000..2528498b Binary files /dev/null and b/assets/backgrounds/Character_Selection.png differ 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/assets/fonts-shaders/Ldfcomicsans-jj7l.ttf b/assets/fonts-shaders/Ldfcomicsans-jj7l.ttf new file mode 100644 index 00000000..38b3abf9 Binary files /dev/null and b/assets/fonts-shaders/Ldfcomicsans-jj7l.ttf differ 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/assets/fonts-shaders/PixelifySans-Regular.ttf b/assets/fonts-shaders/PixelifySans-Regular.ttf new file mode 100644 index 00000000..37deb9a3 Binary files /dev/null and b/assets/fonts-shaders/PixelifySans-Regular.ttf differ diff --git a/assets/fonts-shaders/PixelifySans-Regular.ttf.import b/assets/fonts-shaders/PixelifySans-Regular.ttf.import new file mode 100644 index 00000000..3f4de7c5 --- /dev/null +++ b/assets/fonts-shaders/PixelifySans-Regular.ttf.import @@ -0,0 +1,34 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://sdvvpxumorh1" +path="res://.godot/imported/PixelifySans-Regular.ttf-348002a40cc069bffb958eca7ae41d5b.fontdata" + +[deps] + +source_file="res://assets/fonts-shaders/PixelifySans-Regular.ttf" +dest_files=["res://.godot/imported/PixelifySans-Regular.ttf-348002a40cc069bffb958eca7ae41d5b.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/assets/tiles/BaseRoomTiles.png b/assets/tiles/BaseRoomTiles.png new file mode 100644 index 00000000..42e65988 Binary files /dev/null and b/assets/tiles/BaseRoomTiles.png differ 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/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..2fc2c009 --- /dev/null +++ b/project.godot @@ -0,0 +1,160 @@ +; 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/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] + +window/size/viewport_width=512 +window/size/viewport_height=320 +window/size/mode=2 +window/stretch/mode="canvas_items" +ItemFunctions="*res://source/Items_Final/Item_Scripts/Item_Functions.gd" + +[gui] + +theme/custom_font="res://assets/fonts-shaders/PixelifySans-Regular.ttf" + +[input] + +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(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(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(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(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":1,"axis":0,"axis_value":-1.0,"script":null) +] +} +Right2={ +"deadzone": 0.5, +"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":1,"axis":1,"axis_value":-1.0,"script":null) +] +} +Down2={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"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":2,"axis":0,"axis_value":1.0,"script":null) +] +} +Up3={ +"deadzone": 0.5, +"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":2,"axis":1,"axis_value":1.0,"script":null) +] +} +Left4={ +"deadzone": 0.5, +"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":3,"axis":0,"axis_value":1.0,"script":null) +] +} +Up4={ +"deadzone": 0.5, +"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":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) +, 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": [] +} +Dash={ +"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":4194325,"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" + +[rendering] + +textures/canvas_textures/default_texture_filter=0 diff --git a/source/.DS_Store b/source/.DS_Store new file mode 100644 index 00000000..4aa25563 Binary files /dev/null and b/source/.DS_Store differ 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 00000000..337547f2 Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_1.PNG differ diff --git a/source/anims/ghost_kid_attack/down/attack_down_1.PNG.import b/source/anims/ghost_kid_attack/down/attack_down_1.PNG.import new file mode 100644 index 00000000..e31669a8 --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_1.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://balmtbxy73uxl" +path="res://.godot/imported/attack_down_1.PNG-75b425100e7aaa5f3bc41ff2d91a81c0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_1.PNG" +dest_files=["res://.godot/imported/attack_down_1.PNG-75b425100e7aaa5f3bc41ff2d91a81c0.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_10.png b/source/anims/ghost_kid_attack/down/attack_down_10.png new file mode 100644 index 00000000..507f524f Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_10.png differ 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 00000000..337547f2 Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_11.PNG differ diff --git a/source/anims/ghost_kid_attack/down/attack_down_11.PNG.import b/source/anims/ghost_kid_attack/down/attack_down_11.PNG.import new file mode 100644 index 00000000..9f96e3e3 --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_11.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctmca2q3yohbw" +path="res://.godot/imported/attack_down_11.PNG-b2e4d0210f6e04b2680376ec6c25d3ba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_11.PNG" +dest_files=["res://.godot/imported/attack_down_11.PNG-b2e4d0210f6e04b2680376ec6c25d3ba.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_2.png b/source/anims/ghost_kid_attack/down/attack_down_2.png new file mode 100644 index 00000000..507f524f Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_2.png differ 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 00000000..dafc0de8 Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_3.png differ diff --git a/source/anims/ghost_kid_attack/down/attack_down_3.png.import b/source/anims/ghost_kid_attack/down/attack_down_3.png.import new file mode 100644 index 00000000..c49bae8c --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6oq7nygajew3" +path="res://.godot/imported/attack_down_3.png-8588d3098a7f2afb991b9e53ee403ac3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_3.png" +dest_files=["res://.godot/imported/attack_down_3.png-8588d3098a7f2afb991b9e53ee403ac3.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_4.png b/source/anims/ghost_kid_attack/down/attack_down_4.png new file mode 100644 index 00000000..c3ba6601 Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_4.png differ 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 00000000..b7a66d57 Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_5.png differ 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 00000000..e84cd7e4 Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_6.png differ 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 00000000..b7a66d57 Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_7.png differ 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 00000000..c3ba6601 Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_8.png differ 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 00000000..dafc0de8 Binary files /dev/null and b/source/anims/ghost_kid_attack/down/attack_down_9.png differ diff --git a/source/anims/ghost_kid_attack/down/attack_down_9.png.import b/source/anims/ghost_kid_attack/down/attack_down_9.png.import new file mode 100644 index 00000000..21f32806 --- /dev/null +++ b/source/anims/ghost_kid_attack/down/attack_down_9.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqjd42bhophe5" +path="res://.godot/imported/attack_down_9.png-a5970c15d03dde12d29dfe59eb46eb33.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/down/attack_down_9.png" +dest_files=["res://.godot/imported/attack_down_9.png-a5970c15d03dde12d29dfe59eb46eb33.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_1.png b/source/anims/ghost_kid_attack/left/attack_left_1.png new file mode 100644 index 00000000..e511087f Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_1.png differ 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 00000000..eb3c09e8 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_10.png differ 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 00000000..69211ea7 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_11.png differ diff --git a/source/anims/ghost_kid_attack/left/attack_left_11.png.import b/source/anims/ghost_kid_attack/left/attack_left_11.png.import new file mode 100644 index 00000000..cf37504c --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_11.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bybksk21m5urx" +path="res://.godot/imported/attack_left_11.png-1ab5de1d71869de583efb3ea40936498.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_11.png" +dest_files=["res://.godot/imported/attack_left_11.png-1ab5de1d71869de583efb3ea40936498.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_12.png b/source/anims/ghost_kid_attack/left/attack_left_12.png new file mode 100644 index 00000000..dcfcb2b4 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_12.png differ 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 00000000..e511087f Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_13.png differ 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 00000000..dcfcb2b4 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_2.png differ 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 00000000..69211ea7 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_3.png differ diff --git a/source/anims/ghost_kid_attack/left/attack_left_3.png.import b/source/anims/ghost_kid_attack/left/attack_left_3.png.import new file mode 100644 index 00000000..2cc51a74 --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://nbvh7rjo26pi" +path="res://.godot/imported/attack_left_3.png-6868588a3b6b88e059b8125996c3d45d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_3.png" +dest_files=["res://.godot/imported/attack_left_3.png-6868588a3b6b88e059b8125996c3d45d.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_4.png b/source/anims/ghost_kid_attack/left/attack_left_4.png new file mode 100644 index 00000000..eb3c09e8 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_4.png differ 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 00000000..3a3c22f4 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_5.png differ 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 00000000..79adec46 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_6.png differ diff --git a/source/anims/ghost_kid_attack/left/attack_left_6.png.import b/source/anims/ghost_kid_attack/left/attack_left_6.png.import new file mode 100644 index 00000000..315ee344 --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bew4bnotcanl0" +path="res://.godot/imported/attack_left_6.png-aea192b736f809893ad7133ad58af494.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_6.png" +dest_files=["res://.godot/imported/attack_left_6.png-aea192b736f809893ad7133ad58af494.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_7.png b/source/anims/ghost_kid_attack/left/attack_left_7.png new file mode 100644 index 00000000..9829ba15 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_7.png differ diff --git a/source/anims/ghost_kid_attack/left/attack_left_7.png.import b/source/anims/ghost_kid_attack/left/attack_left_7.png.import new file mode 100644 index 00000000..8e8e93a8 --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_7.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://qqrmt57adde5" +path="res://.godot/imported/attack_left_7.png-098a363652a572030592d3579dd10083.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_7.png" +dest_files=["res://.godot/imported/attack_left_7.png-098a363652a572030592d3579dd10083.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_8.png b/source/anims/ghost_kid_attack/left/attack_left_8.png new file mode 100644 index 00000000..79adec46 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_8.png differ diff --git a/source/anims/ghost_kid_attack/left/attack_left_8.png.import b/source/anims/ghost_kid_attack/left/attack_left_8.png.import new file mode 100644 index 00000000..8a9b1e49 --- /dev/null +++ b/source/anims/ghost_kid_attack/left/attack_left_8.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8n1xcnmavp42" +path="res://.godot/imported/attack_left_8.png-4c7ee29e1e938dd8fb176046129a67d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/left/attack_left_8.png" +dest_files=["res://.godot/imported/attack_left_8.png-4c7ee29e1e938dd8fb176046129a67d2.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_9.png b/source/anims/ghost_kid_attack/left/attack_left_9.png new file mode 100644 index 00000000..3a3c22f4 Binary files /dev/null and b/source/anims/ghost_kid_attack/left/attack_left_9.png differ 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 00000000..41ad57e4 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_1.png differ diff --git a/source/anims/ghost_kid_attack/right/attack_right_1.png.import b/source/anims/ghost_kid_attack/right/attack_right_1.png.import new file mode 100644 index 00000000..28041d72 --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmqw3iagrplme" +path="res://.godot/imported/attack_right_1.png-945144a26894de1023a499d5bad32965.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_1.png" +dest_files=["res://.godot/imported/attack_right_1.png-945144a26894de1023a499d5bad32965.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_10.png b/source/anims/ghost_kid_attack/right/attack_right_10.png new file mode 100644 index 00000000..ded2eea6 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_10.png differ 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 00000000..b722a3a9 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_11.png differ 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 00000000..bbaa76ff Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_12.png differ 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 00000000..41ad57e4 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_13.png differ diff --git a/source/anims/ghost_kid_attack/right/attack_right_13.png.import b/source/anims/ghost_kid_attack/right/attack_right_13.png.import new file mode 100644 index 00000000..d3028dd8 --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_13.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0by8r81gp11o" +path="res://.godot/imported/attack_right_13.png-036449e492f7165d5102d7d5280d4197.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_13.png" +dest_files=["res://.godot/imported/attack_right_13.png-036449e492f7165d5102d7d5280d4197.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_2.png b/source/anims/ghost_kid_attack/right/attack_right_2.png new file mode 100644 index 00000000..bbaa76ff Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_2.png differ 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 00000000..b722a3a9 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_3.png differ 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 00000000..ded2eea6 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_4.png differ 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 00000000..747f3d15 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_5.png differ 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 00000000..9da31b59 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_6.png differ 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 00000000..0fba94b3 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_7.png differ diff --git a/source/anims/ghost_kid_attack/right/attack_right_7.png.import b/source/anims/ghost_kid_attack/right/attack_right_7.png.import new file mode 100644 index 00000000..b8def45a --- /dev/null +++ b/source/anims/ghost_kid_attack/right/attack_right_7.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fmwbq5yadufg" +path="res://.godot/imported/attack_right_7.png-a778dd93a49c1c940025bbeb85047da8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/right/attack_right_7.png" +dest_files=["res://.godot/imported/attack_right_7.png-a778dd93a49c1c940025bbeb85047da8.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_8.png b/source/anims/ghost_kid_attack/right/attack_right_8.png new file mode 100644 index 00000000..9da31b59 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_8.png differ 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 00000000..747f3d15 Binary files /dev/null and b/source/anims/ghost_kid_attack/right/attack_right_9.png differ 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 00000000..34e9a5cd Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_1.PNG differ diff --git a/source/anims/ghost_kid_attack/up/attack_up_1.PNG.import b/source/anims/ghost_kid_attack/up/attack_up_1.PNG.import new file mode 100644 index 00000000..087b4649 --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_1.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1kai83ehmp5u" +path="res://.godot/imported/attack_up_1.PNG-83dfea46edb9ed2bd9a0d7064b74b887.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_1.PNG" +dest_files=["res://.godot/imported/attack_up_1.PNG-83dfea46edb9ed2bd9a0d7064b74b887.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_10.png b/source/anims/ghost_kid_attack/up/attack_up_10.png new file mode 100644 index 00000000..330d0e14 Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_10.png differ 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 00000000..34e9a5cd Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_11.PNG differ diff --git a/source/anims/ghost_kid_attack/up/attack_up_11.PNG.import b/source/anims/ghost_kid_attack/up/attack_up_11.PNG.import new file mode 100644 index 00000000..1658fa40 --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_11.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2cybua77fk3k" +path="res://.godot/imported/attack_up_11.PNG-15bd814e6f0690b8f5fc60cfc52f323c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_11.PNG" +dest_files=["res://.godot/imported/attack_up_11.PNG-15bd814e6f0690b8f5fc60cfc52f323c.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_2.png b/source/anims/ghost_kid_attack/up/attack_up_2.png new file mode 100644 index 00000000..330d0e14 Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_2.png differ 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 00000000..0d872e11 Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_3.png differ 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 00000000..d6d2678f Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_4.png differ diff --git a/source/anims/ghost_kid_attack/up/attack_up_4.png.import b/source/anims/ghost_kid_attack/up/attack_up_4.png.import new file mode 100644 index 00000000..b06b3e20 --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dxid3at5wa0yw" +path="res://.godot/imported/attack_up_4.png-ba7f36e9beb20164e9c4ec6123bf9f42.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_4.png" +dest_files=["res://.godot/imported/attack_up_4.png-ba7f36e9beb20164e9c4ec6123bf9f42.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_5.png b/source/anims/ghost_kid_attack/up/attack_up_5.png new file mode 100644 index 00000000..0a0e4aa2 Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_5.png differ 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 00000000..a9c16736 Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_6.png differ 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 00000000..0a0e4aa2 Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_7.png differ 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 00000000..d6d2678f Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_8.png differ diff --git a/source/anims/ghost_kid_attack/up/attack_up_8.png.import b/source/anims/ghost_kid_attack/up/attack_up_8.png.import new file mode 100644 index 00000000..27dd6cdd --- /dev/null +++ b/source/anims/ghost_kid_attack/up/attack_up_8.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmuiy7ys4ofv4" +path="res://.godot/imported/attack_up_8.png-86c6df5ae860a28dee4082bdd4d88fda.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_attack/up/attack_up_8.png" +dest_files=["res://.godot/imported/attack_up_8.png-86c6df5ae860a28dee4082bdd4d88fda.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_9.png b/source/anims/ghost_kid_attack/up/attack_up_9.png new file mode 100644 index 00000000..0d872e11 Binary files /dev/null and b/source/anims/ghost_kid_attack/up/attack_up_9.png differ 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/anims/ghost_kid_idle/idle_down_1.png b/source/anims/ghost_kid_idle/idle_down_1.png new file mode 100644 index 00000000..e934daf2 Binary files /dev/null and b/source/anims/ghost_kid_idle/idle_down_1.png differ diff --git a/source/anims/ghost_kid_idle/idle_down_1.png.import b/source/anims/ghost_kid_idle/idle_down_1.png.import new file mode 100644 index 00000000..26fd16a1 --- /dev/null +++ b/source/anims/ghost_kid_idle/idle_down_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqrdval02y5ee" +path="res://.godot/imported/idle_down_1.png-5d03219b103c5c5fb7329304e353d040.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_idle/idle_down_1.png" +dest_files=["res://.godot/imported/idle_down_1.png-5d03219b103c5c5fb7329304e353d040.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_down_2.png b/source/anims/ghost_kid_idle/idle_down_2.png new file mode 100644 index 00000000..bbb6854d Binary files /dev/null and b/source/anims/ghost_kid_idle/idle_down_2.png differ 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 00000000..6e21ba73 Binary files /dev/null and b/source/anims/ghost_kid_idle/idle_left_1.png differ 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 00000000..780d61dd Binary files /dev/null and b/source/anims/ghost_kid_idle/idle_left_2.png differ diff --git a/source/anims/ghost_kid_idle/idle_left_2.png.import b/source/anims/ghost_kid_idle/idle_left_2.png.import new file mode 100644 index 00000000..9940822f --- /dev/null +++ b/source/anims/ghost_kid_idle/idle_left_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://k3fxuipkwp5t" +path="res://.godot/imported/idle_left_2.png-d864b05670e225bf3c4e3fa1b418911f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_idle/idle_left_2.png" +dest_files=["res://.godot/imported/idle_left_2.png-d864b05670e225bf3c4e3fa1b418911f.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_right_1.png b/source/anims/ghost_kid_idle/idle_right_1.png new file mode 100644 index 00000000..88e6dddd Binary files /dev/null and b/source/anims/ghost_kid_idle/idle_right_1.png differ diff --git a/source/anims/ghost_kid_idle/idle_right_1.png.import b/source/anims/ghost_kid_idle/idle_right_1.png.import new file mode 100644 index 00000000..c8448af0 --- /dev/null +++ b/source/anims/ghost_kid_idle/idle_right_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b678mccqmxdxw" +path="res://.godot/imported/idle_right_1.png-8523b365b7fb06b83a2e04d1e1b18a4f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_idle/idle_right_1.png" +dest_files=["res://.godot/imported/idle_right_1.png-8523b365b7fb06b83a2e04d1e1b18a4f.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_right_2.png b/source/anims/ghost_kid_idle/idle_right_2.png new file mode 100644 index 00000000..71bc02c6 Binary files /dev/null and b/source/anims/ghost_kid_idle/idle_right_2.png differ 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 00000000..ac314079 Binary files /dev/null and b/source/anims/ghost_kid_idle/idle_up_1.png differ diff --git a/source/anims/ghost_kid_idle/idle_up_1.png.import b/source/anims/ghost_kid_idle/idle_up_1.png.import new file mode 100644 index 00000000..e26138b3 --- /dev/null +++ b/source/anims/ghost_kid_idle/idle_up_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://02qkl36wjtwr" +path="res://.godot/imported/idle_up_1.png-cfe42109ff3564d5fc9d2be13795e9a3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_idle/idle_up_1.png" +dest_files=["res://.godot/imported/idle_up_1.png-cfe42109ff3564d5fc9d2be13795e9a3.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_2.png b/source/anims/ghost_kid_idle/idle_up_2.png new file mode 100644 index 00000000..d67bf423 Binary files /dev/null and b/source/anims/ghost_kid_idle/idle_up_2.png differ diff --git a/source/anims/ghost_kid_idle/idle_up_2.png.import b/source/anims/ghost_kid_idle/idle_up_2.png.import new file mode 100644 index 00000000..d7113cbc --- /dev/null +++ b/source/anims/ghost_kid_idle/idle_up_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://by31nucpbkt5w" +path="res://.godot/imported/idle_up_2.png-f20a6cfd25482a9c5aac9c20f86cf6e8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_idle/idle_up_2.png" +dest_files=["res://.godot/imported/idle_up_2.png-f20a6cfd25482a9c5aac9c20f86cf6e8.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_1.png b/source/anims/ghost_kid_walk/walk_down_1.png new file mode 100644 index 00000000..3f7729e4 Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_down_1.png differ 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 00000000..81b5f543 Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_down_2.png differ diff --git a/source/anims/ghost_kid_walk/walk_down_2.png.import b/source/anims/ghost_kid_walk/walk_down_2.png.import new file mode 100644 index 00000000..f187956a --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_down_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bf1iqsldq4n2i" +path="res://.godot/imported/walk_down_2.png-beed6a98626b9bf1fa812f9131f9a394.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_down_2.png" +dest_files=["res://.godot/imported/walk_down_2.png-beed6a98626b9bf1fa812f9131f9a394.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_1.png b/source/anims/ghost_kid_walk/walk_left_1.png new file mode 100644 index 00000000..6e21ba73 Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_left_1.png differ 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 00000000..45b63c59 Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_left_2.png differ diff --git a/source/anims/ghost_kid_walk/walk_left_2.png.import b/source/anims/ghost_kid_walk/walk_left_2.png.import new file mode 100644 index 00000000..a7759f5e --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_left_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctnncwq1t7o81" +path="res://.godot/imported/walk_left_2.png-fd670dad5745d773ad4922d70625dbaf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_left_2.png" +dest_files=["res://.godot/imported/walk_left_2.png-fd670dad5745d773ad4922d70625dbaf.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_3.png b/source/anims/ghost_kid_walk/walk_left_3.png new file mode 100644 index 00000000..a7e9b808 Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_left_3.png differ 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 00000000..45b63c59 Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_left_4.png differ diff --git a/source/anims/ghost_kid_walk/walk_left_4.png.import b/source/anims/ghost_kid_walk/walk_left_4.png.import new file mode 100644 index 00000000..9b83251d --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_left_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwj0rcghjose2" +path="res://.godot/imported/walk_left_4.png-0db82781bf245887ba0cf458daae2dde.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_left_4.png" +dest_files=["res://.godot/imported/walk_left_4.png-0db82781bf245887ba0cf458daae2dde.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_right_1.png b/source/anims/ghost_kid_walk/walk_right_1.png new file mode 100644 index 00000000..88e6dddd Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_right_1.png differ diff --git a/source/anims/ghost_kid_walk/walk_right_1.png.import b/source/anims/ghost_kid_walk/walk_right_1.png.import new file mode 100644 index 00000000..28c5947d --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_right_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b013imtp4cvcv" +path="res://.godot/imported/walk_right_1.png-306ee10c204294ba95980b93c095beb8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_right_1.png" +dest_files=["res://.godot/imported/walk_right_1.png-306ee10c204294ba95980b93c095beb8.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_right_2.png b/source/anims/ghost_kid_walk/walk_right_2.png new file mode 100644 index 00000000..01cb3002 Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_right_2.png differ diff --git a/source/anims/ghost_kid_walk/walk_right_2.png.import b/source/anims/ghost_kid_walk/walk_right_2.png.import new file mode 100644 index 00000000..37674eb7 --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_right_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2bn3s1exyb7x" +path="res://.godot/imported/walk_right_2.png-9a56f80141130c7ebf9e0ffdc974b2c4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_right_2.png" +dest_files=["res://.godot/imported/walk_right_2.png-9a56f80141130c7ebf9e0ffdc974b2c4.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_right_3.png b/source/anims/ghost_kid_walk/walk_right_3.png new file mode 100644 index 00000000..c66b2e88 Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_right_3.png differ diff --git a/source/anims/ghost_kid_walk/walk_right_3.png.import b/source/anims/ghost_kid_walk/walk_right_3.png.import new file mode 100644 index 00000000..430fb0a3 --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_right_3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bayr580mhyuwx" +path="res://.godot/imported/walk_right_3.png-d1c28f7bde9083af2f9da4708170bbf9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_right_3.png" +dest_files=["res://.godot/imported/walk_right_3.png-d1c28f7bde9083af2f9da4708170bbf9.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_right_4.png b/source/anims/ghost_kid_walk/walk_right_4.png new file mode 100644 index 00000000..01cb3002 Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_right_4.png differ diff --git a/source/anims/ghost_kid_walk/walk_right_4.png.import b/source/anims/ghost_kid_walk/walk_right_4.png.import new file mode 100644 index 00000000..752fa058 --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_right_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cipjdt3k1fsm4" +path="res://.godot/imported/walk_right_4.png-6c0d06fe904a6747a146bd84fb8f437a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_right_4.png" +dest_files=["res://.godot/imported/walk_right_4.png-6c0d06fe904a6747a146bd84fb8f437a.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_up_1.png b/source/anims/ghost_kid_walk/walk_up_1.png new file mode 100644 index 00000000..986a86ee Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_up_1.png differ diff --git a/source/anims/ghost_kid_walk/walk_up_1.png.import b/source/anims/ghost_kid_walk/walk_up_1.png.import new file mode 100644 index 00000000..45697498 --- /dev/null +++ b/source/anims/ghost_kid_walk/walk_up_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dankfq2k2k0n3" +path="res://.godot/imported/walk_up_1.png-f8b9af8d590912631c593ab864b59bc8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_kid_walk/walk_up_1.png" +dest_files=["res://.godot/imported/walk_up_1.png-f8b9af8d590912631c593ab864b59bc8.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_up_2.png b/source/anims/ghost_kid_walk/walk_up_2.png new file mode 100644 index 00000000..98069dc6 Binary files /dev/null and b/source/anims/ghost_kid_walk/walk_up_2.png differ 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 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 00000000..56650460 Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_down_1.PNG differ 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 00000000..1d17befc Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_down_2.PNG differ 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 00000000..ac85c0b7 Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_down_3.PNG differ diff --git a/source/anims/ghost_monster_walk+idle/float_down_3.PNG.import b/source/anims/ghost_monster_walk+idle/float_down_3.PNG.import new file mode 100644 index 00000000..6df9c7b7 --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_down_3.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://16cnh38gai3w" +path="res://.godot/imported/float_down_3.PNG-ae9ca180be08ff9fccc10bffa7dfe6c6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_down_3.PNG" +dest_files=["res://.godot/imported/float_down_3.PNG-ae9ca180be08ff9fccc10bffa7dfe6c6.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_4.PNG b/source/anims/ghost_monster_walk+idle/float_down_4.PNG new file mode 100644 index 00000000..1d17befc Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_down_4.PNG differ 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 00000000..0b409753 Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_left_1.PNG differ 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 00000000..4aa898ee Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_left_2.png differ diff --git a/source/anims/ghost_monster_walk+idle/float_left_2.png.import b/source/anims/ghost_monster_walk+idle/float_left_2.png.import new file mode 100644 index 00000000..f8b654ad --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_left_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://l605db384sjc" +path="res://.godot/imported/float_left_2.png-b279bcb85ba4415b3b8827cc32ca494b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_left_2.png" +dest_files=["res://.godot/imported/float_left_2.png-b279bcb85ba4415b3b8827cc32ca494b.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_3.PNG b/source/anims/ghost_monster_walk+idle/float_left_3.PNG new file mode 100644 index 00000000..6d37128a Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_left_3.PNG differ diff --git a/source/anims/ghost_monster_walk+idle/float_left_3.PNG.import b/source/anims/ghost_monster_walk+idle/float_left_3.PNG.import new file mode 100644 index 00000000..c94f6dcb --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_left_3.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://edm354l2g766" +path="res://.godot/imported/float_left_3.PNG-d2bd7b0112735a50c5a532cad03ae029.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_left_3.PNG" +dest_files=["res://.godot/imported/float_left_3.PNG-d2bd7b0112735a50c5a532cad03ae029.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_4.PNG b/source/anims/ghost_monster_walk+idle/float_left_4.PNG new file mode 100644 index 00000000..0b409753 Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_left_4.PNG differ 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 00000000..fe93f6b8 Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_right_1.PNG differ 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 00000000..20dedad2 Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_right_2.png differ diff --git a/source/anims/ghost_monster_walk+idle/float_right_2.png.import b/source/anims/ghost_monster_walk+idle/float_right_2.png.import new file mode 100644 index 00000000..238784a2 --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_right_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqgyxecu8burf" +path="res://.godot/imported/float_right_2.png-9da6df2b401de3d6f99ef3b80316dbf8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_right_2.png" +dest_files=["res://.godot/imported/float_right_2.png-9da6df2b401de3d6f99ef3b80316dbf8.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_3.PNG b/source/anims/ghost_monster_walk+idle/float_right_3.PNG new file mode 100644 index 00000000..7bd72058 Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_right_3.PNG differ diff --git a/source/anims/ghost_monster_walk+idle/float_right_3.PNG.import b/source/anims/ghost_monster_walk+idle/float_right_3.PNG.import new file mode 100644 index 00000000..96ac2478 --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_right_3.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dckgn3crus6vt" +path="res://.godot/imported/float_right_3.PNG-736f2f5f7e8f0bb957134ec9e38e8f0c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_right_3.PNG" +dest_files=["res://.godot/imported/float_right_3.PNG-736f2f5f7e8f0bb957134ec9e38e8f0c.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_4.PNG b/source/anims/ghost_monster_walk+idle/float_right_4.PNG new file mode 100644 index 00000000..fe93f6b8 Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_right_4.PNG differ 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 00000000..be63fe5a Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_up_1.PNG differ diff --git a/source/anims/ghost_monster_walk+idle/float_up_1.PNG.import b/source/anims/ghost_monster_walk+idle/float_up_1.PNG.import new file mode 100644 index 00000000..cb9db34f --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_up_1.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2t58n0qvanfr" +path="res://.godot/imported/float_up_1.PNG-16d85de665447352b46efe565524b452.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_up_1.PNG" +dest_files=["res://.godot/imported/float_up_1.PNG-16d85de665447352b46efe565524b452.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_2.PNG b/source/anims/ghost_monster_walk+idle/float_up_2.PNG new file mode 100644 index 00000000..74a6d43f Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_up_2.PNG differ diff --git a/source/anims/ghost_monster_walk+idle/float_up_2.PNG.import b/source/anims/ghost_monster_walk+idle/float_up_2.PNG.import new file mode 100644 index 00000000..ad87b59a --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_up_2.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://70xla3ginu86" +path="res://.godot/imported/float_up_2.PNG-c9a2bf177dd3585e23d34c0e108ccacb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_up_2.PNG" +dest_files=["res://.godot/imported/float_up_2.PNG-c9a2bf177dd3585e23d34c0e108ccacb.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_3.PNG b/source/anims/ghost_monster_walk+idle/float_up_3.PNG new file mode 100644 index 00000000..e0c8dabc Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_up_3.PNG differ 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 00000000..74a6d43f Binary files /dev/null and b/source/anims/ghost_monster_walk+idle/float_up_4.PNG differ diff --git a/source/anims/ghost_monster_walk+idle/float_up_4.PNG.import b/source/anims/ghost_monster_walk+idle/float_up_4.PNG.import new file mode 100644 index 00000000..e05712fd --- /dev/null +++ b/source/anims/ghost_monster_walk+idle/float_up_4.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c14jjha6du28t" +path="res://.godot/imported/float_up_4.PNG-6d517256029169a7ad3cce19570c49b9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/ghost_monster_walk+idle/float_up_4.PNG" +dest_files=["res://.godot/imported/float_up_4.PNG-6d517256029169a7ad3cce19570c49b9.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_4654.PNG b/source/anims/pumpkin_kid_idle/IMG_4654.PNG new file mode 100644 index 00000000..30163a0c Binary files /dev/null and b/source/anims/pumpkin_kid_idle/IMG_4654.PNG differ diff --git a/source/anims/pumpkin_kid_idle/IMG_4654.PNG.import b/source/anims/pumpkin_kid_idle/IMG_4654.PNG.import new file mode 100644 index 00000000..935780c8 --- /dev/null +++ b/source/anims/pumpkin_kid_idle/IMG_4654.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d316efmvuas7u" +path="res://.godot/imported/IMG_4654.PNG-5974e3977b5809ed4e2160ff9a18a33f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_idle/IMG_4654.PNG" +dest_files=["res://.godot/imported/IMG_4654.PNG-5974e3977b5809ed4e2160ff9a18a33f.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_4655.PNG b/source/anims/pumpkin_kid_idle/IMG_4655.PNG new file mode 100644 index 00000000..60fd26ed Binary files /dev/null and b/source/anims/pumpkin_kid_idle/IMG_4655.PNG differ 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 00000000..b3948f64 Binary files /dev/null and b/source/anims/pumpkin_kid_idle/IMG_4656.PNG differ 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 00000000..3f71fef8 Binary files /dev/null and b/source/anims/pumpkin_kid_idle/IMG_4657.PNG differ 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 00000000..9df15f13 Binary files /dev/null and b/source/anims/pumpkin_kid_idle/IMG_4658.PNG differ diff --git a/source/anims/pumpkin_kid_idle/IMG_4658.PNG.import b/source/anims/pumpkin_kid_idle/IMG_4658.PNG.import new file mode 100644 index 00000000..73d5c625 --- /dev/null +++ b/source/anims/pumpkin_kid_idle/IMG_4658.PNG.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dg3d8utyfj30x" +path="res://.godot/imported/IMG_4658.PNG-b264becfb5f69f9462c41496e136a53f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_idle/IMG_4658.PNG" +dest_files=["res://.godot/imported/IMG_4658.PNG-b264becfb5f69f9462c41496e136a53f.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_4659.PNG b/source/anims/pumpkin_kid_idle/IMG_4659.PNG new file mode 100644 index 00000000..2ed9342b Binary files /dev/null and b/source/anims/pumpkin_kid_idle/IMG_4659.PNG differ 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 00000000..22ae77d7 Binary files /dev/null and b/source/anims/pumpkin_kid_idle/IMG_4660.PNG differ 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 00000000..2254f90e Binary files /dev/null and b/source/anims/pumpkin_kid_idle/IMG_4661.PNG differ 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 00000000..1b57818c Binary files /dev/null and b/source/anims/pumpkin_kid_walk/down1.png differ 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 00000000..86a8c04c Binary files /dev/null and b/source/anims/pumpkin_kid_walk/down2.png differ diff --git a/source/anims/pumpkin_kid_walk/down2.png.import b/source/anims/pumpkin_kid_walk/down2.png.import new file mode 100644 index 00000000..5a45b910 --- /dev/null +++ b/source/anims/pumpkin_kid_walk/down2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dg4nh3x3yoy30" +path="res://.godot/imported/down2.png-f4b7be80a13b0c3ff607e74ff44ed7be.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_walk/down2.png" +dest_files=["res://.godot/imported/down2.png-f4b7be80a13b0c3ff607e74ff44ed7be.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/left1.png b/source/anims/pumpkin_kid_walk/left1.png new file mode 100644 index 00000000..51bfbc22 Binary files /dev/null and b/source/anims/pumpkin_kid_walk/left1.png differ diff --git a/source/anims/pumpkin_kid_walk/left1.png.import b/source/anims/pumpkin_kid_walk/left1.png.import new file mode 100644 index 00000000..8268478d --- /dev/null +++ b/source/anims/pumpkin_kid_walk/left1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://oojl4yno5cwh" +path="res://.godot/imported/left1.png-c15a1f8fd103b6283b957e666f8980cb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_walk/left1.png" +dest_files=["res://.godot/imported/left1.png-c15a1f8fd103b6283b957e666f8980cb.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/left2.png b/source/anims/pumpkin_kid_walk/left2.png new file mode 100644 index 00000000..30dce264 Binary files /dev/null and b/source/anims/pumpkin_kid_walk/left2.png differ 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 00000000..82c6e1f1 Binary files /dev/null and b/source/anims/pumpkin_kid_walk/right1.png differ diff --git a/source/anims/pumpkin_kid_walk/right1.png.import b/source/anims/pumpkin_kid_walk/right1.png.import new file mode 100644 index 00000000..d9221feb --- /dev/null +++ b/source/anims/pumpkin_kid_walk/right1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://66ch50cs5ixo" +path="res://.godot/imported/right1.png-376afa048b0d142f2fe84b0a00e31e71.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_walk/right1.png" +dest_files=["res://.godot/imported/right1.png-376afa048b0d142f2fe84b0a00e31e71.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/right2.png b/source/anims/pumpkin_kid_walk/right2.png new file mode 100644 index 00000000..9ed2558c Binary files /dev/null and b/source/anims/pumpkin_kid_walk/right2.png differ diff --git a/source/anims/pumpkin_kid_walk/right2.png.import b/source/anims/pumpkin_kid_walk/right2.png.import new file mode 100644 index 00000000..d18e6c1a --- /dev/null +++ b/source/anims/pumpkin_kid_walk/right2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b30mv2tm73bmh" +path="res://.godot/imported/right2.png-7b5a67ee0504760c6a5531a0582add7f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/anims/pumpkin_kid_walk/right2.png" +dest_files=["res://.godot/imported/right2.png-7b5a67ee0504760c6a5531a0582add7f.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/up1.PNG b/source/anims/pumpkin_kid_walk/up1.PNG new file mode 100644 index 00000000..7d2e1e97 Binary files /dev/null and b/source/anims/pumpkin_kid_walk/up1.PNG differ 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 00000000..66848718 Binary files /dev/null and b/source/anims/pumpkin_kid_walk/up2.PNG differ 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/gui/player_select_toggles.gd b/source/gui/player_select_toggles.gd new file mode 100644 index 00000000..9b5d3de3 --- /dev/null +++ b/source/gui/player_select_toggles.gd @@ -0,0 +1,24 @@ +extends Control +class_name PlayerSelectToggles + +@onready var sprite : Object = $Sprite2D +@onready var value : int = 1 +@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] + pass + +func _on_left_button_pressed() -> void: + value -= 1 + if value < 1: + value = 4 + +func _on_right_button_pressed() -> void: + value += 1 + if value > 4: + value = 1 diff --git a/source/gui/player_select_toggles.tscn b/source/gui/player_select_toggles.tscn new file mode 100644 index 00000000..ef7a58b4 --- /dev/null +++ b/source/gui/player_select_toggles.tscn @@ -0,0 +1,33 @@ +[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="."] +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="."] +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/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_Resource_Unused/Plunger.tres b/source/items/Item_Resource_Unused/Plunger.tres new file mode 100644 index 00000000..9fa34d93 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_c7p57"] +[ext_resource type="Texture2D" uid="uid://6sjrjy3ts348" path="res://source/items/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/Item_Resource_Unused/ToiletPaper.tres b/source/items/Item_Resource_Unused/ToiletPaper.tres new file mode 100644 index 00000000..f8f5811a --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_teqfg"] +[ext_resource type="Texture2D" uid="uid://drouo1e7b67oo" path="res://source/items/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/Item_Resource_Unused/newItem.tres b/source/items/Item_Resource_Unused/newItem.tres new file mode 100644 index 00000000..105b043a --- /dev/null +++ b/source/items/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/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/Item_Resources/BakingSoda.tres b/source/items/Item_Resources/BakingSoda.tres new file mode 100644 index 00000000..24df337e --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_powpt"] +[ext_resource type="Texture2D" uid="uid://b7rs3tdjkmife" path="res://source/items/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/Item_Resources/BarSoap.tres b/source/items/Item_Resources/BarSoap.tres new file mode 100644 index 00000000..01f00119 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_owt4p"] +[ext_resource type="Texture2D" uid="uid://cx60wpmn87dm1" path="res://source/items/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/Item_Resources/BaseballBat.tres b/source/items/Item_Resources/BaseballBat.tres new file mode 100644 index 00000000..c3d2a7c6 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_gvtxx"] +[ext_resource type="Texture2D" uid="uid://n8kc5ecpojp0" path="res://source/items/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/Item_Resources/BoxingGloves.tres b/source/items/Item_Resources/BoxingGloves.tres new file mode 100644 index 00000000..f7bdea37 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_dphqa"] +[ext_resource type="Texture2D" uid="uid://bxu2g1kcx6k20" path="res://source/items/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/Item_Resources/BubbleGum.tres b/source/items/Item_Resources/BubbleGum.tres new file mode 100644 index 00000000..a487a0f3 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_2g6le"] +[ext_resource type="Texture2D" uid="uid://dyerc2bf12e1r" path="res://source/items/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/Item_Resources/CandyCane.tres b/source/items/Item_Resources/CandyCane.tres new file mode 100644 index 00000000..24308121 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_7yeok"] +[ext_resource type="Texture2D" uid="uid://bkbu28tulw66d" path="res://source/items/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/Item_Resources/DeckOfCards.tres b/source/items/Item_Resources/DeckOfCards.tres new file mode 100644 index 00000000..bf1b3b3e --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_de2oy"] +[ext_resource type="Texture2D" uid="uid://rdfoxey27gip" path="res://source/items/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/Item_Resources/FryingPan.tres b/source/items/Item_Resources/FryingPan.tres new file mode 100644 index 00000000..88e1fa46 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_n5nyc"] +[ext_resource type="Texture2D" uid="uid://bdh5om0n3ttan" path="res://source/items/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/Item_Resources/Hose.tres b/source/items/Item_Resources/Hose.tres new file mode 100644 index 00000000..e459f00e --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_8e4kt"] +[ext_resource type="Texture2D" uid="uid://di5sjyqlxreyo" path="res://source/items/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/Item_Resources/JuiceBox.tres b/source/items/Item_Resources/JuiceBox.tres new file mode 100644 index 00000000..aeab7308 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_mx56r"] +[ext_resource type="Texture2D" uid="uid://eehdxpdnjdbn" path="res://source/items/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/Item_Resources/Marbles.tres b/source/items/Item_Resources/Marbles.tres new file mode 100644 index 00000000..ecec6702 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_cspho"] +[ext_resource type="Texture2D" uid="uid://cam6hafwuwn0g" path="res://source/items/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/Item_Resources/Mop.tres b/source/items/Item_Resources/Mop.tres new file mode 100644 index 00000000..2cb36c94 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_7nu72"] +[ext_resource type="Texture2D" uid="uid://c3o5u4wsuwtfj" path="res://source/items/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/Item_Resources/OvenMitts.tres b/source/items/Item_Resources/OvenMitts.tres new file mode 100644 index 00000000..887fe9ee --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_ombo1"] +[ext_resource type="Texture2D" uid="uid://b781y2yilgedy" path="res://source/items/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/Item_Resources/PocketWatch.tres b/source/items/Item_Resources/PocketWatch.tres new file mode 100644 index 00000000..5cf8248c --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_ufiqf"] +[ext_resource type="Texture2D" uid="uid://c4ufxtrgeb0cf" path="res://source/items/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/Item_Resources/PropellerHat.tres b/source/items/Item_Resources/PropellerHat.tres new file mode 100644 index 00000000..9f1d7843 --- /dev/null +++ b/source/items/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/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/Item_Resources/Puzzle Cube.tres b/source/items/Item_Resources/Puzzle Cube.tres new file mode 100644 index 00000000..2fa6e497 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_jnjjl"] +[ext_resource type="Texture2D" uid="uid://c1nu3oul7hqfv" path="res://source/items/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/Item_Resources/RainBoots.tres b/source/items/Item_Resources/RainBoots.tres new file mode 100644 index 00000000..99ce8b62 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_aeuxc"] +[ext_resource type="Texture2D" uid="uid://bldr5242uuk63" path="res://source/items/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/Item_Resources/RainbowLollipop.tres b/source/items/Item_Resources/RainbowLollipop.tres new file mode 100644 index 00000000..cf6e4019 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_cc70q"] +[ext_resource type="Texture2D" uid="uid://udp7gbdphe8o" path="res://source/items/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/Item_Resources/Rake.tres b/source/items/Item_Resources/Rake.tres new file mode 100644 index 00000000..e6b44d3d --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_egh8g"] +[ext_resource type="Texture2D" uid="uid://cv8o5xvrm3cm4" path="res://source/items/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/Item_Resources/RollerSkates.tres b/source/items/Item_Resources/RollerSkates.tres new file mode 100644 index 00000000..b8789967 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_4vsr6"] +[ext_resource type="Texture2D" uid="uid://dfxoi3ybrks0c" path="res://source/items/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/Item_Resources/RubberDucky.tres b/source/items/Item_Resources/RubberDucky.tres new file mode 100644 index 00000000..71cbd170 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_vuubg"] +[ext_resource type="Texture2D" uid="uid://c7rhwxuk6ncld" path="res://source/items/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/Item_Resources/SafetyScissors.tres b/source/items/Item_Resources/SafetyScissors.tres new file mode 100644 index 00000000..f98d9856 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_innlo"] +[ext_resource type="Texture2D" uid="uid://b4xjbdxvn3i2l" path="res://source/items/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/Item_Resources/Spatula.tres b/source/items/Item_Resources/Spatula.tres new file mode 100644 index 00000000..ad990bd7 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_frwgj"] +[ext_resource type="Texture2D" uid="uid://n4gexuvjvwru" path="res://source/items/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/Item_Resources/SprayPaint.tres b/source/items/Item_Resources/SprayPaint.tres new file mode 100644 index 00000000..26ee58b0 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_hltpr"] +[ext_resource type="Texture2D" uid="uid://dpevv3slmjd0y" path="res://source/items/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/Item_Resources/TopHat.tres b/source/items/Item_Resources/TopHat.tres new file mode 100644 index 00000000..0b402b79 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_ui23t"] +[ext_resource type="Texture2D" uid="uid://dyag0hkodt8rf" path="res://source/items/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/Item_Resources/TrenchCoat.tres b/source/items/Item_Resources/TrenchCoat.tres new file mode 100644 index 00000000..7473083e --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_7l3le"] +[ext_resource type="Texture2D" uid="uid://dna8nprqj1ifn" path="res://source/items/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/Item_Resources/WinterHat.tres b/source/items/Item_Resources/WinterHat.tres new file mode 100644 index 00000000..616b3601 --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_qr3gi"] +[ext_resource type="Texture2D" uid="uid://d2rve7du8b7ts" path="res://source/items/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/Item_Resources/Yo-Yo.tres b/source/items/Item_Resources/Yo-Yo.tres new file mode 100644 index 00000000..b75c801d --- /dev/null +++ b/source/items/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/Item_Scripts/Item.gd" id="1_12rx8"] +[ext_resource type="Texture2D" uid="uid://dqmbec8uh8jaq" path="res://source/items/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/Item_Scripts/Item.gd b/source/items/Item_Scripts/Item.gd new file mode 100644 index 00000000..8e0cf645 --- /dev/null +++ b/source/items/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/Item_Scripts/Item_Functions.gd b/source/items/Item_Scripts/Item_Functions.gd new file mode 100644 index 00000000..42c5017e --- /dev/null +++ b/source/items/Item_Scripts/Item_Functions.gd @@ -0,0 +1,195 @@ +#Needs to be a global script +extends Node + +func fire_start(ps : Player): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.IGNORE) +func fire_tick_end(ps : Player): + ps.change_health(-5) + if(ps.statusEffects.hasStatus("Fire")): + ps.statusEffects.giveStatusTimed("FireTick", 0.5, StatusEffectManager.OverLapBehavior.IGNORE) + +func poison_start(ps : Player): + ps.statusEffects.giveStatusTimed("PoisonTick", 1, StatusEffectManager.OverLapBehavior.STACK) +func poison_tick_end(ps : Player): + ps.change_health(-1) + if(ps.statusEffects.hasStatus("Poison")): + 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.item_stats.modifySpeed(-4) +func stun_end(ps : Player): + ps.item_stats.modifySpeed(4) + +func spook_start(ps : Player): + ps.item_stats.modifyAttackDamage(-4) +func spook_end(ps : Player): + 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.item_stats.modifySpeed(2) +func yoyo_speedBuff_end(ps: Player): + 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)) + 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): + if not(ps.statusEffects.hasStatus("propellerHat_speedBuff")): + 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.item_stats.modifySpeed(-2) + ps.statusEffects.removeStatus("propellerHat_speedBuff") + +func topHat_onStart(ps: Player): + ps.statusEffects.addStatusStartAndEndFunction("topHat_speedBuff", Callable(self,"topHat_speedBuff_start").bind(ps), Callable(self,"topHat_speedBuff_end").bind(ps)) +func topHat_onAttack(ps : Player): + ps.statusEffects.giveStatusTimed("topHat_speedBuff", 1, StatusEffectManager.OverLapBehavior.REFRESH) +func topHat_speedBuff_start(ps : Player): + ps.item_stats.modifySpeed(1) +func topHat_speedBuff_end(ps : Player): + 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)) +func winterHat_onGetHit(ps : Player): + 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): + ps.item_stats.modifyAttackDamage(2) +func winterHat_damageBuff_end(ps : Player): + ps.item_stats.modifyAttackDamage(-2) + +func rubberDuck_onRoundStart(ps : Player): + ps.item_stats.modifyMaxHealth(1) + +func candyCane_onRoundStart(ps : Player): + 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): + ps.candy += 1 + ps.statusEffects.giveStatusTimed("candyCane_buff", 1, StatusEffectManager.OverLapBehavior.REFRESH) + +func puzzleCube_onHit(ps : Player, other : Player): + 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): + ps.item_stats.modifySpeed(2) +func puzzleCube_speedBuff_end(ps : Player): + ps.item_stats.modifySpeed(-2) +func puzzleCube_speedDebuff_start(other : Player): + other.item_stats.modifySpeed(-2) +func puzzleCube_speedDebuff_end(other : Player): + 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.item_stats.modifySpeed(2) +func sprayPaint_attackBuff_end(ps : Player): + 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)) + 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): + 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): + 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): + ps.item_stats.modifyAttackDamage(10) +func deckOfCards_damageBuff_end(ps : Player): + ps.item_stats.modifyAttackDamage(-10) +func deckOfCards_speedBuff_start(ps : Player): + ps.item_stats.modifySpeed(10) +func deckOfCards_speedBuff_end(ps : Player): + ps.item_stats.modifySpeed(-10) +func deckOfCards_healthBuff_start(ps : Player): + ps.item_stats.modifyMaxHealth(10) +func deckOfCards_healthBuff_end(ps : Player): + ps.item_stats.modifyMaxHealth(-10) +func deckOfCards_damageBuff2_start(ps : Player): + ps.item_stats.modifyAttackDamage(5) +func deckOfCards_damageBuff2_end(ps : Player): + 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)) + ps.statusEffects.addStatusStartAndEndFunction("rainbowLolipop_tenasityBuff", Callable(self,"rainbowLolipop_tenasityBuff_start").bind(ps),Callable(self,"rainbowLolipop_tenasityBuff_end").bind(ps)) +func rainbowLolipop_onGetHit(ps : Player): + 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): + ps.item_stats.modifyAttackDamage(2) + ps.item_stats.modifySpeed(2) +func rainbowLolipop_buff_end(ps : Player): + ps.item_stats.modifyAttackDamage(-2) + ps.item_stats.modifySpeed(-2) +func rainbowLolipop_tenasityBuff_start(ps : Player): + ps.item_stats.modifyTenasity(2) +func rainbowLolipop_tenasityBuff_end(ps : Player): + 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)) +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.item_stats.modifySpeed(1) +func rollerSkates_buff_end(ps : Player): + 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/items/Item_Scripts/Status_Effect_Manager.gd b/source/items/Item_Scripts/Status_Effect_Manager.gd new file mode 100644 index 00000000..dde36fd6 --- /dev/null +++ b/source/items/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/Item_Sprites/Magic Deck of Cards.png b/source/items/Item_Sprites/Magic Deck of Cards.png new file mode 100644 index 00000000..934c1cc2 Binary files /dev/null and b/source/items/Item_Sprites/Magic Deck of Cards.png differ diff --git a/source/items/Item_Sprites/Magic Deck of Cards.png.import b/source/items/Item_Sprites/Magic Deck of Cards.png.import new file mode 100644 index 00000000..c5cf0b05 --- /dev/null +++ b/source/items/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-709d9409b93ee4069d1ac5cea9a61f62.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +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] + +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/Item_Sprites/Plunger pixel art.png b/source/items/Item_Sprites/Plunger pixel art.png new file mode 100644 index 00000000..b0b25d39 Binary files /dev/null and b/source/items/Item_Sprites/Plunger pixel art.png differ diff --git a/source/items/Item_Sprites/Plunger pixel art.png.import b/source/items/Item_Sprites/Plunger pixel art.png.import new file mode 100644 index 00000000..450694af --- /dev/null +++ b/source/items/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-30e9cc31492621a8b075c584f0141a54.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/Plunger pixel art.png" +dest_files=["res://.godot/imported/Plunger pixel art.png-30e9cc31492621a8b075c584f0141a54.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/Item_Sprites/Stick Sprite.png b/source/items/Item_Sprites/Stick Sprite.png new file mode 100644 index 00000000..5a0a9b90 Binary files /dev/null and b/source/items/Item_Sprites/Stick Sprite.png differ diff --git a/source/items/Item_Sprites/Stick Sprite.png.import b/source/items/Item_Sprites/Stick Sprite.png.import new file mode 100644 index 00000000..706f8eec --- /dev/null +++ b/source/items/Item_Sprites/Stick Sprite.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dghlk3oa2y5i2" +path="res://.godot/imported/Stick Sprite.png-52ec2ee0b38ca57c7bfa39f61a3dce5d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/Stick Sprite.png" +dest_files=["res://.godot/imported/Stick Sprite.png-52ec2ee0b38ca57c7bfa39f61a3dce5d.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/Item_Sprites/Top hat pixel art.png b/source/items/Item_Sprites/Top hat pixel art.png new file mode 100644 index 00000000..8ff4670f Binary files /dev/null and b/source/items/Item_Sprites/Top hat pixel art.png differ diff --git a/source/items/Item_Sprites/Top hat pixel art.png.import b/source/items/Item_Sprites/Top hat pixel art.png.import new file mode 100644 index 00000000..90e6ebbe --- /dev/null +++ b/source/items/Item_Sprites/Top hat pixel art.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dyag0hkodt8rf" +path="res://.godot/imported/Top hat pixel art.png-9fa9213f1665b6a9d045d48d58f737a1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/Top hat pixel art.png" +dest_files=["res://.godot/imported/Top hat pixel art.png-9fa9213f1665b6a9d045d48d58f737a1.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/Item_Sprites/bakingsoda.png b/source/items/Item_Sprites/bakingsoda.png new file mode 100644 index 00000000..c1440942 Binary files /dev/null and b/source/items/Item_Sprites/bakingsoda.png differ diff --git a/source/items/Item_Sprites/bakingsoda.png.import b/source/items/Item_Sprites/bakingsoda.png.import new file mode 100644 index 00000000..14e25ca5 --- /dev/null +++ b/source/items/Item_Sprites/bakingsoda.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7rs3tdjkmife" +path="res://.godot/imported/bakingsoda.png-3cc458b56322eb37cab18c8803240f4e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/bakingsoda.png" +dest_files=["res://.godot/imported/bakingsoda.png-3cc458b56322eb37cab18c8803240f4e.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/Item_Sprites/baseballbat.png b/source/items/Item_Sprites/baseballbat.png new file mode 100644 index 00000000..0d09a878 Binary files /dev/null and b/source/items/Item_Sprites/baseballbat.png differ diff --git a/source/items/Item_Sprites/baseballbat.png.import b/source/items/Item_Sprites/baseballbat.png.import new file mode 100644 index 00000000..7f506394 --- /dev/null +++ b/source/items/Item_Sprites/baseballbat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n8kc5ecpojp0" +path="res://.godot/imported/baseballbat.png-65a23a297aa851401c3f5d1c1e96ec3d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/baseballbat.png" +dest_files=["res://.godot/imported/baseballbat.png-65a23a297aa851401c3f5d1c1e96ec3d.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/Item_Sprites/baseballcap.png b/source/items/Item_Sprites/baseballcap.png new file mode 100644 index 00000000..e904fe88 Binary files /dev/null and b/source/items/Item_Sprites/baseballcap.png differ diff --git a/source/items/Item_Sprites/baseballcap.png.import b/source/items/Item_Sprites/baseballcap.png.import new file mode 100644 index 00000000..1a8aef63 --- /dev/null +++ b/source/items/Item_Sprites/baseballcap.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm5a1jhe6ojrw" +path="res://.godot/imported/baseballcap.png-fabf7a2c2e2cd2875c158dc04cfbd556.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/baseballcap.png" +dest_files=["res://.godot/imported/baseballcap.png-fabf7a2c2e2cd2875c158dc04cfbd556.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/Item_Sprites/boxinggloves.png b/source/items/Item_Sprites/boxinggloves.png new file mode 100644 index 00000000..1c0b9338 Binary files /dev/null and b/source/items/Item_Sprites/boxinggloves.png differ diff --git a/source/items/Item_Sprites/boxinggloves.png.import b/source/items/Item_Sprites/boxinggloves.png.import new file mode 100644 index 00000000..e3f59510 --- /dev/null +++ b/source/items/Item_Sprites/boxinggloves.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxu2g1kcx6k20" +path="res://.godot/imported/boxinggloves.png-eb2da5eb43ce3462aef05caecfe1aea9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/boxinggloves.png" +dest_files=["res://.godot/imported/boxinggloves.png-eb2da5eb43ce3462aef05caecfe1aea9.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/Item_Sprites/bubblegum.png b/source/items/Item_Sprites/bubblegum.png new file mode 100644 index 00000000..30438077 Binary files /dev/null and b/source/items/Item_Sprites/bubblegum.png differ diff --git a/source/items/Item_Sprites/bubblegum.png.import b/source/items/Item_Sprites/bubblegum.png.import new file mode 100644 index 00000000..74f65153 --- /dev/null +++ b/source/items/Item_Sprites/bubblegum.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dyerc2bf12e1r" +path="res://.godot/imported/bubblegum.png-cca2a9e3a66b40d0af009d3f66470998.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/bubblegum.png" +dest_files=["res://.godot/imported/bubblegum.png-cca2a9e3a66b40d0af009d3f66470998.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/Item_Sprites/candycane.png b/source/items/Item_Sprites/candycane.png new file mode 100644 index 00000000..c7ad97f0 Binary files /dev/null and b/source/items/Item_Sprites/candycane.png differ diff --git a/source/items/Item_Sprites/candycane.png.import b/source/items/Item_Sprites/candycane.png.import new file mode 100644 index 00000000..1a3fcc14 --- /dev/null +++ b/source/items/Item_Sprites/candycane.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bkbu28tulw66d" +path="res://.godot/imported/candycane.png-6943d827f25f4f3d89266b1e241e85f8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/candycane.png" +dest_files=["res://.godot/imported/candycane.png-6943d827f25f4f3d89266b1e241e85f8.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/Item_Sprites/fryingpan.png b/source/items/Item_Sprites/fryingpan.png new file mode 100644 index 00000000..068c6488 Binary files /dev/null and b/source/items/Item_Sprites/fryingpan.png differ diff --git a/source/items/Item_Sprites/fryingpan.png.import b/source/items/Item_Sprites/fryingpan.png.import new file mode 100644 index 00000000..912df0dc --- /dev/null +++ b/source/items/Item_Sprites/fryingpan.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdh5om0n3ttan" +path="res://.godot/imported/fryingpan.png-fca0002d8b895453d612637ab7f0ee63.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/fryingpan.png" +dest_files=["res://.godot/imported/fryingpan.png-fca0002d8b895453d612637ab7f0ee63.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/Item_Sprites/hose.png b/source/items/Item_Sprites/hose.png new file mode 100644 index 00000000..821c0cec Binary files /dev/null and b/source/items/Item_Sprites/hose.png differ diff --git a/source/items/Item_Sprites/hose.png.import b/source/items/Item_Sprites/hose.png.import new file mode 100644 index 00000000..80e2c8a0 --- /dev/null +++ b/source/items/Item_Sprites/hose.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://di5sjyqlxreyo" +path="res://.godot/imported/hose.png-2f4e199aab00b141cfdefd15b70f1686.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/hose.png" +dest_files=["res://.godot/imported/hose.png-2f4e199aab00b141cfdefd15b70f1686.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/Item_Sprites/juicebox.png b/source/items/Item_Sprites/juicebox.png new file mode 100644 index 00000000..94460d71 Binary files /dev/null and b/source/items/Item_Sprites/juicebox.png differ diff --git a/source/items/Item_Sprites/juicebox.png.import b/source/items/Item_Sprites/juicebox.png.import new file mode 100644 index 00000000..a8f6aea8 --- /dev/null +++ b/source/items/Item_Sprites/juicebox.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://eehdxpdnjdbn" +path="res://.godot/imported/juicebox.png-55340d81904251851a4b03b6c962d864.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/juicebox.png" +dest_files=["res://.godot/imported/juicebox.png-55340d81904251851a4b03b6c962d864.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/Item_Sprites/magic8ball.png b/source/items/Item_Sprites/magic8ball.png new file mode 100644 index 00000000..4b578a1d Binary files /dev/null and b/source/items/Item_Sprites/magic8ball.png differ diff --git a/source/items/Item_Sprites/magic8ball.png.import b/source/items/Item_Sprites/magic8ball.png.import new file mode 100644 index 00000000..c4462861 --- /dev/null +++ b/source/items/Item_Sprites/magic8ball.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://sqeho1chu66e" +path="res://.godot/imported/magic8ball.png-e08494d6125247593cf32f63c4c42c70.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/magic8ball.png" +dest_files=["res://.godot/imported/magic8ball.png-e08494d6125247593cf32f63c4c42c70.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/Item_Sprites/marbles.png b/source/items/Item_Sprites/marbles.png new file mode 100644 index 00000000..4c45e746 Binary files /dev/null and b/source/items/Item_Sprites/marbles.png differ diff --git a/source/items/Item_Sprites/marbles.png.import b/source/items/Item_Sprites/marbles.png.import new file mode 100644 index 00000000..a088fcd7 --- /dev/null +++ b/source/items/Item_Sprites/marbles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cam6hafwuwn0g" +path="res://.godot/imported/marbles.png-d368393cba5b246f9cde27b3c53c47bb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/marbles.png" +dest_files=["res://.godot/imported/marbles.png-d368393cba5b246f9cde27b3c53c47bb.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/Item_Sprites/mop.png b/source/items/Item_Sprites/mop.png new file mode 100644 index 00000000..c9d46a94 Binary files /dev/null and b/source/items/Item_Sprites/mop.png differ diff --git a/source/items/Item_Sprites/mop.png.import b/source/items/Item_Sprites/mop.png.import new file mode 100644 index 00000000..0601b523 --- /dev/null +++ b/source/items/Item_Sprites/mop.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3o5u4wsuwtfj" +path="res://.godot/imported/mop.png-980f7de3d16839f128fa96ef56f6b046.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/mop.png" +dest_files=["res://.godot/imported/mop.png-980f7de3d16839f128fa96ef56f6b046.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/Item_Sprites/ovenmitts.png b/source/items/Item_Sprites/ovenmitts.png new file mode 100644 index 00000000..266d0f95 Binary files /dev/null and b/source/items/Item_Sprites/ovenmitts.png differ diff --git a/source/items/Item_Sprites/ovenmitts.png.import b/source/items/Item_Sprites/ovenmitts.png.import new file mode 100644 index 00000000..71cc7404 --- /dev/null +++ b/source/items/Item_Sprites/ovenmitts.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b781y2yilgedy" +path="res://.godot/imported/ovenmitts.png-62ac76bca82aef37f9f1576be741d5cd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/ovenmitts.png" +dest_files=["res://.godot/imported/ovenmitts.png-62ac76bca82aef37f9f1576be741d5cd.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/Item_Sprites/piratehat.png b/source/items/Item_Sprites/piratehat.png new file mode 100644 index 00000000..89c5647c Binary files /dev/null and b/source/items/Item_Sprites/piratehat.png differ diff --git a/source/items/Item_Sprites/piratehat.png.import b/source/items/Item_Sprites/piratehat.png.import new file mode 100644 index 00000000..17becede --- /dev/null +++ b/source/items/Item_Sprites/piratehat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bng36643tueog" +path="res://.godot/imported/piratehat.png-92ffa3c25e675f4bbff1d1595a1586fd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/piratehat.png" +dest_files=["res://.godot/imported/piratehat.png-92ffa3c25e675f4bbff1d1595a1586fd.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/Item_Sprites/pocketwatch.png b/source/items/Item_Sprites/pocketwatch.png new file mode 100644 index 00000000..2a62e816 Binary files /dev/null and b/source/items/Item_Sprites/pocketwatch.png differ diff --git a/source/items/Item_Sprites/pocketwatch.png.import b/source/items/Item_Sprites/pocketwatch.png.import new file mode 100644 index 00000000..e0f6574c --- /dev/null +++ b/source/items/Item_Sprites/pocketwatch.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c4ufxtrgeb0cf" +path="res://.godot/imported/pocketwatch.png-20ee064b37f8fbb69f2691d395773cbf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/pocketwatch.png" +dest_files=["res://.godot/imported/pocketwatch.png-20ee064b37f8fbb69f2691d395773cbf.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/Item_Sprites/propellerhat.png b/source/items/Item_Sprites/propellerhat.png new file mode 100644 index 00000000..0687d1e0 Binary files /dev/null and b/source/items/Item_Sprites/propellerhat.png differ diff --git a/source/items/Item_Sprites/propellerhat.png.import b/source/items/Item_Sprites/propellerhat.png.import new file mode 100644 index 00000000..2dd4b91a --- /dev/null +++ b/source/items/Item_Sprites/propellerhat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dghjg34gr46gq" +path="res://.godot/imported/propellerhat.png-409611c0bd3cc56fa9791d03b106f30e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/propellerhat.png" +dest_files=["res://.godot/imported/propellerhat.png-409611c0bd3cc56fa9791d03b106f30e.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/Item_Sprites/puzzlecube.png b/source/items/Item_Sprites/puzzlecube.png new file mode 100644 index 00000000..29e0f533 Binary files /dev/null and b/source/items/Item_Sprites/puzzlecube.png differ diff --git a/source/items/Item_Sprites/puzzlecube.png.import b/source/items/Item_Sprites/puzzlecube.png.import new file mode 100644 index 00000000..9c0881ce --- /dev/null +++ b/source/items/Item_Sprites/puzzlecube.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1nu3oul7hqfv" +path="res://.godot/imported/puzzlecube.png-af67a9cf9da72b4613a752be337e29d0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/puzzlecube.png" +dest_files=["res://.godot/imported/puzzlecube.png-af67a9cf9da72b4613a752be337e29d0.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/Item_Sprites/rainboots.png b/source/items/Item_Sprites/rainboots.png new file mode 100644 index 00000000..0f0da4ec Binary files /dev/null and b/source/items/Item_Sprites/rainboots.png differ diff --git a/source/items/Item_Sprites/rainboots.png.import b/source/items/Item_Sprites/rainboots.png.import new file mode 100644 index 00000000..d426abd6 --- /dev/null +++ b/source/items/Item_Sprites/rainboots.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bldr5242uuk63" +path="res://.godot/imported/rainboots.png-c6dc632df203c3d18f54cd6745ae96ff.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/rainboots.png" +dest_files=["res://.godot/imported/rainboots.png-c6dc632df203c3d18f54cd6745ae96ff.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/Item_Sprites/rainbowlollipop.png b/source/items/Item_Sprites/rainbowlollipop.png new file mode 100644 index 00000000..e90096ba Binary files /dev/null and b/source/items/Item_Sprites/rainbowlollipop.png differ diff --git a/source/items/Item_Sprites/rainbowlollipop.png.import b/source/items/Item_Sprites/rainbowlollipop.png.import new file mode 100644 index 00000000..aa2355cb --- /dev/null +++ b/source/items/Item_Sprites/rainbowlollipop.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://udp7gbdphe8o" +path="res://.godot/imported/rainbowlollipop.png-ce0699473b662cae919979059ebab5e7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/rainbowlollipop.png" +dest_files=["res://.godot/imported/rainbowlollipop.png-ce0699473b662cae919979059ebab5e7.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/Item_Sprites/rake.png b/source/items/Item_Sprites/rake.png new file mode 100644 index 00000000..b19c6d77 Binary files /dev/null and b/source/items/Item_Sprites/rake.png differ diff --git a/source/items/Item_Sprites/rake.png.import b/source/items/Item_Sprites/rake.png.import new file mode 100644 index 00000000..37fa497a --- /dev/null +++ b/source/items/Item_Sprites/rake.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv8o5xvrm3cm4" +path="res://.godot/imported/rake.png-df853ffc457519dde9df4ab211bdc159.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/rake.png" +dest_files=["res://.godot/imported/rake.png-df853ffc457519dde9df4ab211bdc159.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/Item_Sprites/roller skates.png b/source/items/Item_Sprites/roller skates.png new file mode 100644 index 00000000..2db0eecf Binary files /dev/null and b/source/items/Item_Sprites/roller skates.png differ diff --git a/source/items/Item_Sprites/roller skates.png.import b/source/items/Item_Sprites/roller skates.png.import new file mode 100644 index 00000000..8046cb11 --- /dev/null +++ b/source/items/Item_Sprites/roller skates.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfxoi3ybrks0c" +path="res://.godot/imported/roller skates.png-d0d921aece948ea3791c3d8a1393263e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/roller skates.png" +dest_files=["res://.godot/imported/roller skates.png-d0d921aece948ea3791c3d8a1393263e.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/Item_Sprites/rubberduck.png b/source/items/Item_Sprites/rubberduck.png new file mode 100644 index 00000000..0e3039ae Binary files /dev/null and b/source/items/Item_Sprites/rubberduck.png differ diff --git a/source/items/Item_Sprites/rubberduck.png.import b/source/items/Item_Sprites/rubberduck.png.import new file mode 100644 index 00000000..149d86e9 --- /dev/null +++ b/source/items/Item_Sprites/rubberduck.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7rhwxuk6ncld" +path="res://.godot/imported/rubberduck.png-dc9a877dfc280bbfb7e41f25c7addf95.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/rubberduck.png" +dest_files=["res://.godot/imported/rubberduck.png-dc9a877dfc280bbfb7e41f25c7addf95.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/Item_Sprites/safetyscissors.png b/source/items/Item_Sprites/safetyscissors.png new file mode 100644 index 00000000..1f97a763 Binary files /dev/null and b/source/items/Item_Sprites/safetyscissors.png differ diff --git a/source/items/Item_Sprites/safetyscissors.png.import b/source/items/Item_Sprites/safetyscissors.png.import new file mode 100644 index 00000000..0baf4a6d --- /dev/null +++ b/source/items/Item_Sprites/safetyscissors.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4xjbdxvn3i2l" +path="res://.godot/imported/safetyscissors.png-d0127bd82264c55593214fe99abf855a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/safetyscissors.png" +dest_files=["res://.godot/imported/safetyscissors.png-d0127bd82264c55593214fe99abf855a.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/Item_Sprites/soap.png b/source/items/Item_Sprites/soap.png new file mode 100644 index 00000000..aadff60a Binary files /dev/null and b/source/items/Item_Sprites/soap.png differ diff --git a/source/items/Item_Sprites/soap.png.import b/source/items/Item_Sprites/soap.png.import new file mode 100644 index 00000000..69f033aa --- /dev/null +++ b/source/items/Item_Sprites/soap.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cx60wpmn87dm1" +path="res://.godot/imported/soap.png-41e08209be151cec834147f791285e3c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/soap.png" +dest_files=["res://.godot/imported/soap.png-41e08209be151cec834147f791285e3c.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/Item_Sprites/soda.png b/source/items/Item_Sprites/soda.png new file mode 100644 index 00000000..b2d85e97 Binary files /dev/null and b/source/items/Item_Sprites/soda.png differ diff --git a/source/items/Item_Sprites/soda.png.import b/source/items/Item_Sprites/soda.png.import new file mode 100644 index 00000000..a4052436 --- /dev/null +++ b/source/items/Item_Sprites/soda.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgtydwnlm8cga" +path="res://.godot/imported/soda.png-9292e482b6d8339f51706c2fe05f8dec.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/soda.png" +dest_files=["res://.godot/imported/soda.png-9292e482b6d8339f51706c2fe05f8dec.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/Item_Sprites/spatula.png b/source/items/Item_Sprites/spatula.png new file mode 100644 index 00000000..f675b6ab Binary files /dev/null and b/source/items/Item_Sprites/spatula.png differ diff --git a/source/items/Item_Sprites/spatula.png.import b/source/items/Item_Sprites/spatula.png.import new file mode 100644 index 00000000..6c568c8d --- /dev/null +++ b/source/items/Item_Sprites/spatula.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n4gexuvjvwru" +path="res://.godot/imported/spatula.png-980957652204f4d58be51bda9fdb6e92.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/spatula.png" +dest_files=["res://.godot/imported/spatula.png-980957652204f4d58be51bda9fdb6e92.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/Item_Sprites/spraypaint.png b/source/items/Item_Sprites/spraypaint.png new file mode 100644 index 00000000..2395e890 Binary files /dev/null and b/source/items/Item_Sprites/spraypaint.png differ diff --git a/source/items/Item_Sprites/spraypaint.png.import b/source/items/Item_Sprites/spraypaint.png.import new file mode 100644 index 00000000..49e951de --- /dev/null +++ b/source/items/Item_Sprites/spraypaint.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpevv3slmjd0y" +path="res://.godot/imported/spraypaint.png-0b37ce16e37463d842a51cbc5e2d15f4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/spraypaint.png" +dest_files=["res://.godot/imported/spraypaint.png-0b37ce16e37463d842a51cbc5e2d15f4.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/Item_Sprites/toiletpaper.png b/source/items/Item_Sprites/toiletpaper.png new file mode 100644 index 00000000..a11c3207 Binary files /dev/null and b/source/items/Item_Sprites/toiletpaper.png differ diff --git a/source/items/Item_Sprites/toiletpaper.png.import b/source/items/Item_Sprites/toiletpaper.png.import new file mode 100644 index 00000000..91a2fadf --- /dev/null +++ b/source/items/Item_Sprites/toiletpaper.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://drouo1e7b67oo" +path="res://.godot/imported/toiletpaper.png-4f7e2b40b48e1ce68ed5bdef75c97b4b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/toiletpaper.png" +dest_files=["res://.godot/imported/toiletpaper.png-4f7e2b40b48e1ce68ed5bdef75c97b4b.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/Item_Sprites/toothbrush.png b/source/items/Item_Sprites/toothbrush.png new file mode 100644 index 00000000..7acde21d Binary files /dev/null and b/source/items/Item_Sprites/toothbrush.png differ diff --git a/source/items/Item_Sprites/toothbrush.png.import b/source/items/Item_Sprites/toothbrush.png.import new file mode 100644 index 00000000..487e181b --- /dev/null +++ b/source/items/Item_Sprites/toothbrush.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jn1r45u8tnmk" +path="res://.godot/imported/toothbrush.png-b083f4c1d22ddee544860b883a353736.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/toothbrush.png" +dest_files=["res://.godot/imported/toothbrush.png-b083f4c1d22ddee544860b883a353736.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/Item_Sprites/toyraygun.png b/source/items/Item_Sprites/toyraygun.png new file mode 100644 index 00000000..316bc9b5 Binary files /dev/null and b/source/items/Item_Sprites/toyraygun.png differ diff --git a/source/items/Item_Sprites/toyraygun.png.import b/source/items/Item_Sprites/toyraygun.png.import new file mode 100644 index 00000000..b99ef939 --- /dev/null +++ b/source/items/Item_Sprites/toyraygun.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtkw8i738lkxn" +path="res://.godot/imported/toyraygun.png-4d52b2e7f6677d1b6df0154ea17eae4f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/toyraygun.png" +dest_files=["res://.godot/imported/toyraygun.png-4d52b2e7f6677d1b6df0154ea17eae4f.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/Item_Sprites/trenchcoat.png b/source/items/Item_Sprites/trenchcoat.png new file mode 100644 index 00000000..a4efe19f Binary files /dev/null and b/source/items/Item_Sprites/trenchcoat.png differ diff --git a/source/items/Item_Sprites/trenchcoat.png.import b/source/items/Item_Sprites/trenchcoat.png.import new file mode 100644 index 00000000..cbb6a60b --- /dev/null +++ b/source/items/Item_Sprites/trenchcoat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dna8nprqj1ifn" +path="res://.godot/imported/trenchcoat.png-3a6378f7c03ffaf324b514cdb9d48668.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/trenchcoat.png" +dest_files=["res://.godot/imported/trenchcoat.png-3a6378f7c03ffaf324b514cdb9d48668.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/Item_Sprites/trowel.png b/source/items/Item_Sprites/trowel.png new file mode 100644 index 00000000..8d5d4e03 Binary files /dev/null and b/source/items/Item_Sprites/trowel.png differ diff --git a/source/items/Item_Sprites/trowel.png.import b/source/items/Item_Sprites/trowel.png.import new file mode 100644 index 00000000..7d028f53 --- /dev/null +++ b/source/items/Item_Sprites/trowel.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1sj8gwks5e50" +path="res://.godot/imported/trowel.png-14b2b24f0dc9c7aaceb8a7eb3e4d9c7c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/trowel.png" +dest_files=["res://.godot/imported/trowel.png-14b2b24f0dc9c7aaceb8a7eb3e4d9c7c.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/Item_Sprites/winterhat.png b/source/items/Item_Sprites/winterhat.png new file mode 100644 index 00000000..a46f63de Binary files /dev/null and b/source/items/Item_Sprites/winterhat.png differ diff --git a/source/items/Item_Sprites/winterhat.png.import b/source/items/Item_Sprites/winterhat.png.import new file mode 100644 index 00000000..80b69d71 --- /dev/null +++ b/source/items/Item_Sprites/winterhat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2rve7du8b7ts" +path="res://.godot/imported/winterhat.png-7646c1fc8b4a266fd66742f2e06cdf34.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/winterhat.png" +dest_files=["res://.godot/imported/winterhat.png-7646c1fc8b4a266fd66742f2e06cdf34.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/Item_Sprites/yoyo.png b/source/items/Item_Sprites/yoyo.png new file mode 100644 index 00000000..a4d9b50d Binary files /dev/null and b/source/items/Item_Sprites/yoyo.png differ diff --git a/source/items/Item_Sprites/yoyo.png.import b/source/items/Item_Sprites/yoyo.png.import new file mode 100644 index 00000000..cfc96f14 --- /dev/null +++ b/source/items/Item_Sprites/yoyo.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqmbec8uh8jaq" +path="res://.godot/imported/yoyo.png-9dee1db20fc488e79896c5e6a4948d2c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://source/items/Item_Sprites/yoyo.png" +dest_files=["res://.godot/imported/yoyo.png-9dee1db20fc488e79896c5e6a4948d2c.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/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/scenes/IteBE9E.tmp b/source/scenes/IteBE9E.tmp new file mode 100644 index 00000000..93a16fcd --- /dev/null +++ b/source/scenes/IteBE9E.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/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 new file mode 100644 index 00000000..07be4f27 --- /dev/null +++ b/source/scenes/ItemTestingScene.tscn @@ -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/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 new file mode 100644 index 00000000..79dffc69 --- /dev/null +++ b/source/scenes/cut_scenes/pre_game_cut_scene.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=2 format=3 uid="uid://bn5ejiljdkkwe"] + +[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="ContinueButton" type="Button" parent="."] +offset_left = 202.0 +offset_top = 191.0 +offset_right = 330.0 +offset_bottom = 222.0 +text = "Continue" + +[node name="CutSceneLabel" type="Label" parent="."] +offset_left = 19.0 +offset_top = 27.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! + +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 new file mode 100644 index 00000000..40e6eeae --- /dev/null +++ b/source/scenes/demo_room.tscn @@ -0,0 +1,46 @@ +[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"] +[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/frankenstein_attack.tscn b/source/scenes/frankenstein_attack.tscn new file mode 100644 index 00000000..ef912d6d --- /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 = 59.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/game_container/game_container.gd b/source/scenes/game_container/game_container.gd new file mode 100644 index 00000000..c9575e70 --- /dev/null +++ b/source/scenes/game_container/game_container.gd @@ -0,0 +1,86 @@ +extends Node2D +class_name GameContainer + +#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 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 stage : PackedScene = preload("res://source/scenes/stages/stage_template.tscn") + +@onready var scene_dict = { + "MainMenu" : main_menu, + "Credits" : credits, + "Instructions" : instructions, + "CharacterSelect" : character_select, + "PreGameCutScene" : pre_game_cut_scene, + "Shop" : shop, + "GameOver" : game_over, + "Stage" : stage +} + +#Scoring +var player_scores : Array[int] = [0,0,0,0] +var winning_score : int = 5 + +#### METHODS #### + +func _ready(): + GAME_CONTAINER = self + switch_to_scene("MainMenu") + +func _process(_elta): + #quit if Q pressed - DEBUG + if Input.is_key_pressed(KEY_Q) : + get_tree().quit() + +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) + #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) : + 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 award_point_to_player(player : int) : + player_scores[player-1] += 1 + +func award_points_to_player(player : int, points : int) : + player_scores[player-1] += points + +func award_points_to_players(points : Array[int]) : + 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..161f6686 --- /dev/null +++ b/source/scenes/game_container/game_container.tscn @@ -0,0 +1,15 @@ +[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"] + +[node name="GameContainer" type="Node2D"] +script = ExtResource("1_nfc83") + +[node name="ActiveSceneHolder" type="Node2D" parent="."] + +[node name="OverlayPanels" type="Node2D" parent="."] + +[node name="Players" type="Node2D" parent="."] + +[node name="Camera2D" type="Camera2D" parent="."] +position = Vector2(256, 160) diff --git a/source/scenes/ghost_attack.tscn b/source/scenes/ghost_attack.tscn new file mode 100644 index 00000000..8bb71d94 --- /dev/null +++ b/source/scenes/ghost_attack.tscn @@ -0,0 +1,18 @@ +[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") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerHitbox"] +shape = SubResource("CircleShape2D_7bw4k") + +[node name="Timer" type="Timer" parent="."] diff --git a/source/scenes/input_button.tscn b/source/scenes/input_button.tscn new file mode 100644 index 00000000..dfbe8d75 --- /dev/null +++ b/source/scenes/input_button.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=2 format=3 uid="uid://caum2ucqak0ro"] + +[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) +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"] +modulate = Color(1, 1, 1, 0) +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.tscn b/source/scenes/input_controls.tscn new file mode 100644 index 00000000..f6ddf7a0 --- /dev/null +++ b/source/scenes/input_controls.tscn @@ -0,0 +1,70 @@ +[gd_scene load_steps=3 format=3 uid="uid://cl8jv2cft44qw"] + +[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"] +custom_minimum_size = Vector2(500, 0) +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 = "" +metadata/device_id = 0 + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 0 +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 +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"] +modulate = Color(1, 1, 1, 0) +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" + +[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/itemSelector/item_button.gd b/source/scenes/itemSelector/item_button.gd new file mode 100644 index 00000000..d0fe6b83 --- /dev/null +++ b/source/scenes/itemSelector/item_button.gd @@ -0,0 +1,33 @@ +extends Button +class_name Item_Button + +var item: Item +var player: Player + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + self.pressed.connect(self._button_pressed) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + +func setItem(resource: Item): + self.item = resource + set_text(resource.name) + set_button_icon(resource.sprite) + +func setPlayer(p: Player): + player = p + +func _button_pressed(): + var baseScene = get_tree().current_scene + if (baseScene.name == "DemoRoom"): + if (player == null): + print("I couldn't get the Player node!") + return + 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_button.tscn b/source/scenes/itemSelector/item_button.tscn new file mode 100644 index 00000000..e2961556 --- /dev/null +++ b/source/scenes/itemSelector/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/itemSelector/item_button.gd" id="1_pasov"] + +[node name="ItemButton" type="Button"] +text = "test +" +script = ExtResource("1_pasov") diff --git a/source/scenes/itemSelector/item_selector.gd b/source/scenes/itemSelector/item_selector.gd new file mode 100644 index 00000000..0d07a94c --- /dev/null +++ b/source/scenes/itemSelector/item_selector.gd @@ -0,0 +1,43 @@ +extends Control +class_name Item_Selector + +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 +@onready var label: Label = $MarginContainer/VBoxContainer/Label + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + 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: + 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 = load(resourcePath + "/" + file_name) as Item + 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 new file mode 100644 index 00000000..d2c37154 --- /dev/null +++ b/source/scenes/itemSelector/item_selector.tscn @@ -0,0 +1,53 @@ +[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"] + +[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 +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="."] +modulate = Color(0.258824, 0.529412, 0.960784, 0.470588) +layout_mode = 0 +offset_right = 983.0 +offset_bottom = 562.0 +texture = SubResource("CanvasTexture_wuym8") + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 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 +theme_override_constants/margin_bottom = 20 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Item Selector (Ctrl + I to exit)" +label_settings = SubResource("LabelSettings_j1tjw") +horizontal_alignment = 1 + +[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 diff --git a/source/scenes/itemSelector/item_selector_portal.gd b/source/scenes/itemSelector/item_selector_portal.gd new file mode 100644 index 00000000..e354b7ff --- /dev/null +++ b/source/scenes/itemSelector/item_selector_portal.gd @@ -0,0 +1,27 @@ +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: + 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 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 new file mode 100644 index 00000000..41545aed --- /dev/null +++ b/source/scenes/itemSelector/item_selector_portal.tscn @@ -0,0 +1,21 @@ +[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"] +[connection signal="body_exited" from="." to="." method="_on_body_exited"] diff --git a/source/scenes/menus/character_select.gd b/source/scenes/menus/character_select.gd new file mode 100644 index 00000000..4c11e2ed --- /dev/null +++ b/source/scenes/menus/character_select.gd @@ -0,0 +1,79 @@ +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 = [] + +@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() + +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: + 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] + 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 +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 + 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) + player_classes[player_count] = 0 diff --git a/source/scenes/menus/character_select.tscn b/source/scenes/menus/character_select.tscn new file mode 100644 index 00000000..1183cd74 --- /dev/null +++ b/source/scenes/menus/character_select.tscn @@ -0,0 +1,65 @@ +[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 +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 +offset_right = 324.0 +offset_bottom = 101.0 +text = "Character Select" + +[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="StartButton" type="Button" parent="."] +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"] +[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.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 new file mode 100644 index 00000000..32009b53 --- /dev/null +++ b/source/scenes/menus/credits.tscn @@ -0,0 +1,38 @@ +[gd_scene load_steps=2 format=3 uid="uid://bhuom4ivjp0be"] + +[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 = 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 = 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 +Quintin Levy - Programmer +Felix +Vincent +Haseeb" + +[node name="BackButton" type="Button" parent="."] +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/game_over.tscn b/source/scenes/menus/game_over.tscn new file mode 100644 index 00000000..84979ef8 --- /dev/null +++ b/source/scenes/menus/game_over.tscn @@ -0,0 +1,16 @@ +[gd_scene format=3 uid="uid://cby3remb66qik"] + +[node name="GameOver" type="Node2D"] + +[node name="MainMenuButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "MainMenu" + +[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.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 new file mode 100644 index 00000000..12e6ef80 --- /dev/null +++ b/source/scenes/menus/instructions.tscn @@ -0,0 +1,24 @@ +[gd_scene load_steps=2 format=3 uid="uid://cltaghkxnswjy"] + +[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 = 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 = 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.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 new file mode 100644 index 00000000..d5916a64 --- /dev/null +++ b/source/scenes/menus/main_menu.tscn @@ -0,0 +1,48 @@ +[gd_scene load_steps=2 format=3 uid="uid://dd71ltua8vpqj"] + +[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 = 8.0 +offset_top = 26.0 +offset_right = 500.0 +offset_bottom = 116.0 +theme_override_font_sizes/font_size = 60 +text = "Hallow's Thief" +horizontal_alignment = 1 + +[node name="PlayButton" type="Button" parent="."] +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 = 132.0 +offset_top = 191.0 +offset_right = 200.0 +offset_bottom = 222.0 +text = "Credits" + +[node name="InstructionsButton" type="Button" parent="."] +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 = 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"] +[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"] diff --git a/source/scenes/player.tscn b/source/scenes/player.tscn new file mode 100644 index 00000000..b445578f --- /dev/null +++ b/source/scenes/player.tscn @@ -0,0 +1,685 @@ +[gd_scene load_steps=106 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="Script" path="res://source/scripts/Hurtbox.gd" id="2_lav1o"] +[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"] +[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 = [{ +"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, +"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": 6.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": 6.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": 6.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("12_gv1ak") +}, { +"duration": 1.0, +"texture": ExtResource("13_s1ym5") +}], +"loop": true, +"name": &"ghost_kid_walk_up", +"speed": 6.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("22_j1tkh") +}, { +"duration": 1.0, +"texture": ExtResource("23_qei8t") +}, { +"duration": 1.0, +"texture": ExtResource("24_unuhm") +}, { +"duration": 1.0, +"texture": ExtResource("25_0wy31") +}], +"loop": true, +"name": &"ghost_monster_idle_down", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("26_nuk37") +}, { +"duration": 1.0, +"texture": ExtResource("27_u3f4d") +}, { +"duration": 1.0, +"texture": ExtResource("28_d1udg") +}, { +"duration": 1.0, +"texture": ExtResource("29_i4guu") +}], +"loop": true, +"name": &"ghost_monster_idle_left", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("30_li174") +}, { +"duration": 1.0, +"texture": ExtResource("31_rxtvl") +}, { +"duration": 1.0, +"texture": ExtResource("32_1cs5m") +}, { +"duration": 1.0, +"texture": ExtResource("33_5ofd6") +}], +"loop": true, +"name": &"ghost_monster_idle_right", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("34_op8n7") +}, { +"duration": 1.0, +"texture": ExtResource("35_d1kxc") +}, { +"duration": 1.0, +"texture": ExtResource("36_m37rc") +}, { +"duration": 1.0, +"texture": ExtResource("37_62mol") +}], +"loop": true, +"name": &"ghost_monster_idle_up", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("22_j1tkh") +}, { +"duration": 1.0, +"texture": ExtResource("23_qei8t") +}, { +"duration": 1.0, +"texture": ExtResource("24_unuhm") +}, { +"duration": 1.0, +"texture": ExtResource("25_0wy31") +}], +"loop": true, +"name": &"ghost_monster_walk_down", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("26_nuk37") +}, { +"duration": 1.0, +"texture": ExtResource("27_u3f4d") +}, { +"duration": 1.0, +"texture": ExtResource("28_d1udg") +}, { +"duration": 1.0, +"texture": ExtResource("29_i4guu") +}], +"loop": true, +"name": &"ghost_monster_walk_left", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("30_li174") +}, { +"duration": 1.0, +"texture": ExtResource("31_rxtvl") +}, { +"duration": 1.0, +"texture": ExtResource("32_1cs5m") +}, { +"duration": 1.0, +"texture": ExtResource("33_5ofd6") +}], +"loop": true, +"name": &"ghost_monster_walk_right", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("34_op8n7") +}, { +"duration": 1.0, +"texture": ExtResource("35_d1kxc") +}, { +"duration": 1.0, +"texture": ExtResource("36_m37rc") +}, { +"duration": 1.0, +"texture": ExtResource("37_62mol") +}], +"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="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") +base_speed = 100.0 +character = 2 +metadata/player_num = "1" + +[node name="PlayerSprite" type="Node2D" parent="."] + +[node name="Body" type="AnimatedSprite2D" parent="PlayerSprite"] +sprite_frames = SubResource("SpriteFrames_1n7tg") +animation = &"ghost_kid_idle_up" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0.25, 16.25) +shape = SubResource("RectangleShape2D_8bd1v") + +[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..2de80c38 --- /dev/null +++ b/source/scenes/projectile.tscn @@ -0,0 +1,36 @@ +[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 = 17.0 +height = 46.0 + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_h5cjd"] +radius = 16.0 +height = 46.0 + +[node name="Projectile" type="Node2D"] +position = Vector2(50, 0) +script = ExtResource("1_run20") + +[node name="Sprite2D" type="Sprite2D" parent="."] +rotation = 1.5708 + +[node name="PlayerHitbox" type="Area2D" parent="."] +script = ExtResource("1_2d1wf") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerHitbox"] +position = Vector2(38, 0) +rotation = 1.5708 +shape = SubResource("CapsuleShape2D_kly78") + +[node name="ImpactDetector" type="Area2D" parent="."] + +[node name="ID_ColShape" type="CollisionShape2D" parent="ImpactDetector"] +position = Vector2(38, 0) +rotation = 1.5708 +shape = SubResource("CapsuleShape2D_h5cjd") + +[node name="lifespan_timer" type="Timer" parent="."] diff --git a/source/scenes/pumpkin_attack.tscn b/source/scenes/pumpkin_attack.tscn new file mode 100644 index 00000000..b5b44c65 --- /dev/null +++ b/source/scenes/pumpkin_attack.tscn @@ -0,0 +1,21 @@ +[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"] +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") + +[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/scenes/settings.tscn b/source/scenes/settings.tscn new file mode 100644 index 00000000..fd0ce405 --- /dev/null +++ b/source/scenes/settings.tscn @@ -0,0 +1,79 @@ +[gd_scene load_steps=4 format=3 uid="uid://b55salwd6xeoq"] + +[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"] + +[node name="Settings" type="Control"] +process_mode = 3 +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="HBoxContainer" type="HBoxContainer" parent="TabContainer/Controls/MarginContainer/ScrollContainer"] +layout_mode = 2 + +[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="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="Input Controls3" parent="TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer/VBoxContainer" instance=ExtResource("1_ovefd")] +layout_mode = 2 +metadata/player_num = 3 +metadata/input_type = "Keyboard" +metadata/device_id = 2 + +[node name="VBoxContainer2" type="VBoxContainer" parent="TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/separation = 16 + +[node name="Input Controls2" parent="TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer/VBoxContainer2" instance=ExtResource("1_ovefd")] +layout_mode = 2 +metadata/player_num = 2 +metadata/input_type = "Keyboard" +metadata/device_id = 1 + +[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" +metadata/device_id = 3 diff --git a/source/scenes/stages/shop.tscn b/source/scenes/stages/shop.tscn new file mode 100644 index 00000000..63f01424 --- /dev/null +++ b/source/scenes/stages/shop.tscn @@ -0,0 +1,20 @@ +[gd_scene format=3 uid="uid://c35tr47yom1wt"] + +[node name="Shop" type="Node2D"] + +[node name="PlayButton" type="Button" parent="."] +offset_right = 8.0 +offset_bottom = 8.0 +text = "Play" + +[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..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/scenes/stages/stage_template.tscn b/source/scenes/stages/stage_template.tscn new file mode 100644 index 00000000..4d90a2e0 --- /dev/null +++ b/source/scenes/stages/stage_template.tscn @@ -0,0 +1,51 @@ +[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 +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 +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 = 1 +physics_layer_0/collision_mask = 2 +sources/0 = SubResource("TileSetAtlasSource_j2huj") + +[node name="StageTemplate" type="Node2D"] + +[node name="Label" type="Label" parent="."] +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") + +[node name="Walls" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAAAAAAAABAAMAAAAPAAAAAAABAAMAAAAOAAAAAAABAAMAAAANAAAAAAABAAMAAAAMAAAAAAABAAMAAAALAAAAAAABAAMAAAAKAAAAAAABAAMAAAAJAAAAAAABAAMAAAAIAAAAAAABAAMAAAAHAAAAAAABAAMAAAAGAAAAAAABAAMAAAAFAAAAAAABAAMAAAAEAAAAAAABAAMAAAADAAAAAAABAAMAAAACAAAAAAABAAMAAAABAAAAAAABAAMAAAAAAAEAAAABAAMAAAAAAAIAAAABAAMAAAAAAAMAAAABAAMAAAAAAAQAAAABAAMAAAAAAAUAAAABAAMAAAAAAAYAAAABAAMAAAAAAAcAAAABAAMAAAAAAAgAAAABAAMAAAAAAAkAAAABAAMAAAABAAkAAAABAAMAAAACAAkAAAABAAMAAAADAAkAAAABAAMAAAAEAAkAAAABAAMAAAAFAAkAAAABAAMAAAAGAAkAAAABAAMAAAAHAAkAAAABAAMAAAAIAAkAAAABAAMAAAAJAAkAAAABAAMAAAAKAAkAAAABAAMAAAALAAkAAAABAAMAAAAMAAkAAAABAAMAAAANAAkAAAABAAMAAAAOAAkAAAABAAMAAAAPAAkAAAABAAMAAAAPAAgAAAABAAMAAAAPAAcAAAABAAMAAAAPAAYAAAABAAMAAAAPAAUAAAABAAMAAAAPAAQAAAABAAMAAAAPAAMAAAABAAMAAAAPAAIAAAABAAMAAAAPAAEAAAABAAMAAAABAAgAAAAAAAMAAAAOAAgAAAACAAMAAAABAAIAAAAAAAEAAAAOAAIAAAACAAEAAAAOAAEAAAACAAAAAAAOAAMAAAACAAIAAAABAAMAAAAAAAIAAAABAAEAAAAAAAAAAAACAAIAAAABAAEAAAADAAIAAAABAAEAAAAEAAIAAAABAAEAAAAFAAIAAAABAAEAAAAGAAIAAAABAAEAAAAHAAIAAAABAAEAAAAIAAIAAAABAAEAAAAJAAIAAAABAAEAAAAKAAIAAAABAAEAAAALAAIAAAABAAEAAAAMAAIAAAABAAEAAAANAAIAAAABAAEAAAACAAEAAAABAAAAAAADAAEAAAABAAAAAAAEAAEAAAABAAAAAAAFAAEAAAABAAAAAAAGAAEAAAABAAAAAAAHAAEAAAABAAAAAAAIAAEAAAABAAAAAAAJAAEAAAABAAAAAAAKAAEAAAABAAAAAAALAAEAAAABAAAAAAAMAAEAAAABAAAAAAANAAEAAAABAAAAAAA=") +tile_set = SubResource("TileSet_ruhe0") diff --git a/source/scripts/Hitbox.gd b/source/scripts/Hitbox.gd new file mode 100644 index 00000000..cd846e71 --- /dev/null +++ b/source/scripts/Hitbox.gd @@ -0,0 +1,14 @@ +class_name PlayerHitbox +extends Area2D + +@onready var collision_shape = $CollisionShape2D +func _init() -> void: + 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() ) diff --git a/source/scripts/Item_Advanced_Functions.gd b/source/scripts/Item_Advanced_Functions.gd new file mode 100644 index 00000000..86527882 --- /dev/null +++ b/source/scripts/Item_Advanced_Functions.gd @@ -0,0 +1,40 @@ +#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 +#Project > Project Settings > Globals + + +#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): + 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") + +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 new file mode 100644 index 00000000..3611965f --- /dev/null +++ b/source/scripts/Item_Test.gd @@ -0,0 +1,15 @@ +#LEGACY TESTING CODE +#CAN BE DELETED +#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 +@export var onGetHitFunctions : String +#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..845d5683 --- /dev/null +++ b/source/scripts/Player_Test.gd @@ -0,0 +1,108 @@ +class_name Player_Test +extends Node + +#this is just a test repleca of the player +#important code that should be transfered should also be noted +@export var items: Array[Item] + +@export var playerStat_Test_Textbox: RichTextLabel + +var isMonster : bool = false + +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 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 + +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() + #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("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.attackDamage + health += item.maxHealth + speed += item.speed + tenasity += item.tenacity + luck += item.luck + + for i in range(item.functionTypes.size()): + match item.functionTypes[i]: + Item.FunctionTypes.OnStart: + 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(ItemFunctions, item.functionNames[i])) + Item.FunctionTypes.OnGetHit: + 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 != ""): + #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(otherPs: Player_Test):#otherPs - hit Playerscript + for i in onHitFunctions: + i.call(self,otherPs) + + +func change_health(deltaHealth : float): + health += deltaHealth + call_functions(onGetHitFunctions) + if(health < 0): + #handle death + pass + + +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/Stats.gd b/source/scripts/Stats.gd new file mode 100644 index 00000000..8e083fbd --- /dev/null +++ b/source/scripts/Stats.gd @@ -0,0 +1,79 @@ +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 +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 + 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 + statChanged.emit() + 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 + 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/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/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 diff --git a/source/scripts/input_button.gd b/source/scripts/input_button.gd new file mode 100644 index 00000000..3b3e7365 --- /dev/null +++ b/source/scripts/input_button.gd @@ -0,0 +1,75 @@ +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 + +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) + + 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": + 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") + if cur_input_type != input_type: + InputMap.action_erase_events(action) + 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 + set_text() + +func _on_button_pressed() -> void: + waiting = true + button.text = "Press Any Key" + +func _input(event): + 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 + 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] diff --git a/source/scripts/input_controls.gd b/source/scripts/input_controls.gd new file mode 100644 index 00000000..98d87570 --- /dev/null +++ b/source/scripts/input_controls.gd @@ -0,0 +1,33 @@ +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 + +@onready var player_num = get_meta("player_num") +@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: + 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 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: + set_meta("input_type", "Keyboard") + set_meta("device_id", -1) diff --git a/source/scripts/player.gd b/source/scripts/player.gd new file mode 100644 index 00000000..d8dc54ba --- /dev/null +++ b/source/scripts/player.gd @@ -0,0 +1,296 @@ +extends CharacterBody2D + +class_name Player + +var player_num +var Speed := 0.0 +var movement := Vector2.ZERO +var last_movement := Vector2(0,1) + +#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 +@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 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] + +#this is just a test repleca of the player +@export var items: Array[Resource] + +#LEGACY replaced by total_stats +#var maxHealth : int = 12 +#var damage : int = 0 +#var topSpeed : int = 10 + +enum Character { + WITCH, + FRANKENSTEIN, + GHOST, + PUMPKIN +} + +@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") +const Pumpkin_Attack_Scene := preload("res://source/scenes/pumpkin_attack.tscn") +const Ghost_Attack_Scene := preload("res://source/scenes/ghost_attack.tscn") + + +var health : float = 0 +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 +var onSwitchCharacter : Array[Callable] +var onRoundStart : Array[Callable] + +var direction: Vector2 = Vector2(0, 1) +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() + item_stats.statChanged.connect(update_totalStats) + health = total_stats.maxHealth + pass + +func _process(delta: float) -> void: + handle_move() + if Input.is_action_just_pressed("Attack" + player_num): handle_attack() + if(movement != Vector2.ZERO): + last_movement = movement + +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() + + if not velocity.is_zero_approx(): direction = velocity + + if movement.length() : + Speed = move_toward(Speed, total_stats.speed, ACCELERATION) + + 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) + playAttackAnimation() + match character: + #THIS NEEDS TO BE UPDATED AFTER ATTACK SCENES MADE + Character.WITCH: + add_attack_instance_as_child(Projectile_Scene) + Character.FRANKENSTEIN: + add_attack_instance_as_child(Frank_Attack_Scene) + Character.GHOST: + add_attack_instance_as_child(Ghost_Attack_Scene) + Character.PUMPKIN: + add_attack_instance_as_child(Pumpkin_Attack_Scene) + _: + print("ERROR: Player not assigned character") + +func handle_damage(attackingPlayer: CharacterBody2D) -> void: + for i in onGetHitFunctions: + 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() + + +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 = last_movement #wsdaglobal_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 total_stats.attackDamage + + +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: + 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(ItemFunctions, item.functionNames[i])) + Item.FunctionTypes.OnGetHit: + onGetHitFunctions.append(Callable(ItemFunctions, item.functionNames[i]).bind(self)) + Item.FunctionTypes.OnRoundStart: + onRoundStart.append(Callable(ItemFunctions, item.functionNames[i]).bind(self)) + +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): + health += deltaHealth + call_functions(onGetHitFunctions) + if(health < 0): + #handle death + pass + +func call_functions(arr : Array[Callable]): + for i in arr: + i.call() + +func playWalkOrIdleAnimation(): + if velocity.is_zero_approx(): + sprite.play(model + "_idle_" + getDirectionWord(direction)) + 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" + 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" + + +#currently unused +#func changeModel(newModel: String): + #model = newModel + + +#SPLIT + +#### 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 +## 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)) + #play_hit_animation() + ## 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() +#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 +func dashing(): + ## dash values, please + dash = true + Speed = 750 + await get_tree().create_timer(2).timeout + dash = false + Speed = move_toward(Speed, 0, total_stats.speed * DECELERATION) diff --git a/source/scripts/projectile.gd b/source/scripts/projectile.gd new file mode 100644 index 00000000..30a268ce --- /dev/null +++ b/source/scripts/projectile.gd @@ -0,0 +1,51 @@ +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 + 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 diff --git a/source/scripts/quit.gd b/source/scripts/quit.gd new file mode 100644 index 00000000..317dcd2d --- /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() diff --git a/source/scripts/settings.gd b/source/scripts/settings.gd new file mode 100644 index 00000000..569bb2c3 --- /dev/null +++ b/source/scripts/settings.gd @@ -0,0 +1,58 @@ +extends Control + +@onready var hbox = $TabContainer/Controls/MarginContainer/ScrollContainer/HBoxContainer + +var deviceIDs = [] +var old_joypads = [] + +func _ready(): + 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)) + +func _process(delta): + if Input.is_action_just_pressed("esc"): + 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 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): + if Input.get_connected_joypads().has(i) && !deviceIDs.has(i): + 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 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])