From 466bec0b724632f6dd2e1555a7bd58ffc1dd0458 Mon Sep 17 00:00:00 2001 From: altaf-creator Date: Mon, 20 Oct 2025 01:43:48 +0800 Subject: Jam version. --- .editorconfig | 4 + .gitattributes | 2 + .gitignore | 3 + Assets/Resources/EBGaramond-VariableFont_wght.ttf | Bin 0 -> 934420 bytes .../EBGaramond-VariableFont_wght.ttf.import | 35 + Assets/Resources/NotoEmoji-VariableFont_wght.ttf | Bin 0 -> 1991496 bytes .../NotoEmoji-VariableFont_wght.ttf.import | 35 + Assets/Resources/Roboto-Italic.ttf | Bin 0 -> 170504 bytes Assets/Resources/Roboto-Italic.ttf.import | 40 + Assets/Resources/hotbar_deselected.tres | 16 + Assets/Resources/hotbar_selected.tres | 17 + Assets/Resources/please help machette.res | Bin 0 -> 532 bytes Assets/Resources/please help mask.res | Bin 0 -> 529 bytes Assets/Resources/theme.tres | 98 + Assets/Resources/toast_machette.tres | 10 + Assets/Resources/toast_mask.tres | 10 + .../what the actual fuck bro machette.res | Bin 0 -> 609 bytes Assets/Resources/what thefuck bro mask.res | Bin 0 -> 599 bytes Assets/Visuals/bag.svg | 62 + Assets/Visuals/bag.svg.import | 37 + Assets/Visuals/bow.png | Bin 0 -> 19371 bytes Assets/Visuals/bow.png.import | 34 + Assets/Visuals/chest_open.svg | 95 + Assets/Visuals/chest_open.svg.import | 37 + Assets/Visuals/chest_top.svg | 66 + Assets/Visuals/chest_top.svg.import | 37 + Assets/Visuals/club.svg | 41 + Assets/Visuals/club.svg.import | 37 + Assets/Visuals/esc.png | Bin 0 -> 14043 bytes Assets/Visuals/esc.png.import | 34 + Assets/Visuals/hexagon.png | Bin 0 -> 13151 bytes Assets/Visuals/hexagon.png.import | 34 + Assets/Visuals/isostri.png | Bin 0 -> 13863 bytes Assets/Visuals/isostri.png.import | 34 + Assets/Visuals/machette.svg | 50 + Assets/Visuals/machette.svg.import | 37 + Assets/Visuals/mask.png | Bin 0 -> 16500 bytes Assets/Visuals/mask.png.import | 34 + Assets/Visuals/mask0.svg | 90 + Assets/Visuals/mask0.svg.import | 37 + Assets/Visuals/mask1.svg | 98 + Assets/Visuals/mask1.svg.import | 37 + Assets/Visuals/mask2.svg | 92 + Assets/Visuals/mask2.svg.import | 37 + Assets/Visuals/player.png | Bin 0 -> 14520 bytes Assets/Visuals/player.png.import | 34 + Assets/Visuals/player.svg | 47 + Assets/Visuals/player.svg.import | 37 + Assets/Visuals/player_empty.svg | 48 + Assets/Visuals/player_empty.svg.import | 37 + Assets/Visuals/player_empty2.svg | 59 + Assets/Visuals/player_empty2.svg.import | 37 + Assets/Visuals/righttri.png | Bin 0 -> 10630 bytes Assets/Visuals/righttri.png.import | 34 + Assets/Visuals/shiny.svg | 70 + Assets/Visuals/shiny.svg.import | 37 + Assets/Visuals/sign_cliff.svg | 75 + Assets/Visuals/sign_cliff.svg.import | 37 + Assets/Visuals/sign_dash.svg | 77 + Assets/Visuals/sign_dash.svg.import | 37 + Assets/Visuals/sign_summit.png | Bin 0 -> 88536 bytes Assets/Visuals/sign_summit.png.import | 34 + Assets/Visuals/space.png | Bin 0 -> 8881 bytes Assets/Visuals/space.png.import | 34 + Assets/Visuals/tutorial0.png | Bin 0 -> 50328 bytes Assets/Visuals/tutorial0.png.import | 34 + Assets/Visuals/tutorial1.png | Bin 0 -> 45509 bytes Assets/Visuals/tutorial1.png.import | 34 + Assets/Visuals/tutorial2.png | Bin 0 -> 40017 bytes Assets/Visuals/tutorial2.png.import | 34 + Assets/Visuals/tutorial3.png | Bin 0 -> 47623 bytes Assets/Visuals/tutorial3.png.import | 34 + Assets/Visuals/tutorial3png | Bin 0 -> 47623 bytes Assets/Visuals/tutorial4.png | Bin 0 -> 44208 bytes Assets/Visuals/tutorial4.png.import | 34 + Assets/Visuals/tutorial5.png | Bin 0 -> 131740 bytes Assets/Visuals/tutorial5.png.import | 34 + Assets/Visuals/tutorial6.png | Bin 0 -> 38764 bytes Assets/Visuals/tutorial6.png.import | 34 + Levels/0.tscn | 834 +++++ Levels/1.tscn | 3276 ++++++++++++++++++++ Levels/2.tscn | 2358 ++++++++++++++ Levels/hud.tscn | 1669 ++++++++++ Levels/main.tscn | 1061 +++++++ Reusable Scenes/0/enemy.tscn | 193 ++ Reusable Scenes/0/tree.tscn | 455 +++ Reusable Scenes/1/bg_tree.tscn | 60 + Reusable Scenes/1/enemy_archer.tscn | 194 ++ Reusable Scenes/1/grappleables.tscn | 41 + Reusable Scenes/1/tree.tscn | 250 ++ Reusable Scenes/1/trunk.tscn | 35 + Reusable Scenes/2/enemy_bow.tscn | 100 + Reusable Scenes/2/enemy_club.tscn | 301 ++ Reusable Scenes/Masks/grapple_mask.tscn | 38 + Reusable Scenes/Masks/speed_mask.tscn | 15 + Reusable Scenes/Masks/spirit_mask.tscn | 13 + Reusable Scenes/Projectiles/projectile_arrow.tscn | 66 + .../Projectiles/projectile_arrow_enemy.tscn | 68 + .../Projectiles/projectile_blowpipe.tscn | 56 + Reusable Scenes/Weapons/weapon_bow.tscn | 124 + Reusable Scenes/Weapons/weapon_machette.tscn | 127 + Reusable Scenes/chest.tscn | 276 ++ Reusable Scenes/death_area.tscn | 18 + Reusable Scenes/player.tscn | 247 ++ Reusable Scenes/torch.tscn | 49 + Reusable Scenes/torch_spirit.tscn | 50 + Scripts/CheckpointArea.gd | 15 + Scripts/CheckpointArea.gd.uid | 1 + Scripts/Enemy AI/JungleAI.gd | 48 + Scripts/Enemy AI/JungleAI.gd.uid | 1 + Scripts/Enemy AI/ShoreAI.gd | 68 + Scripts/Enemy AI/ShoreAI.gd.uid | 1 + Scripts/Entity.gd | 56 + Scripts/Entity.gd.uid | 1 + Scripts/GameLoop.gd | 34 + Scripts/GameLoop.gd.uid | 1 + Scripts/Level Specific/0MachetteGive.gd | 8 + Scripts/Level Specific/0MachetteGive.gd.uid | 1 + Scripts/Level Specific/1FruitSrhubs.gd | 14 + Scripts/Level Specific/1FruitSrhubs.gd.uid | 1 + Scripts/Level Specific/1Mud.gd | 11 + Scripts/Level Specific/1Mud.gd.uid | 1 + Scripts/Level Specific/1SpikyShrubs.gd | 27 + Scripts/Level Specific/1SpikyShrubs.gd.uid | 1 + Scripts/Level Specific/2CameraControls.gd | 21 + Scripts/Level Specific/2CameraControls.gd.uid | 1 + Scripts/Level Specific/AnimationArea.gd | 9 + Scripts/Level Specific/AnimationArea.gd.uid | 1 + Scripts/Level Specific/DeathZone.gd | 20 + Scripts/Level Specific/DeathZone.gd.uid | 1 + Scripts/Level Specific/DisableJump.gd | 6 + Scripts/Level Specific/DisableJump.gd.uid | 1 + Scripts/Level Specific/Grappleable.gd | 10 + Scripts/Level Specific/Grappleable.gd.uid | 1 + Scripts/Mask/GrappleMask.gd | 78 + Scripts/Mask/GrappleMask.gd.uid | 1 + Scripts/Mask/SpeedMask.gd | 36 + Scripts/Mask/SpeedMask.gd.uid | 1 + Scripts/MaskChest.gd | 30 + Scripts/MaskChest.gd.uid | 1 + Scripts/Player/PlayerAction.gd | 46 + Scripts/Player/PlayerAction.gd.uid | 1 + Scripts/Player/PlayerDeath.gd | 8 + Scripts/Player/PlayerDeath.gd.uid | 1 + Scripts/Player/PlayerInventory.gd | 89 + Scripts/Player/PlayerInventory.gd.uid | 1 + Scripts/Player/PlayerMovement.gd | 146 + Scripts/Player/PlayerMovement.gd.uid | 1 + Scripts/SpawnZone.gd | 41 + Scripts/SpawnZone.gd.uid | 1 + Scripts/Spawner.gd | 57 + Scripts/Spawner.gd.uid | 1 + Scripts/UI/MaskButton.gd | 13 + Scripts/UI/MaskButton.gd.uid | 1 + Scripts/UI/UI.gd | 156 + Scripts/UI/UI.gd.uid | 1 + Scripts/UI/UIConnector.gd | 32 + Scripts/UI/UIConnector.gd.uid | 1 + Scripts/Weapons/Bow.gd | 22 + Scripts/Weapons/Bow.gd.uid | 1 + Scripts/Weapons/Melee.gd | 35 + Scripts/Weapons/Melee.gd.uid | 1 + Scripts/Weapons/Projectile.gd | 19 + Scripts/Weapons/Projectile.gd.uid | 1 + export_presets.cfg | 406 +++ icon.svg | 1 + icon.svg.import | 37 + project.godot | 85 + 168 files changed, 15989 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Assets/Resources/EBGaramond-VariableFont_wght.ttf create mode 100644 Assets/Resources/EBGaramond-VariableFont_wght.ttf.import create mode 100644 Assets/Resources/NotoEmoji-VariableFont_wght.ttf create mode 100644 Assets/Resources/NotoEmoji-VariableFont_wght.ttf.import create mode 100644 Assets/Resources/Roboto-Italic.ttf create mode 100644 Assets/Resources/Roboto-Italic.ttf.import create mode 100644 Assets/Resources/hotbar_deselected.tres create mode 100644 Assets/Resources/hotbar_selected.tres create mode 100644 Assets/Resources/please help machette.res create mode 100644 Assets/Resources/please help mask.res create mode 100644 Assets/Resources/theme.tres create mode 100644 Assets/Resources/toast_machette.tres create mode 100644 Assets/Resources/toast_mask.tres create mode 100644 Assets/Resources/what the actual fuck bro machette.res create mode 100644 Assets/Resources/what thefuck bro mask.res create mode 100644 Assets/Visuals/bag.svg create mode 100644 Assets/Visuals/bag.svg.import create mode 100644 Assets/Visuals/bow.png create mode 100644 Assets/Visuals/bow.png.import create mode 100644 Assets/Visuals/chest_open.svg create mode 100644 Assets/Visuals/chest_open.svg.import create mode 100644 Assets/Visuals/chest_top.svg create mode 100644 Assets/Visuals/chest_top.svg.import create mode 100644 Assets/Visuals/club.svg create mode 100644 Assets/Visuals/club.svg.import create mode 100644 Assets/Visuals/esc.png create mode 100644 Assets/Visuals/esc.png.import create mode 100644 Assets/Visuals/hexagon.png create mode 100644 Assets/Visuals/hexagon.png.import create mode 100644 Assets/Visuals/isostri.png create mode 100644 Assets/Visuals/isostri.png.import create mode 100644 Assets/Visuals/machette.svg create mode 100644 Assets/Visuals/machette.svg.import create mode 100644 Assets/Visuals/mask.png create mode 100644 Assets/Visuals/mask.png.import create mode 100644 Assets/Visuals/mask0.svg create mode 100644 Assets/Visuals/mask0.svg.import create mode 100644 Assets/Visuals/mask1.svg create mode 100644 Assets/Visuals/mask1.svg.import create mode 100644 Assets/Visuals/mask2.svg create mode 100644 Assets/Visuals/mask2.svg.import create mode 100644 Assets/Visuals/player.png create mode 100644 Assets/Visuals/player.png.import create mode 100644 Assets/Visuals/player.svg create mode 100644 Assets/Visuals/player.svg.import create mode 100644 Assets/Visuals/player_empty.svg create mode 100644 Assets/Visuals/player_empty.svg.import create mode 100644 Assets/Visuals/player_empty2.svg create mode 100644 Assets/Visuals/player_empty2.svg.import create mode 100644 Assets/Visuals/righttri.png create mode 100644 Assets/Visuals/righttri.png.import create mode 100644 Assets/Visuals/shiny.svg create mode 100644 Assets/Visuals/shiny.svg.import create mode 100644 Assets/Visuals/sign_cliff.svg create mode 100644 Assets/Visuals/sign_cliff.svg.import create mode 100644 Assets/Visuals/sign_dash.svg create mode 100644 Assets/Visuals/sign_dash.svg.import create mode 100644 Assets/Visuals/sign_summit.png create mode 100644 Assets/Visuals/sign_summit.png.import create mode 100644 Assets/Visuals/space.png create mode 100644 Assets/Visuals/space.png.import create mode 100644 Assets/Visuals/tutorial0.png create mode 100644 Assets/Visuals/tutorial0.png.import create mode 100644 Assets/Visuals/tutorial1.png create mode 100644 Assets/Visuals/tutorial1.png.import create mode 100644 Assets/Visuals/tutorial2.png create mode 100644 Assets/Visuals/tutorial2.png.import create mode 100644 Assets/Visuals/tutorial3.png create mode 100644 Assets/Visuals/tutorial3.png.import create mode 100644 Assets/Visuals/tutorial3png create mode 100644 Assets/Visuals/tutorial4.png create mode 100644 Assets/Visuals/tutorial4.png.import create mode 100644 Assets/Visuals/tutorial5.png create mode 100644 Assets/Visuals/tutorial5.png.import create mode 100644 Assets/Visuals/tutorial6.png create mode 100644 Assets/Visuals/tutorial6.png.import create mode 100644 Levels/0.tscn create mode 100644 Levels/1.tscn create mode 100644 Levels/2.tscn create mode 100644 Levels/hud.tscn create mode 100644 Levels/main.tscn create mode 100644 Reusable Scenes/0/enemy.tscn create mode 100644 Reusable Scenes/0/tree.tscn create mode 100644 Reusable Scenes/1/bg_tree.tscn create mode 100644 Reusable Scenes/1/enemy_archer.tscn create mode 100644 Reusable Scenes/1/grappleables.tscn create mode 100644 Reusable Scenes/1/tree.tscn create mode 100644 Reusable Scenes/1/trunk.tscn create mode 100644 Reusable Scenes/2/enemy_bow.tscn create mode 100644 Reusable Scenes/2/enemy_club.tscn create mode 100644 Reusable Scenes/Masks/grapple_mask.tscn create mode 100644 Reusable Scenes/Masks/speed_mask.tscn create mode 100644 Reusable Scenes/Masks/spirit_mask.tscn create mode 100644 Reusable Scenes/Projectiles/projectile_arrow.tscn create mode 100644 Reusable Scenes/Projectiles/projectile_arrow_enemy.tscn create mode 100644 Reusable Scenes/Projectiles/projectile_blowpipe.tscn create mode 100644 Reusable Scenes/Weapons/weapon_bow.tscn create mode 100644 Reusable Scenes/Weapons/weapon_machette.tscn create mode 100644 Reusable Scenes/chest.tscn create mode 100644 Reusable Scenes/death_area.tscn create mode 100644 Reusable Scenes/player.tscn create mode 100644 Reusable Scenes/torch.tscn create mode 100644 Reusable Scenes/torch_spirit.tscn create mode 100644 Scripts/CheckpointArea.gd create mode 100644 Scripts/CheckpointArea.gd.uid create mode 100644 Scripts/Enemy AI/JungleAI.gd create mode 100644 Scripts/Enemy AI/JungleAI.gd.uid create mode 100644 Scripts/Enemy AI/ShoreAI.gd create mode 100644 Scripts/Enemy AI/ShoreAI.gd.uid create mode 100644 Scripts/Entity.gd create mode 100644 Scripts/Entity.gd.uid create mode 100644 Scripts/GameLoop.gd create mode 100644 Scripts/GameLoop.gd.uid create mode 100644 Scripts/Level Specific/0MachetteGive.gd create mode 100644 Scripts/Level Specific/0MachetteGive.gd.uid create mode 100644 Scripts/Level Specific/1FruitSrhubs.gd create mode 100644 Scripts/Level Specific/1FruitSrhubs.gd.uid create mode 100644 Scripts/Level Specific/1Mud.gd create mode 100644 Scripts/Level Specific/1Mud.gd.uid create mode 100644 Scripts/Level Specific/1SpikyShrubs.gd create mode 100644 Scripts/Level Specific/1SpikyShrubs.gd.uid create mode 100644 Scripts/Level Specific/2CameraControls.gd create mode 100644 Scripts/Level Specific/2CameraControls.gd.uid create mode 100644 Scripts/Level Specific/AnimationArea.gd create mode 100644 Scripts/Level Specific/AnimationArea.gd.uid create mode 100644 Scripts/Level Specific/DeathZone.gd create mode 100644 Scripts/Level Specific/DeathZone.gd.uid create mode 100644 Scripts/Level Specific/DisableJump.gd create mode 100644 Scripts/Level Specific/DisableJump.gd.uid create mode 100644 Scripts/Level Specific/Grappleable.gd create mode 100644 Scripts/Level Specific/Grappleable.gd.uid create mode 100644 Scripts/Mask/GrappleMask.gd create mode 100644 Scripts/Mask/GrappleMask.gd.uid create mode 100644 Scripts/Mask/SpeedMask.gd create mode 100644 Scripts/Mask/SpeedMask.gd.uid create mode 100644 Scripts/MaskChest.gd create mode 100644 Scripts/MaskChest.gd.uid create mode 100644 Scripts/Player/PlayerAction.gd create mode 100644 Scripts/Player/PlayerAction.gd.uid create mode 100644 Scripts/Player/PlayerDeath.gd create mode 100644 Scripts/Player/PlayerDeath.gd.uid create mode 100644 Scripts/Player/PlayerInventory.gd create mode 100644 Scripts/Player/PlayerInventory.gd.uid create mode 100644 Scripts/Player/PlayerMovement.gd create mode 100644 Scripts/Player/PlayerMovement.gd.uid create mode 100644 Scripts/SpawnZone.gd create mode 100644 Scripts/SpawnZone.gd.uid create mode 100644 Scripts/Spawner.gd create mode 100644 Scripts/Spawner.gd.uid create mode 100644 Scripts/UI/MaskButton.gd create mode 100644 Scripts/UI/MaskButton.gd.uid create mode 100644 Scripts/UI/UI.gd create mode 100644 Scripts/UI/UI.gd.uid create mode 100644 Scripts/UI/UIConnector.gd create mode 100644 Scripts/UI/UIConnector.gd.uid create mode 100644 Scripts/Weapons/Bow.gd create mode 100644 Scripts/Weapons/Bow.gd.uid create mode 100644 Scripts/Weapons/Melee.gd create mode 100644 Scripts/Weapons/Melee.gd.uid create mode 100644 Scripts/Weapons/Projectile.gd create mode 100644 Scripts/Weapons/Projectile.gd.uid create mode 100644 export_presets.cfg create mode 100644 icon.svg create mode 100644 icon.svg.import create mode 100644 project.godot diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /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 new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/Assets/Resources/EBGaramond-VariableFont_wght.ttf b/Assets/Resources/EBGaramond-VariableFont_wght.ttf new file mode 100644 index 0000000..baf64b2 Binary files /dev/null and b/Assets/Resources/EBGaramond-VariableFont_wght.ttf differ diff --git a/Assets/Resources/EBGaramond-VariableFont_wght.ttf.import b/Assets/Resources/EBGaramond-VariableFont_wght.ttf.import new file mode 100644 index 0000000..cd8d15c --- /dev/null +++ b/Assets/Resources/EBGaramond-VariableFont_wght.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dcc2r3c8ls7d0" +path="res://.godot/imported/EBGaramond-VariableFont_wght.ttf-e6c2b9d695c8123d40359af0b8e83e68.fontdata" + +[deps] + +source_file="res://Assets/Resources/EBGaramond-VariableFont_wght.ttf" +dest_files=["res://.godot/imported/EBGaramond-VariableFont_wght.ttf-e6c2b9d695c8123d40359af0b8e83e68.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/Assets/Resources/NotoEmoji-VariableFont_wght.ttf b/Assets/Resources/NotoEmoji-VariableFont_wght.ttf new file mode 100644 index 0000000..1c20a23 Binary files /dev/null and b/Assets/Resources/NotoEmoji-VariableFont_wght.ttf differ diff --git a/Assets/Resources/NotoEmoji-VariableFont_wght.ttf.import b/Assets/Resources/NotoEmoji-VariableFont_wght.ttf.import new file mode 100644 index 0000000..ed8b218 --- /dev/null +++ b/Assets/Resources/NotoEmoji-VariableFont_wght.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://b5wytebhs45ck" +path="res://.godot/imported/NotoEmoji-VariableFont_wght.ttf-07d914c63c78bfa35ae72923dfa12b68.fontdata" + +[deps] + +source_file="res://Assets/Resources/NotoEmoji-VariableFont_wght.ttf" +dest_files=["res://.godot/imported/NotoEmoji-VariableFont_wght.ttf-07d914c63c78bfa35ae72923dfa12b68.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/Assets/Resources/Roboto-Italic.ttf b/Assets/Resources/Roboto-Italic.ttf new file mode 100644 index 0000000..65498ee Binary files /dev/null and b/Assets/Resources/Roboto-Italic.ttf differ diff --git a/Assets/Resources/Roboto-Italic.ttf.import b/Assets/Resources/Roboto-Italic.ttf.import new file mode 100644 index 0000000..906c1aa --- /dev/null +++ b/Assets/Resources/Roboto-Italic.ttf.import @@ -0,0 +1,40 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cxc8sgnrd70s0" +path="res://.godot/imported/Roboto-Italic.ttf-1a29f90e34f1cbc8552237f15a118d93.fontdata" + +[deps] + +source_file="res://Assets/Resources/Roboto-Italic.ttf" +dest_files=["res://.godot/imported/Roboto-Italic.ttf-1a29f90e34f1cbc8552237f15a118d93.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[{ +"chars": [], +"glyphs": [], +"name": "New Configuration", +"size": Vector2i(16, 0) +}] +language_support={} +script_support={} +opentype_features={} diff --git a/Assets/Resources/hotbar_deselected.tres b/Assets/Resources/hotbar_deselected.tres new file mode 100644 index 0000000..f301b78 --- /dev/null +++ b/Assets/Resources/hotbar_deselected.tres @@ -0,0 +1,16 @@ +[gd_resource type="StyleBoxTexture" load_steps=3 format=3 uid="uid://dprnngvddcy3u"] + +[sub_resource type="Gradient" id="Gradient_6xlew"] +colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_2ecmf"] +gradient = SubResource("Gradient_6xlew") +fill_from = Vector2(0, 1) +fill_to = Vector2(0, 0) + +[resource] +content_margin_left = 10.0 +content_margin_top = 10.0 +content_margin_right = 10.0 +content_margin_bottom = 10.0 +texture = SubResource("GradientTexture2D_2ecmf") diff --git a/Assets/Resources/hotbar_selected.tres b/Assets/Resources/hotbar_selected.tres new file mode 100644 index 0000000..808af57 --- /dev/null +++ b/Assets/Resources/hotbar_selected.tres @@ -0,0 +1,17 @@ +[gd_resource type="StyleBoxTexture" load_steps=3 format=3 uid="uid://ck2ii7b04mnpr"] + +[sub_resource type="Gradient" id="Gradient_3cw27"] +offsets = PackedFloat32Array(0, 0.07, 0.07, 1) +colors = PackedColorArray(0.66, 0.48675, 0.363, 1, 0.658824, 0.486275, 0.360784, 1, 0, 0, 0, 1, 0, 0, 0, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_6xlew"] +gradient = SubResource("Gradient_3cw27") +fill_from = Vector2(0, 1) +fill_to = Vector2(0, 0) + +[resource] +content_margin_left = 10.0 +content_margin_top = 10.0 +content_margin_right = 10.0 +content_margin_bottom = 10.0 +texture = SubResource("GradientTexture2D_6xlew") diff --git a/Assets/Resources/please help machette.res b/Assets/Resources/please help machette.res new file mode 100644 index 0000000..2809457 Binary files /dev/null and b/Assets/Resources/please help machette.res differ diff --git a/Assets/Resources/please help mask.res b/Assets/Resources/please help mask.res new file mode 100644 index 0000000..0297d42 Binary files /dev/null and b/Assets/Resources/please help mask.res differ diff --git a/Assets/Resources/theme.tres b/Assets/Resources/theme.tres new file mode 100644 index 0000000..2b784b7 --- /dev/null +++ b/Assets/Resources/theme.tres @@ -0,0 +1,98 @@ +[gd_resource type="Theme" load_steps=14 format=3 uid="uid://c1fnb2x2lyhi7"] + +[ext_resource type="StyleBox" uid="uid://ck2ii7b04mnpr" path="res://Assets/Resources/hotbar_selected.tres" id="1_ecq7o"] +[ext_resource type="StyleBox" uid="uid://dprnngvddcy3u" path="res://Assets/Resources/hotbar_deselected.tres" id="1_lv85i"] +[ext_resource type="FontFile" uid="uid://cxc8sgnrd70s0" path="res://Assets/Resources/Roboto-Italic.ttf" id="1_wkony"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_td33u"] +content_margin_left = 16.0 +content_margin_top = 8.0 +content_margin_right = 16.0 +content_margin_bottom = 8.0 +bg_color = Color(1, 1, 1, 1) +corner_radius_top_left = 100 +corner_radius_top_right = 100 +corner_radius_bottom_right = 100 +corner_radius_bottom_left = 100 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_y8ys4"] +content_margin_left = 32.0 +content_margin_top = 8.0 +content_margin_right = 32.0 +content_margin_bottom = 8.0 +bg_color = Color(0, 0, 0, 0.376471) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 16 +corner_radius_top_right = 16 +corner_radius_bottom_right = 16 +corner_radius_bottom_left = 16 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_f6a0p"] +content_margin_left = 32.0 +content_margin_top = 8.0 +content_margin_right = 32.0 +content_margin_bottom = 8.0 +bg_color = Color(0, 0, 0, 0.580392) +corner_radius_top_left = 16 +corner_radius_top_right = 16 +corner_radius_bottom_right = 16 +corner_radius_bottom_left = 16 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cul84"] +content_margin_left = 32.0 +content_margin_top = 8.0 +content_margin_right = 32.0 +content_margin_bottom = 8.0 +bg_color = Color(0, 0, 0, 0.376471) +corner_radius_top_left = 16 +corner_radius_top_right = 16 +corner_radius_bottom_right = 16 +corner_radius_bottom_left = 16 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rst61"] +content_margin_left = 32.0 +content_margin_top = 8.0 +content_margin_right = 32.0 +content_margin_bottom = 8.0 +bg_color = Color(0.15, 0.15, 0.15, 0.376471) +corner_radius_top_left = 16 +corner_radius_top_right = 16 +corner_radius_bottom_right = 16 +corner_radius_bottom_left = 16 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lv85i"] +bg_color = Color(0, 0, 0, 0.498039) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6581p"] +bg_color = Color(1, 1, 1, 0.0745098) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wkony"] +bg_color = Color(1, 1, 1, 0.172549) + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wkony"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cul84"] + +[resource] +Bubble/base_type = &"PanelContainer" +Bubble/styles/panel = SubResource("StyleBoxFlat_td33u") +Button/fonts/font = ExtResource("1_wkony") +Button/styles/focus = SubResource("StyleBoxFlat_y8ys4") +Button/styles/hover = SubResource("StyleBoxFlat_f6a0p") +Button/styles/normal = SubResource("StyleBoxFlat_cul84") +Button/styles/pressed = SubResource("StyleBoxFlat_rst61") +Label/font_sizes/font_size = 16 +Label/fonts/font = ExtResource("1_wkony") +Panel/styles/panel = SubResource("StyleBoxFlat_lv85i") +SlotDeselected/base_type = &"PanelContainer" +SlotDeselected/styles/panel = ExtResource("1_lv85i") +SlotFull/base_type = &"Button" +SlotFull/styles/focus = SubResource("StyleBoxFlat_6581p") +SlotFull/styles/hover = SubResource("StyleBoxFlat_wkony") +SlotFull/styles/normal = SubResource("StyleBoxEmpty_wkony") +SlotFull/styles/pressed = SubResource("StyleBoxEmpty_cul84") +SlotSelected/base_type = &"PanelContainer" +SlotSelected/styles/panel = ExtResource("1_ecq7o") diff --git a/Assets/Resources/toast_machette.tres b/Assets/Resources/toast_machette.tres new file mode 100644 index 0000000..1f0180c --- /dev/null +++ b/Assets/Resources/toast_machette.tres @@ -0,0 +1,10 @@ +[gd_resource type="AnimationLibrary" load_steps=3 format=3 uid="uid://br77u25tw6ebc"] + +[ext_resource type="Animation" uid="uid://yiytvp0ng7ys" path="res://Assets/Resources/please help machette.res" id="1_ew2p3"] +[ext_resource type="Animation" uid="uid://b1m7h7ymd2yht" path="res://Assets/Resources/what the actual fuck bro machette.res" id="2_25t8g"] + +[resource] +_data = { +&"RESET": ExtResource("1_ew2p3"), +&"toast": ExtResource("2_25t8g") +} diff --git a/Assets/Resources/toast_mask.tres b/Assets/Resources/toast_mask.tres new file mode 100644 index 0000000..20bc21c --- /dev/null +++ b/Assets/Resources/toast_mask.tres @@ -0,0 +1,10 @@ +[gd_resource type="AnimationLibrary" load_steps=3 format=3 uid="uid://c16pucu4020rf"] + +[ext_resource type="Animation" uid="uid://816c6ui6kjjg" path="res://Assets/Resources/please help mask.res" id="1_a8s8w"] +[ext_resource type="Animation" uid="uid://d2xmeihfyvntg" path="res://Assets/Resources/what thefuck bro mask.res" id="2_u4pna"] + +[resource] +_data = { +&"RESET": ExtResource("1_a8s8w"), +&"toast": ExtResource("2_u4pna") +} diff --git a/Assets/Resources/what the actual fuck bro machette.res b/Assets/Resources/what the actual fuck bro machette.res new file mode 100644 index 0000000..9c7f3b5 Binary files /dev/null and b/Assets/Resources/what the actual fuck bro machette.res differ diff --git a/Assets/Resources/what thefuck bro mask.res b/Assets/Resources/what thefuck bro mask.res new file mode 100644 index 0000000..4138d08 Binary files /dev/null and b/Assets/Resources/what thefuck bro mask.res differ diff --git a/Assets/Visuals/bag.svg b/Assets/Visuals/bag.svg new file mode 100644 index 0000000..338b021 --- /dev/null +++ b/Assets/Visuals/bag.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + diff --git a/Assets/Visuals/bag.svg.import b/Assets/Visuals/bag.svg.import new file mode 100644 index 0000000..6a640bb --- /dev/null +++ b/Assets/Visuals/bag.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7f4hfw2ms508" +path="res://.godot/imported/bag.svg-b349161e21ef9e60aff55029eb4e5f81.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/bag.svg" +dest_files=["res://.godot/imported/bag.svg-b349161e21ef9e60aff55029eb4e5f81.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/bow.png b/Assets/Visuals/bow.png new file mode 100644 index 0000000..f69e5b4 Binary files /dev/null and b/Assets/Visuals/bow.png differ diff --git a/Assets/Visuals/bow.png.import b/Assets/Visuals/bow.png.import new file mode 100644 index 0000000..3d988e5 --- /dev/null +++ b/Assets/Visuals/bow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dryh1vqkaxo8g" +path="res://.godot/imported/bow.png-1fc70c276ca5273f700ad9fcf6837f9b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/bow.png" +dest_files=["res://.godot/imported/bow.png-1fc70c276ca5273f700ad9fcf6837f9b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/chest_open.svg b/Assets/Visuals/chest_open.svg new file mode 100644 index 0000000..b417389 --- /dev/null +++ b/Assets/Visuals/chest_open.svg @@ -0,0 +1,95 @@ + + + + diff --git a/Assets/Visuals/chest_open.svg.import b/Assets/Visuals/chest_open.svg.import new file mode 100644 index 0000000..43708b8 --- /dev/null +++ b/Assets/Visuals/chest_open.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0bdflx18poa5" +path="res://.godot/imported/chest_open.svg-8a0815321d4ceb3307a53efd9bd14281.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/chest_open.svg" +dest_files=["res://.godot/imported/chest_open.svg-8a0815321d4ceb3307a53efd9bd14281.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/chest_top.svg b/Assets/Visuals/chest_top.svg new file mode 100644 index 0000000..8b4ba75 --- /dev/null +++ b/Assets/Visuals/chest_top.svg @@ -0,0 +1,66 @@ + + + + diff --git a/Assets/Visuals/chest_top.svg.import b/Assets/Visuals/chest_top.svg.import new file mode 100644 index 0000000..637983e --- /dev/null +++ b/Assets/Visuals/chest_top.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://404lglxh4v01" +path="res://.godot/imported/chest_top.svg-b30955c38c85d0132cc7797a7cc54e8d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/chest_top.svg" +dest_files=["res://.godot/imported/chest_top.svg-b30955c38c85d0132cc7797a7cc54e8d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/club.svg b/Assets/Visuals/club.svg new file mode 100644 index 0000000..4ab85a4 --- /dev/null +++ b/Assets/Visuals/club.svg @@ -0,0 +1,41 @@ + + + + + + + + + + diff --git a/Assets/Visuals/club.svg.import b/Assets/Visuals/club.svg.import new file mode 100644 index 0000000..c04ff9a --- /dev/null +++ b/Assets/Visuals/club.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dch6veuf65i6h" +path="res://.godot/imported/club.svg-6423a7367b44973e797214025ac74b63.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/club.svg" +dest_files=["res://.godot/imported/club.svg-6423a7367b44973e797214025ac74b63.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/esc.png b/Assets/Visuals/esc.png new file mode 100644 index 0000000..299ed2b Binary files /dev/null and b/Assets/Visuals/esc.png differ diff --git a/Assets/Visuals/esc.png.import b/Assets/Visuals/esc.png.import new file mode 100644 index 0000000..734fef9 --- /dev/null +++ b/Assets/Visuals/esc.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djo0cry6f2o8o" +path="res://.godot/imported/esc.png-f73e257de30104a8c5eab85026d7b2fe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/esc.png" +dest_files=["res://.godot/imported/esc.png-f73e257de30104a8c5eab85026d7b2fe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/hexagon.png b/Assets/Visuals/hexagon.png new file mode 100644 index 0000000..0e270e3 Binary files /dev/null and b/Assets/Visuals/hexagon.png differ diff --git a/Assets/Visuals/hexagon.png.import b/Assets/Visuals/hexagon.png.import new file mode 100644 index 0000000..2857b82 --- /dev/null +++ b/Assets/Visuals/hexagon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddxbrkfa7i5n" +path="res://.godot/imported/hexagon.png-3e34158be97e176b822f7f6f7bee5867.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/hexagon.png" +dest_files=["res://.godot/imported/hexagon.png-3e34158be97e176b822f7f6f7bee5867.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/isostri.png b/Assets/Visuals/isostri.png new file mode 100644 index 0000000..78e042d Binary files /dev/null and b/Assets/Visuals/isostri.png differ diff --git a/Assets/Visuals/isostri.png.import b/Assets/Visuals/isostri.png.import new file mode 100644 index 0000000..f16b71c --- /dev/null +++ b/Assets/Visuals/isostri.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3plfj75jmmyu" +path="res://.godot/imported/isostri.png-bd4a1396a02926a8d4baf1c6cf60e286.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/isostri.png" +dest_files=["res://.godot/imported/isostri.png-bd4a1396a02926a8d4baf1c6cf60e286.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/machette.svg b/Assets/Visuals/machette.svg new file mode 100644 index 0000000..539b9e3 --- /dev/null +++ b/Assets/Visuals/machette.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + diff --git a/Assets/Visuals/machette.svg.import b/Assets/Visuals/machette.svg.import new file mode 100644 index 0000000..425834d --- /dev/null +++ b/Assets/Visuals/machette.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnxhxrmheing2" +path="res://.godot/imported/machette.svg-f5a16213d4d5bef484d360bd27498b10.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/machette.svg" +dest_files=["res://.godot/imported/machette.svg-f5a16213d4d5bef484d360bd27498b10.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/mask.png b/Assets/Visuals/mask.png new file mode 100644 index 0000000..cbfb2be Binary files /dev/null and b/Assets/Visuals/mask.png differ diff --git a/Assets/Visuals/mask.png.import b/Assets/Visuals/mask.png.import new file mode 100644 index 0000000..13e69fb --- /dev/null +++ b/Assets/Visuals/mask.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvr5d7p1v0afw" +path="res://.godot/imported/mask.png-5164ac1c5c6290d375ead78e81ccb07c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/mask.png" +dest_files=["res://.godot/imported/mask.png-5164ac1c5c6290d375ead78e81ccb07c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/mask0.svg b/Assets/Visuals/mask0.svg new file mode 100644 index 0000000..5f2d890 --- /dev/null +++ b/Assets/Visuals/mask0.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Assets/Visuals/mask0.svg.import b/Assets/Visuals/mask0.svg.import new file mode 100644 index 0000000..6ab787c --- /dev/null +++ b/Assets/Visuals/mask0.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c604bwm7ckesc" +path="res://.godot/imported/mask0.svg-2d13dc47fc2c6fe4234e2d26842f73e5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/mask0.svg" +dest_files=["res://.godot/imported/mask0.svg-2d13dc47fc2c6fe4234e2d26842f73e5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/mask1.svg b/Assets/Visuals/mask1.svg new file mode 100644 index 0000000..e505ca8 --- /dev/null +++ b/Assets/Visuals/mask1.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Assets/Visuals/mask1.svg.import b/Assets/Visuals/mask1.svg.import new file mode 100644 index 0000000..f8edc50 --- /dev/null +++ b/Assets/Visuals/mask1.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csuuxeq47s64g" +path="res://.godot/imported/mask1.svg-361f007c5f95217cd241f2801714c698.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/mask1.svg" +dest_files=["res://.godot/imported/mask1.svg-361f007c5f95217cd241f2801714c698.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/mask2.svg b/Assets/Visuals/mask2.svg new file mode 100644 index 0000000..335e2e2 --- /dev/null +++ b/Assets/Visuals/mask2.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Assets/Visuals/mask2.svg.import b/Assets/Visuals/mask2.svg.import new file mode 100644 index 0000000..fec2e36 --- /dev/null +++ b/Assets/Visuals/mask2.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dc1dirxeqtb14" +path="res://.godot/imported/mask2.svg-544225c8b3444d5592c271ddd3035566.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/mask2.svg" +dest_files=["res://.godot/imported/mask2.svg-544225c8b3444d5592c271ddd3035566.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/player.png b/Assets/Visuals/player.png new file mode 100644 index 0000000..79f47b6 Binary files /dev/null and b/Assets/Visuals/player.png differ diff --git a/Assets/Visuals/player.png.import b/Assets/Visuals/player.png.import new file mode 100644 index 0000000..ef1f4b7 --- /dev/null +++ b/Assets/Visuals/player.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://caqfio820gf54" +path="res://.godot/imported/player.png-90a2aa6bc3fc8742983a2b3caad8a17a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/player.png" +dest_files=["res://.godot/imported/player.png-90a2aa6bc3fc8742983a2b3caad8a17a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/player.svg b/Assets/Visuals/player.svg new file mode 100644 index 0000000..828f41c --- /dev/null +++ b/Assets/Visuals/player.svg @@ -0,0 +1,47 @@ + + + + diff --git a/Assets/Visuals/player.svg.import b/Assets/Visuals/player.svg.import new file mode 100644 index 0000000..45c25f5 --- /dev/null +++ b/Assets/Visuals/player.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmxkvsvtsocfj" +path="res://.godot/imported/player.svg-d885304c395dd8bd652aecc301d443a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/player.svg" +dest_files=["res://.godot/imported/player.svg-d885304c395dd8bd652aecc301d443a5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/player_empty.svg b/Assets/Visuals/player_empty.svg new file mode 100644 index 0000000..69839b6 --- /dev/null +++ b/Assets/Visuals/player_empty.svg @@ -0,0 +1,48 @@ + + + + diff --git a/Assets/Visuals/player_empty.svg.import b/Assets/Visuals/player_empty.svg.import new file mode 100644 index 0000000..4d17ac8 --- /dev/null +++ b/Assets/Visuals/player_empty.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfe4dysiimo21" +path="res://.godot/imported/player_empty.svg-a602c67221eb6fc747edd6525aa6b1b4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/player_empty.svg" +dest_files=["res://.godot/imported/player_empty.svg-a602c67221eb6fc747edd6525aa6b1b4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/player_empty2.svg b/Assets/Visuals/player_empty2.svg new file mode 100644 index 0000000..0371d1d --- /dev/null +++ b/Assets/Visuals/player_empty2.svg @@ -0,0 +1,59 @@ + + + + diff --git a/Assets/Visuals/player_empty2.svg.import b/Assets/Visuals/player_empty2.svg.import new file mode 100644 index 0000000..dd82b6e --- /dev/null +++ b/Assets/Visuals/player_empty2.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bres8bstf7s7g" +path="res://.godot/imported/player_empty2.svg-0eadc94b9ca26cfc7f4a5a317675963f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/player_empty2.svg" +dest_files=["res://.godot/imported/player_empty2.svg-0eadc94b9ca26cfc7f4a5a317675963f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/righttri.png b/Assets/Visuals/righttri.png new file mode 100644 index 0000000..45b586e Binary files /dev/null and b/Assets/Visuals/righttri.png differ diff --git a/Assets/Visuals/righttri.png.import b/Assets/Visuals/righttri.png.import new file mode 100644 index 0000000..4e66535 --- /dev/null +++ b/Assets/Visuals/righttri.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://yfecq14wfrpc" +path="res://.godot/imported/righttri.png-18e7e2834d18dac964aaab79e3a3f1f2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/righttri.png" +dest_files=["res://.godot/imported/righttri.png-18e7e2834d18dac964aaab79e3a3f1f2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/shiny.svg b/Assets/Visuals/shiny.svg new file mode 100644 index 0000000..d21dabf --- /dev/null +++ b/Assets/Visuals/shiny.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + diff --git a/Assets/Visuals/shiny.svg.import b/Assets/Visuals/shiny.svg.import new file mode 100644 index 0000000..4c48bf5 --- /dev/null +++ b/Assets/Visuals/shiny.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csnls3yqqe646" +path="res://.godot/imported/shiny.svg-4efaeeccfee42043777a878240f66d4e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/shiny.svg" +dest_files=["res://.godot/imported/shiny.svg-4efaeeccfee42043777a878240f66d4e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/sign_cliff.svg b/Assets/Visuals/sign_cliff.svg new file mode 100644 index 0000000..24bfcc4 --- /dev/null +++ b/Assets/Visuals/sign_cliff.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + diff --git a/Assets/Visuals/sign_cliff.svg.import b/Assets/Visuals/sign_cliff.svg.import new file mode 100644 index 0000000..476c6e2 --- /dev/null +++ b/Assets/Visuals/sign_cliff.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b43tak6ssuwoc" +path="res://.godot/imported/sign_cliff.svg-a95ebe2965a1bf26a58d959c77bcce98.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/sign_cliff.svg" +dest_files=["res://.godot/imported/sign_cliff.svg-a95ebe2965a1bf26a58d959c77bcce98.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/sign_dash.svg b/Assets/Visuals/sign_dash.svg new file mode 100644 index 0000000..d345ae7 --- /dev/null +++ b/Assets/Visuals/sign_dash.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + diff --git a/Assets/Visuals/sign_dash.svg.import b/Assets/Visuals/sign_dash.svg.import new file mode 100644 index 0000000..799804c --- /dev/null +++ b/Assets/Visuals/sign_dash.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdqedp2jcu1pj" +path="res://.godot/imported/sign_dash.svg-1001b2cc863e5340020284843d6ccd42.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/sign_dash.svg" +dest_files=["res://.godot/imported/sign_dash.svg-1001b2cc863e5340020284843d6ccd42.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/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/Assets/Visuals/sign_summit.png b/Assets/Visuals/sign_summit.png new file mode 100644 index 0000000..7b28316 Binary files /dev/null and b/Assets/Visuals/sign_summit.png differ diff --git a/Assets/Visuals/sign_summit.png.import b/Assets/Visuals/sign_summit.png.import new file mode 100644 index 0000000..5330969 --- /dev/null +++ b/Assets/Visuals/sign_summit.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0dq2s6qkym37" +path="res://.godot/imported/sign_summit.png-b7713b1164b103f21f2cab05af7f893f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/sign_summit.png" +dest_files=["res://.godot/imported/sign_summit.png-b7713b1164b103f21f2cab05af7f893f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/space.png b/Assets/Visuals/space.png new file mode 100644 index 0000000..076575c Binary files /dev/null and b/Assets/Visuals/space.png differ diff --git a/Assets/Visuals/space.png.import b/Assets/Visuals/space.png.import new file mode 100644 index 0000000..de8cae8 --- /dev/null +++ b/Assets/Visuals/space.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0vitg2re8q1v" +path="res://.godot/imported/space.png-64147daf52163a53af94781488d50c0b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/space.png" +dest_files=["res://.godot/imported/space.png-64147daf52163a53af94781488d50c0b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/tutorial0.png b/Assets/Visuals/tutorial0.png new file mode 100644 index 0000000..b8cb090 Binary files /dev/null and b/Assets/Visuals/tutorial0.png differ diff --git a/Assets/Visuals/tutorial0.png.import b/Assets/Visuals/tutorial0.png.import new file mode 100644 index 0000000..4a5f577 --- /dev/null +++ b/Assets/Visuals/tutorial0.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cf532b4bg52p3" +path="res://.godot/imported/tutorial0.png-89fa6f16f3bff66a1ffb1c9298df4099.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/tutorial0.png" +dest_files=["res://.godot/imported/tutorial0.png-89fa6f16f3bff66a1ffb1c9298df4099.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/tutorial1.png b/Assets/Visuals/tutorial1.png new file mode 100644 index 0000000..2ff0f6c Binary files /dev/null and b/Assets/Visuals/tutorial1.png differ diff --git a/Assets/Visuals/tutorial1.png.import b/Assets/Visuals/tutorial1.png.import new file mode 100644 index 0000000..f9ce538 --- /dev/null +++ b/Assets/Visuals/tutorial1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cx4eethwl2nc1" +path="res://.godot/imported/tutorial1.png-ffef06515cd1d151777072641f5671ee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/tutorial1.png" +dest_files=["res://.godot/imported/tutorial1.png-ffef06515cd1d151777072641f5671ee.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/tutorial2.png b/Assets/Visuals/tutorial2.png new file mode 100644 index 0000000..e7f9cf1 Binary files /dev/null and b/Assets/Visuals/tutorial2.png differ diff --git a/Assets/Visuals/tutorial2.png.import b/Assets/Visuals/tutorial2.png.import new file mode 100644 index 0000000..de55b3f --- /dev/null +++ b/Assets/Visuals/tutorial2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://di55ub8i4bxwm" +path="res://.godot/imported/tutorial2.png-2827f9e3da44ac6e2c426fdc6fd05cad.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/tutorial2.png" +dest_files=["res://.godot/imported/tutorial2.png-2827f9e3da44ac6e2c426fdc6fd05cad.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/tutorial3.png b/Assets/Visuals/tutorial3.png new file mode 100644 index 0000000..c56d89f Binary files /dev/null and b/Assets/Visuals/tutorial3.png differ diff --git a/Assets/Visuals/tutorial3.png.import b/Assets/Visuals/tutorial3.png.import new file mode 100644 index 0000000..f929fda --- /dev/null +++ b/Assets/Visuals/tutorial3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bq7ilyg1fa51y" +path="res://.godot/imported/tutorial3.png-4cda9a622908131705c1913ebd2e14bd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/tutorial3.png" +dest_files=["res://.godot/imported/tutorial3.png-4cda9a622908131705c1913ebd2e14bd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/tutorial3png b/Assets/Visuals/tutorial3png new file mode 100644 index 0000000..c56d89f Binary files /dev/null and b/Assets/Visuals/tutorial3png differ diff --git a/Assets/Visuals/tutorial4.png b/Assets/Visuals/tutorial4.png new file mode 100644 index 0000000..622067a Binary files /dev/null and b/Assets/Visuals/tutorial4.png differ diff --git a/Assets/Visuals/tutorial4.png.import b/Assets/Visuals/tutorial4.png.import new file mode 100644 index 0000000..5e719d4 --- /dev/null +++ b/Assets/Visuals/tutorial4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jfweyk3oxpr5" +path="res://.godot/imported/tutorial4.png-fc7366f6f9bd48910497035e1fab22b8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/tutorial4.png" +dest_files=["res://.godot/imported/tutorial4.png-fc7366f6f9bd48910497035e1fab22b8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/tutorial5.png b/Assets/Visuals/tutorial5.png new file mode 100644 index 0000000..386cb79 Binary files /dev/null and b/Assets/Visuals/tutorial5.png differ diff --git a/Assets/Visuals/tutorial5.png.import b/Assets/Visuals/tutorial5.png.import new file mode 100644 index 0000000..a823d05 --- /dev/null +++ b/Assets/Visuals/tutorial5.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctqf51roko842" +path="res://.godot/imported/tutorial5.png-9b25f8779b47d2db281ab0cb65f5b52c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/tutorial5.png" +dest_files=["res://.godot/imported/tutorial5.png-9b25f8779b47d2db281ab0cb65f5b52c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_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/Visuals/tutorial6.png b/Assets/Visuals/tutorial6.png new file mode 100644 index 0000000..aec0ce2 Binary files /dev/null and b/Assets/Visuals/tutorial6.png differ diff --git a/Assets/Visuals/tutorial6.png.import b/Assets/Visuals/tutorial6.png.import new file mode 100644 index 0000000..54e2dd3 --- /dev/null +++ b/Assets/Visuals/tutorial6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5qnk3v8qhkwh" +path="res://.godot/imported/tutorial6.png-c69ca93d6a878871905dcc50a0170aee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Visuals/tutorial6.png" +dest_files=["res://.godot/imported/tutorial6.png-c69ca93d6a878871905dcc50a0170aee.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Levels/0.tscn b/Levels/0.tscn new file mode 100644 index 0000000..81cddf6 --- /dev/null +++ b/Levels/0.tscn @@ -0,0 +1,834 @@ +[gd_scene load_steps=51 format=3 uid="uid://d3tp8n7hgffsm"] + +[ext_resource type="PackedScene" uid="uid://ceukarr4k0tni" path="res://Reusable Scenes/0/tree.tscn" id="1_kmc8j"] +[ext_resource type="PackedScene" uid="uid://cmimydllnd6ny" path="res://Reusable Scenes/torch.tscn" id="2_tlgy3"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="3_thcr1"] +[ext_resource type="Script" uid="uid://c5vuv87l6mm6w" path="res://Scripts/SpawnZone.gd" id="4_8v1jv"] +[ext_resource type="Script" uid="uid://df037bypj74at" path="res://Scripts/Spawner.gd" id="5_opotr"] +[ext_resource type="PackedScene" uid="uid://dqw3tqg5374ui" path="res://Reusable Scenes/0/enemy.tscn" id="6_c6jx6"] +[ext_resource type="Script" uid="uid://c4st16y5gx2yh" path="res://Scripts/Level Specific/0MachetteGive.gd" id="7_1x5ay"] +[ext_resource type="Texture2D" uid="uid://cnxhxrmheing2" path="res://Assets/Visuals/machette.svg" id="8_x0k32"] +[ext_resource type="PackedScene" uid="uid://b80iwxixd6rbp" path="res://Reusable Scenes/chest.tscn" id="9_tbo63"] +[ext_resource type="PackedScene" uid="uid://cb6tymujjkw6k" path="res://Reusable Scenes/1/tree.tscn" id="10_tlgy3"] +[ext_resource type="Script" uid="uid://b5td7htthnvrn" path="res://Scripts/Level Specific/2CameraControls.gd" id="11_thcr1"] + +[sub_resource type="Gradient" id="Gradient_u05pv"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.108533, 0.088, 0.2, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_hilkn"] +gradient = SubResource("Gradient_u05pv") + +[sub_resource type="Gradient" id="Gradient_dhllp"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.09272, 0.12, 0.0828, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_tlgy3"] +gradient = SubResource("Gradient_dhllp") + +[sub_resource type="Gradient" id="Gradient_oj8hd"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.0861776, 0.178146, 0.254499, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_gnif3"] +gradient = SubResource("Gradient_oj8hd") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_gnif3"] +size = Vector2(192.5, 2270.75) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_oj8hd"] +size = Vector2(9897, 511.5) + +[sub_resource type="Gradient" id="Gradient_lwy2l"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.313868, 0.258563, 0.153528, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_nj2yk"] +gradient = SubResource("Gradient_lwy2l") + +[sub_resource type="Gradient" id="Gradient_7pswh"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.168627, 0.129412, 0.0666667, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_34bfm"] +gradient = SubResource("Gradient_7pswh") + +[sub_resource type="Gradient" id="Gradient_nj2yk"] +offsets = PackedFloat32Array(0, 0.996753) +colors = PackedColorArray(0.16902, 0.13291, 0.0702305, 1, 0.17, 0.133847, 0.0714, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_7pswh"] +gradient = SubResource("Gradient_nj2yk") +fill_from = Vector2(0, 0.194954) +fill_to = Vector2(0, 0.0229358) + +[sub_resource type="Gradient" id="Gradient_ovrsl"] +offsets = PackedFloat32Array(0, 0.996753) +colors = PackedColorArray(0.16902, 0.13291, 0.0702305, 1, 0.17, 0.133847, 0.0714, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_hbaan"] +gradient = SubResource("Gradient_ovrsl") +fill_from = Vector2(0, 0.610092) +fill_to = Vector2(0, 0.0229358) + +[sub_resource type="Gradient" id="Gradient_34bfm"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.61136, 0.61136, 0.61136, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ovrsl"] +gradient = SubResource("Gradient_34bfm") +width = 64 + +[sub_resource type="Gradient" id="Gradient_tlgy3"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.535024, 0.535023, 0.535023, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_3lhg3"] +gradient = SubResource("Gradient_tlgy3") +width = 36 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_lwy2l"] +size = Vector2(4014, 12) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_nj2yk"] +size = Vector2(32.2493, 20) + +[sub_resource type="Gradient" id="Gradient_thcr1"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.334744, 0.334744, 0.334743, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_he5fp"] +gradient = SubResource("Gradient_thcr1") +width = 36 + +[sub_resource type="Gradient" id="Gradient_8v1jv"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.611765, 0.611765, 0.611765, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_5mxy1"] +gradient = SubResource("Gradient_8v1jv") +width = 36 + +[sub_resource type="Gradient" id="Gradient_opotr"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.760297, 0.760297, 0.760297, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_u05pv"] +gradient = SubResource("Gradient_opotr") +width = 36 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_34bfm"] +size = Vector2(61, 430) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_7pswh"] +size = Vector2(48, 286) + +[sub_resource type="Gradient" id="Gradient_c6jx6"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.493545, 0.493546, 0.493546, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_wgfyn"] +gradient = SubResource("Gradient_c6jx6") +width = 36 + +[sub_resource type="Animation" id="Animation_34bfm"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DoorWall:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-6, -437)] +} + +[sub_resource type="Animation" id="Animation_7pswh"] +resource_name = "door_close" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DoorWall:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 0.666667, 0.866667), +"transitions": PackedFloat32Array(3.03143, 0.615572, 2.2974, 2.2974), +"update": 0, +"values": [Vector2(-6, -437), Vector2(-6, -205), Vector2(-6, -238.21), Vector2(-6, -205)] +} + +[sub_resource type="Animation" id="Animation_hbaan"] +resource_name = "open" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DoorWall:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.8), +"transitions": PackedFloat32Array(0.329877, 0.329877), +"update": 0, +"values": [Vector2(-6, -205), Vector2(-6, -436)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_34bfm"] +_data = { +&"RESET": SubResource("Animation_34bfm"), +&"close": SubResource("Animation_7pswh"), +&"open": SubResource("Animation_hbaan") +} + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ovrsl"] +size = Vector2(421.5, 663) + +[sub_resource type="CircleShape2D" id="CircleShape2D_u05pv"] +radius = 38.0129 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_thcr1"] +size = Vector2(1137, 501) + +[node name="SCENE 0 – Shores" type="Node2D"] + +[node name="Scenery" type="Node2D" parent="."] + +[node name="Sky" type="Sprite2D" parent="Scenery"] +light_mask = 2 +z_index = -999 +position = Vector2(4348, 1268) +scale = Vector2(50, 5564) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Sky2" type="Sprite2D" parent="Scenery"] +light_mask = 2 +z_index = -998 +position = Vector2(16000, 1265) +scale = Vector2(50, 5564) +texture = SubResource("GradientTexture1D_tlgy3") + +[node name="Sprite2D2" type="Sprite2D" parent="Scenery"] +position = Vector2(-102, 633) +scale = Vector2(6.85156, 277.625) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Invis" type="RigidBody2D" parent="Scenery"] +collision_mask = 3 +gravity_scale = 0.0 +freeze = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Scenery/Invis"] +position = Vector2(455, -668) +shape = SubResource("RectangleShape2D_gnif3") + +[node name="Sand" type="StaticBody2D" parent="Scenery"] +z_index = 999 +position = Vector2(195, 0) +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Scenery/Sand"] +position = Vector2(5291.5, 689.25) +shape = SubResource("RectangleShape2D_oj8hd") + +[node name="Sprite2D3" type="Sprite2D" parent="Scenery/Sand"] +position = Vector2(4877, 645) +scale = Vector2(35.4219, 423) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D4" type="Sprite2D" parent="Scenery/Sand"] +position = Vector2(234, 864) +rotation = -1.0472 +scale = Vector2(2.85343, 423) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Sprite2D7" type="Sprite2D" parent="Scenery/Sand"] +position = Vector2(81, 845) +rotation = -0.261799 +scale = Vector2(2.85343, 423) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Sprite2D5" type="Sprite2D" parent="Scenery/Sand"] +position = Vector2(258.214, 606.197) +rotation = -1.309 +scale = Vector2(1.5566, 76.1959) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Sprite2D8" type="Sprite2D" parent="Scenery/Sand"] +light_mask = 2 +position = Vector2(4873.99, 599) +scale = Vector2(141.594, 4.5) +texture = SubResource("GradientTexture2D_7pswh") + +[node name="Sprite2D10" type="Sprite2D" parent="Scenery/Sand"] +light_mask = 2 +position = Vector2(373, 471.49) +rotation = 1.5708 +scale = Vector2(1.18713, 1.86643) +texture = SubResource("GradientTexture2D_hbaan") + +[node name="Tree" parent="Scenery" instance=ExtResource("1_kmc8j")] +z_index = 1 +position = Vector2(1058, 442) + +[node name="Tree4" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.34969, 0.349689, 0.349689, 1) +z_index = -2 +position = Vector2(1455, 491) +scale = Vector2(0.804002, 0.804002) + +[node name="Tree5" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.34969, 0.349689, 0.349689, 1) +z_index = -2 +position = Vector2(2176, 512) +rotation = 3.14159 +scale = Vector2(0.89332, -0.89332) + +[node name="Tree6" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.34969, 0.349689, 0.349689, 1) +z_index = -2 +position = Vector2(2176, 512) +rotation = 3.14159 +scale = Vector2(0.89332, -0.89332) + +[node name="Tree7" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.34969, 0.349689, 0.349689, 1) +z_index = -2 +position = Vector2(2928, 491) +rotation = 3.14159 +scale = Vector2(1.18186, -1.18186) + +[node name="Tree8" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.34969, 0.349689, 0.349689, 1) +z_index = -2 +position = Vector2(4084, 453) +rotation = 3.14159 +scale = Vector2(0.871035, -0.871035) + +[node name="Tree2" parent="Scenery" instance=ExtResource("1_kmc8j")] +z_index = 1 +position = Vector2(2077, 453) +scale = Vector2(0.945312, 0.945312) + +[node name="Tree3" parent="Scenery" instance=ExtResource("1_kmc8j")] +z_index = 1 +position = Vector2(3343, 442) + +[node name="Torch" parent="Scenery" instance=ExtResource("2_tlgy3")] +z_index = 1 +position = Vector2(1208, 434) + +[node name="Torch2" parent="Scenery" instance=ExtResource("2_tlgy3")] +z_index = 1 +position = Vector2(2638, 437) + +[node name="Torch3" parent="Scenery" instance=ExtResource("2_tlgy3")] +z_index = 1 +position = Vector2(4425, 401) +scale = Vector2(0.708619, 0.708619) + +[node name="Sprite2D" type="Sprite2D" parent="Scenery"] +modulate = Color(0.685146, 0.685146, 0.685146, 1) +z_index = 2 +position = Vector2(4428, 408) +scale = Vector2(0.93339, 64.2806) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D3" type="Sprite2D" parent="Scenery"] +modulate = Color(0.685146, 0.685146, 0.685146, 1) +position = Vector2(4493, 441.095) +scale = Vector2(0.852851, 56.1905) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D4" type="Sprite2D" parent="Scenery"] +modulate = Color(0.556953, 0.556953, 0.556953, 1) +z_index = -1 +position = Vector2(4559, 438) +scale = Vector2(0.954005, 62.8551) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D5" type="Sprite2D" parent="Scenery"] +modulate = Color(0.685146, 0.685146, 0.685146, 1) +position = Vector2(4627, 444.095) +scale = Vector2(0.903435, 59.5233) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D6" type="Sprite2D" parent="Scenery"] +modulate = Color(0.556953, 0.556953, 0.556953, 1) +z_index = -1 +position = Vector2(4696, 441) +scale = Vector2(0.995756, 65.6059) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Torch7" parent="Scenery" instance=ExtResource("2_tlgy3")] +z_index = 1 +position = Vector2(8399.87, 401) +scale = Vector2(0.708619, 0.708619) + +[node name="Sprite2D7" type="Sprite2D" parent="Scenery"] +modulate = Color(0.685146, 0.685146, 0.685146, 1) +z_index = 2 +position = Vector2(8402.87, 408) +scale = Vector2(0.93339, 64.2806) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D8" type="Sprite2D" parent="Scenery"] +modulate = Color(0.685146, 0.685146, 0.685146, 1) +position = Vector2(8126.87, 441.095) +scale = Vector2(0.852851, 56.1905) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D9" type="Sprite2D" parent="Scenery"] +modulate = Color(0.556953, 0.556953, 0.556953, 1) +z_index = -1 +position = Vector2(8192.87, 438) +scale = Vector2(0.954005, 62.8551) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D10" type="Sprite2D" parent="Scenery"] +modulate = Color(0.685146, 0.685146, 0.685146, 1) +position = Vector2(8260.87, 444.095) +scale = Vector2(0.903435, 59.5233) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D11" type="Sprite2D" parent="Scenery"] +modulate = Color(0.556953, 0.556953, 0.556953, 1) +z_index = -1 +position = Vector2(8329.87, 441) +scale = Vector2(0.995756, 65.6059) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Wall" type="Node2D" parent="Scenery"] +z_index = -2 +position = Vector2(4696, 441) +scale = Vector2(0.995756, 65.6059) + +[node name="Sprite2D7" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.444844, 0.444843, 0.444843, 1) +z_index = -8 +position = Vector2(1227.28, -5.56503) +scale = Vector2(3.57555, 10.7582) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D8" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.444844, 0.444843, 0.444843, 1) +z_index = -8 +position = Vector2(1451.16, -2.1492) +scale = Vector2(3.57555, 10.7582) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="BrickDecorSprite6" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.687215, 0.687215, 0.687215, 1) +position = Vector2(1149.88, -10.4564) +scale = Vector2(2.0267, 0.419997) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite7" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.687215, 0.687215, 0.687215, 1) +position = Vector2(1322.61, -9.55707) +scale = Vector2(2.0267, 0.419997) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite8" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.687215, 0.687215, 0.687215, 1) +position = Vector2(1325.63, -7.66699) +scale = Vector2(2.0267, 0.419997) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite9" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.687215, 0.687215, 0.687215, 1) +position = Vector2(1212.14, -5.73119) +scale = Vector2(2.0267, 0.419997) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite10" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.687215, 0.687215, 0.687215, 1) +position = Vector2(1563.64, -4.43558) +scale = Vector2(2.0267, 0.419997) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite11" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.687215, 0.687215, 0.687215, 1) +position = Vector2(1538.53, -2.07298) +scale = Vector2(2.0267, 0.419997) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite12" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.687215, 0.687215, 0.687215, 1) +z_index = -7 +position = Vector2(1146.87, -1.35659) +scale = Vector2(2.0267, 0.419997) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite13" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.687215, 0.687215, 0.687215, 1) +position = Vector2(1352.74, -0.563974) +scale = Vector2(2.0267, 0.419997) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite14" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.687215, 0.687215, 0.687215, 1) +position = Vector2(1367.81, -4.23742) +scale = Vector2(2.0267, 0.419997) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite15" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.949389, 0.949389, 0.949389, 1) +position = Vector2(1206.12, -9.22173) +scale = Vector2(1.65041, 0.500627) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite16" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.949389, 0.949389, 0.949389, 1) +position = Vector2(1381.87, -6.70671) +scale = Vector2(1.65041, 0.500627) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite17" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.949389, 0.949389, 0.949389, 1) +position = Vector2(1464.21, -4.8014) +scale = Vector2(1.65041, 0.500627) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite18" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.949389, 0.949389, 0.949389, 1) +position = Vector2(1277.42, -2.60647) +scale = Vector2(1.65041, 0.500627) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="BrickDecorSprite19" type="Sprite2D" parent="Scenery/Wall"] +modulate = Color(0.949389, 0.949389, 0.949389, 1) +position = Vector2(1563.64, -6.98108) +scale = Vector2(1.65041, 0.500627) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="RigidBody2D3" type="RigidBody2D" parent="Scenery"] +z_index = 2 +position = Vector2(4696, 441) +collision_mask = 3 +freeze = true + +[node name="Sprite2D7" type="Sprite2D" parent="Scenery/RigidBody2D3"] +modulate = Color(0.685146, 0.685146, 0.685146, 1) +position = Vector2(1725.78, 16) +scale = Vector2(62.8505, 65.6059) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Scenery/RigidBody2D3"] +position = Vector2(1730, -11) +shape = SubResource("RectangleShape2D_lwy2l") + +[node name="RigidBody2D4" type="RigidBody2D" parent="Scenery"] +position = Vector2(4416, 438) +rotation = -0.563571 +freeze = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Scenery/RigidBody2D4"] +position = Vector2(-6.12427, 0) +shape = SubResource("RectangleShape2D_nj2yk") + +[node name="BGMount" type="Sprite2D" parent="Scenery"] +modulate = Color(0.0980392, 0.0784314, 0.137255, 1) +light_mask = 2 +z_index = -99 +position = Vector2(994, 539) +scale = Vector2(3.89539, 0.889915) +texture = ExtResource("3_thcr1") + +[node name="BGMount2" type="Sprite2D" parent="Scenery"] +modulate = Color(0.0980392, 0.0784314, 0.137255, 1) +light_mask = 2 +z_index = -99 +position = Vector2(2062, 642) +scale = Vector2(3.89539, 0.889915) +texture = ExtResource("3_thcr1") + +[node name="BGMount3" type="Sprite2D" parent="Scenery"] +modulate = Color(0.0980392, 0.0784314, 0.137255, 1) +light_mask = 2 +z_index = -99 +position = Vector2(3667, 499) +scale = Vector2(3.89539, 0.889915) +texture = ExtResource("3_thcr1") + +[node name="BGMount4" type="Sprite2D" parent="Scenery"] +modulate = Color(0.0980392, 0.0784314, 0.137255, 1) +light_mask = 2 +z_index = -99 +position = Vector2(5373, 674) +scale = Vector2(3.89539, 0.889915) +texture = ExtResource("3_thcr1") + +[node name="BGMount5" type="Sprite2D" parent="Scenery"] +modulate = Color(0.0980392, 0.0784314, 0.137255, 1) +light_mask = 2 +z_index = -99 +position = Vector2(6873, 441) +scale = Vector2(3.89539, 0.889915) +texture = ExtResource("3_thcr1") + +[node name="BGMount6" type="Sprite2D" parent="Scenery"] +modulate = Color(0.0980392, 0.0784314, 0.137255, 1) +light_mask = 2 +z_index = -999 +position = Vector2(9107, 137) +scale = Vector2(3.89539, 0.889915) +texture = ExtResource("3_thcr1") + +[node name="BGTree" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(1379, 280) +rotation = 3.14159 +scale = Vector2(0.272, -0.272) + +[node name="BGTree6" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(1196, 204) +scale = Vector2(0.272, 0.272) + +[node name="BGTree7" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(778, 216) +scale = Vector2(0.272, 0.272) + +[node name="BGTree8" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(613, 324) +scale = Vector2(0.272, 0.272) + +[node name="BGTree9" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(1879, 303) +scale = Vector2(0.220451, 0.220451) + +[node name="BGTree10" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(3035, 373) +scale = Vector2(0.220451, 0.220451) + +[node name="BGTree11" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(3217, 270) +scale = Vector2(0.220451, 0.220451) + +[node name="BGTree12" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(3573, 121) +scale = Vector2(0.312672, 0.312672) + +[node name="BGTree2" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(1538, 365) +rotation = 3.14159 +scale = Vector2(0.272, -0.272) + +[node name="BGTree3" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(2131, 243) +rotation = 3.14159 +scale = Vector2(0.272, -0.272) + +[node name="BGTree4" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(3859, 165) +rotation = 3.14159 +scale = Vector2(0.272, -0.272) + +[node name="BGTree5" parent="Scenery" instance=ExtResource("1_kmc8j")] +modulate = Color(0.146734, 0.121014, 0.198231, 1) +z_index = -100 +position = Vector2(4269, 367) +rotation = 3.14159 +scale = Vector2(0.272, -0.272) + +[node name="Tree9" parent="Scenery" instance=ExtResource("1_kmc8j")] +z_index = -1 +position = Vector2(6429, 450) + +[node name="Torch4" parent="Scenery" instance=ExtResource("2_tlgy3")] +z_index = 1 +position = Vector2(7046, 443) + +[node name="Torch5" parent="Scenery" instance=ExtResource("2_tlgy3")] +z_index = 1 +position = Vector2(6330, 443) + +[node name="Torch6" parent="Scenery" instance=ExtResource("2_tlgy3")] +position = Vector2(5773, 156) +rotation = -0.729366 + +[node name="WallGroup" type="Node2D" parent="."] +position = Vector2(5784, 424) + +[node name="Wall" type="StaticBody2D" parent="WallGroup"] +position = Vector2(-6, -205) + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup/Wall"] +z_index = -8 +position = Vector2(7.49977, -34) +scale = Vector2(1.69443, 478) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D2" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(7.50008, -257.5) +scale = Vector2(1.69445, 477) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="DecorSprite" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(-11.7498, -49.75) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="DecorSprite2" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(-11.9998, -142) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="DecorSprite3" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(33.0002, -257) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="DecorSprite4" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(17.0002, -367) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="DecorSprite5" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(-9.99984, -431) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="DecorSprite6" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(-13.9998, -313) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="DecorSprite7" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(-4.99984, -208) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="DecorSprite8" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(21.0002, -97) +scale = Vector2(1.39573, 25.9297) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup/Wall"] +position = Vector2(7.5, -235) +shape = SubResource("RectangleShape2D_34bfm") + +[node name="DoorWall" type="StaticBody2D" parent="WallGroup"] +position = Vector2(-6, -437) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup/DoorWall"] +position = Vector2(7, 62) +shape = SubResource("RectangleShape2D_7pswh") + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup/DoorWall"] +position = Vector2(6.49988, 72) +scale = Vector2(1.3611, 266) +texture = SubResource("GradientTexture1D_wgfyn") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="WallGroup"] +libraries = { +&"": SubResource("AnimationLibrary_34bfm") +} + +[node name="SpawnArea2D" type="Area2D" parent="." node_paths=PackedStringArray("anim_to_play", "spawn_to_enable")] +position = Vector2(5494, 138) +collision_mask = 3 +monitoring = false +script = ExtResource("4_8v1jv") +anim_to_play = [NodePath("../WallGroup/AnimationPlayer")] +spawn_to_enable = [NodePath("../Spawner"), NodePath("../Spawner2")] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpawnArea2D"] +position = Vector2(74.75, -11) +shape = SubResource("RectangleShape2D_ovrsl") + +[node name="Spawner" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(5164, -346) +script = ExtResource("5_opotr") +enemy = ExtResource("6_c6jx6") +interval_seconds = 6.0 +count = 4 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner2" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(4624, -342) +script = ExtResource("5_opotr") +enemy = ExtResource("6_c6jx6") +interval_seconds = 8.0 +count = 3 +initial_delay = 4.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="weapon_machette" type="Node2D" parent="."] +position = Vector2(6102, 392) +rotation = 3.11192 +scale = Vector2(1, -1) +script = ExtResource("7_1x5ay") + +[node name="Machette" type="Sprite2D" parent="weapon_machette"] +position = Vector2(7.9399, -24.7176) +scale = Vector2(0.0588337, 0.0588337) +texture = ExtResource("8_x0k32") +flip_h = true + +[node name="Area2D" type="Area2D" parent="weapon_machette"] +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="weapon_machette/Area2D"] +position = Vector2(8.31371, -23.2569) +shape = SubResource("CircleShape2D_u05pv") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="weapon_machette"] + +[node name="Chest" parent="." instance=ExtResource("9_tbo63")] +position = Vector2(7202, 424.2) + +[node name="Tree" parent="." instance=ExtResource("10_tlgy3")] +z_index = 2 +position = Vector2(9608, 456) +scale = Vector2(3.04938, 3.04938) + +[node name="Area2D4" type="Area2D" parent="."] +position = Vector2(504, 209) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("11_thcr1") +once = true +set = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D4"] +position = Vector2(408.5, 29.5) +shape = SubResource("RectangleShape2D_thcr1") + +[connection signal="body_entered" from="SpawnArea2D" to="SpawnArea2D" method="_on_body_entered"] +[connection signal="body_entered" from="weapon_machette/Area2D" to="weapon_machette" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="Area2D4" to="Area2D4" method="_on_body_entered"] diff --git a/Levels/1.tscn b/Levels/1.tscn new file mode 100644 index 0000000..9056d9c --- /dev/null +++ b/Levels/1.tscn @@ -0,0 +1,3276 @@ +[gd_scene load_steps=106 format=3 uid="uid://ct2q2kcvlla0v"] + +[ext_resource type="PackedScene" uid="uid://cb6tymujjkw6k" path="res://Reusable Scenes/1/tree.tscn" id="1_dhllp"] +[ext_resource type="Texture2D" uid="uid://b43tak6ssuwoc" path="res://Assets/Visuals/sign_cliff.svg" id="1_ghh0o"] +[ext_resource type="Script" uid="uid://bkw5wrlcs14pa" path="res://Scripts/Level Specific/1Mud.gd" id="1_re5x3"] +[ext_resource type="PackedScene" uid="uid://b186mjdwnwe2y" path="res://Reusable Scenes/1/trunk.tscn" id="2_y0prk"] +[ext_resource type="PackedScene" uid="uid://beucb04e2mvm7" path="res://Reusable Scenes/1/bg_tree.tscn" id="3_0nkm3"] +[ext_resource type="PackedScene" uid="uid://b3ev1xafiwmib" path="res://Reusable Scenes/1/grappleables.tscn" id="3_1cx1b"] +[ext_resource type="PackedScene" uid="uid://dqw3tqg5374ui" path="res://Reusable Scenes/0/enemy.tscn" id="4_koob3"] +[ext_resource type="PackedScene" uid="uid://s27nyuw0bl5a" path="res://Reusable Scenes/1/enemy_archer.tscn" id="6_udf8s"] +[ext_resource type="Script" uid="uid://c5vuv87l6mm6w" path="res://Scripts/SpawnZone.gd" id="7_dfl0s"] +[ext_resource type="Script" uid="uid://df037bypj74at" path="res://Scripts/Spawner.gd" id="8_4nkdv"] +[ext_resource type="PackedScene" uid="uid://b80iwxixd6rbp" path="res://Reusable Scenes/chest.tscn" id="11_adc2f"] +[ext_resource type="Script" uid="uid://cl2xrq3y86cer" path="res://Scripts/Level Specific/1FruitSrhubs.gd" id="11_ghh0o"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="11_mpo1i"] +[ext_resource type="Script" uid="uid://d311iyn5wpy1q" path="res://Scripts/Level Specific/1SpikyShrubs.gd" id="12_1cx1b"] +[ext_resource type="PackedScene" uid="uid://cmimydllnd6ny" path="res://Reusable Scenes/torch.tscn" id="12_a3mg4"] +[ext_resource type="Texture2D" uid="uid://ctqf51roko842" path="res://Assets/Visuals/tutorial5.png" id="12_pm05x"] +[ext_resource type="Texture2D" uid="uid://csuuxeq47s64g" path="res://Assets/Visuals/mask1.svg" id="13_7gyb1"] +[ext_resource type="Texture2D" uid="uid://5qnk3v8qhkwh" path="res://Assets/Visuals/tutorial6.png" id="14_7gyb1"] +[ext_resource type="PackedScene" uid="uid://711q12yjfsni" path="res://Reusable Scenes/death_area.tscn" id="16_wj6md"] +[ext_resource type="Script" uid="uid://b5td7htthnvrn" path="res://Scripts/Level Specific/2CameraControls.gd" id="17_xu7n4"] + +[sub_resource type="Gradient" id="Gradient_13oc8"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.09272, 0.12, 0.0828, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_dhllp"] +gradient = SubResource("Gradient_13oc8") + +[sub_resource type="Gradient" id="Gradient_pm05x"] +colors = PackedColorArray(0.4779, 0.67716, 0.81, 1, 1, 0.722667, 0.36, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_7gyb1"] +gradient = SubResource("Gradient_pm05x") +fill_from = Vector2(0, 1) +fill_to = Vector2(0, 0) + +[sub_resource type="Gradient" id="Gradient_7gyb1"] +offsets = PackedFloat32Array(0, 0.93128, 1) +colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 0.478431, 0.67451, 0.8, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_xuljb"] +gradient = SubResource("Gradient_7gyb1") +fill_from = Vector2(0, 1) +fill_to = Vector2(0, 0) + +[sub_resource type="Gradient" id="Gradient_vir0h"] +colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_prt44"] +gradient = SubResource("Gradient_vir0h") +fill_from = Vector2(0, 0.557692) +fill_to = Vector2(0, 0) + +[sub_resource type="Gradient" id="Gradient_a3mg4"] +colors = PackedColorArray(0.16, 0.14856, 0.0976, 1, 0.16, 0.14856, 0.0976, 0.254902) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_mpo1i"] +gradient = SubResource("Gradient_a3mg4") +fill_from = Vector2(0, 0.557692) +fill_to = Vector2(0, 0) + +[sub_resource type="Gradient" id="Gradient_oj8hd"] +offsets = PackedFloat32Array(0.0210843) +colors = PackedColorArray(0.241151, 0.257047, 0.0380849, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_gnif3"] +gradient = SubResource("Gradient_oj8hd") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_udf8s"] +size = Vector2(818, 239.75) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_1cx1b"] +size = Vector2(818, 338.625) + +[sub_resource type="Gradient" id="Gradient_nj2yk"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.215905, 0.417172, 0.189315, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_7pswh"] +gradient = SubResource("Gradient_nj2yk") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_re5x3"] +size = Vector2(3787, 218) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_lwy2l"] +size = Vector2(963, 368.5) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ghh0o"] +size = Vector2(963, 368.5) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_dfl0s"] +size = Vector2(1078, 1354) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_74s63"] +size = Vector2(1046.06, 514) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_mpo1i"] +size = Vector2(1047, 519) + +[sub_resource type="Gradient" id="Gradient_pytih"] +colors = PackedColorArray(0, 0.490196, 1, 0.392157, 0.276404, 0.479503, 1, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_pm05x"] +gradient = SubResource("Gradient_pytih") +fill_to = Vector2(0, 0.709402) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_xuljb"] +size = Vector2(651, 218) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_a3mg4"] +size = Vector2(7751, 218) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_vir0h"] +size = Vector2(4018, 218) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_13oc8"] +size = Vector2(1057, 218) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ldmnp"] +size = Vector2(5849, 218) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_4nkdv"] +size = Vector2(2853.06, 218) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_adc2f"] +size = Vector2(312.061, 904) + +[sub_resource type="Gradient" id="Gradient_koob3"] +offsets = PackedFloat32Array(0.0210843) +colors = PackedColorArray(0.23, 0.201748, 0.0759, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_re5x3"] +gradient = SubResource("Gradient_koob3") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_koob3"] +size = Vector2(741, 81) + +[sub_resource type="Gradient" id="Gradient_34bfm"] +offsets = PackedFloat32Array(0.470779) +colors = PackedColorArray(0.276666, 0.442989, 0.0883189, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ovrsl"] +gradient = SubResource("Gradient_34bfm") +width = 64 + +[sub_resource type="Gradient" id="Gradient_ovrsl"] +offsets = PackedFloat32Array(0.470779) +colors = PackedColorArray(0.57, 0.5472, 0.114, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_he5fp"] +gradient = SubResource("Gradient_ovrsl") +width = 64 + +[sub_resource type="Gradient" id="Gradient_gnif3"] +offsets = PackedFloat32Array(0.470779) +colors = PackedColorArray(0.335918, 0.25971, 0.020719, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_lwy2l"] +gradient = SubResource("Gradient_gnif3") +width = 64 + +[sub_resource type="Gradient" id="Gradient_lwy2l"] +offsets = PackedFloat32Array(0.493976) +colors = PackedColorArray(0.298791, 0.229838, 0.0164207, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_nj2yk"] +gradient = SubResource("Gradient_lwy2l") +width = 64 + +[sub_resource type="Gradient" id="Gradient_hbaan"] +offsets = PackedFloat32Array(0.493976) +colors = PackedColorArray(0.37784, 0.293431, 0.0262073, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_mykqc"] +gradient = SubResource("Gradient_hbaan") +width = 64 + +[sub_resource type="Gradient" id="Gradient_7pswh"] +offsets = PackedFloat32Array(0.470779) +colors = PackedColorArray(0.353547, 0.56, 0.1176, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_34bfm"] +gradient = SubResource("Gradient_7pswh") +width = 64 + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_hbaan"] +gradient = SubResource("Gradient_34bfm") +width = 64 + +[sub_resource type="Gradient" id="Gradient_he5fp"] +offsets = PackedFloat32Array(0.470779) +colors = PackedColorArray(0.454855, 0.716912, 0.148735, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_u05pv"] +gradient = SubResource("Gradient_he5fp") +width = 64 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_prt44"] +size = Vector2(185.632, 29.9115) + +[sub_resource type="Gradient" id="Gradient_ldmnp"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.334744, 0.334744, 0.334743, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_adc2f"] +gradient = SubResource("Gradient_ldmnp") +width = 36 + +[sub_resource type="Gradient" id="Gradient_jqbiv"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.611765, 0.611765, 0.611765, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_a3mg4"] +gradient = SubResource("Gradient_jqbiv") +width = 36 + +[sub_resource type="Gradient" id="Gradient_l1gpo"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.760297, 0.760297, 0.760297, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ghh0o"] +gradient = SubResource("Gradient_l1gpo") +width = 36 + +[sub_resource type="Gradient" id="Gradient_c7kkd"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.535024, 0.535023, 0.535023, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_1cx1b"] +gradient = SubResource("Gradient_c7kkd") +width = 36 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_wj6md"] +size = Vector2(61, 430) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_xu7n4"] +size = Vector2(48, 286) + +[sub_resource type="Gradient" id="Gradient_q453w"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.493545, 0.493546, 0.493546, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_pytih"] +gradient = SubResource("Gradient_q453w") +width = 36 + +[sub_resource type="Animation" id="Animation_34bfm"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DoorWall:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-6, -437)] +} + +[sub_resource type="Animation" id="Animation_7pswh"] +resource_name = "door_close" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DoorWall:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 0.666667, 0.866667), +"transitions": PackedFloat32Array(3.03143, 0.615572, 2.2974, 2.2974), +"update": 0, +"values": [Vector2(-6, -437), Vector2(-6, -205), Vector2(-6, -238.21), Vector2(-6, -205)] +} + +[sub_resource type="Animation" id="Animation_hbaan"] +resource_name = "open" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DoorWall:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.8), +"transitions": PackedFloat32Array(0.329877, 0.329877), +"update": 0, +"values": [Vector2(-6, -205), Vector2(-6, -436)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_34bfm"] +_data = { +&"RESET": SubResource("Animation_34bfm"), +&"close": SubResource("Animation_7pswh"), +&"open": SubResource("Animation_hbaan") +} + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_pm05x"] +size = Vector2(485, 663) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_7gyb1"] +size = Vector2(154, 61) + +[sub_resource type="Gradient" id="Gradient_xuljb"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.222083, 0.428842, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_13oc8"] +gradient = SubResource("Gradient_xuljb") +width = 32 + +[sub_resource type="Gradient" id="Gradient_ghh0o"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.693751, 0.474919, 1.92523e-07, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_wj6md"] +gradient = SubResource("Gradient_ghh0o") +width = 32 + +[sub_resource type="Gradient" id="Gradient_1cx1b"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(1, 0.692737, 0.0201953, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_xu7n4"] +gradient = SubResource("Gradient_1cx1b") +width = 32 + +[sub_resource type="Gradient" id="Gradient_wj6md"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.71, 0.549067, 0.2272, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_pm05x"] +gradient = SubResource("Gradient_wj6md") + +[sub_resource type="Gradient" id="Gradient_xu7n4"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.40082, 0.302654, 0.103694, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_7gyb1"] +gradient = SubResource("Gradient_xu7n4") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_pytih"] +size = Vector2(3725.5, 125) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_c7kkd"] +size = Vector2(1921.75, 125) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_q453w"] +size = Vector2(1529.75, 125) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_7cjqv"] +size = Vector2(1281.75, 125) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_l1gpo"] +size = Vector2(890.75, 125) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_jqbiv"] +size = Vector2(1486.75, 125) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_7am6v"] +size = Vector2(241, 501) + +[node name="SCENE 1 – LUSH JUNGLES" type="Node2D"] + +[node name="Sky" type="Sprite2D" parent="."] +light_mask = 2 +z_index = -998 +position = Vector2(11867, 303.5) +scale = Vector2(92.7734, 7651) +texture = SubResource("GradientTexture1D_dhllp") + +[node name="Sky2" type="Sprite2D" parent="."] +light_mask = 2 +z_index = -998 +position = Vector2(26634.5, 1590.75) +scale = Vector2(23.2929, 5206.5) +texture = SubResource("GradientTexture1D_dhllp") + +[node name="Sky3" type="Sprite2D" parent="."] +light_mask = 2 +z_index = -998 +position = Vector2(28052.6, -3585) +scale = Vector2(134.638, 81.168) +texture = SubResource("GradientTexture2D_7gyb1") + +[node name="Sky4" type="Sprite2D" parent="."] +light_mask = 2 +position = Vector2(26205, -718) +scale = Vector2(12.9798, 12.239) +texture = SubResource("GradientTexture2D_xuljb") + +[node name="Dirt4" type="Sprite2D" parent="."] +position = Vector2(8469, 1057) +scale = Vector2(26.6219, 27.2278) +texture = SubResource("GradientTexture2D_prt44") + +[node name="Dirt6" type="Sprite2D" parent="."] +position = Vector2(21697, 544) +scale = Vector2(26.6219, 27.2278) +texture = SubResource("GradientTexture2D_prt44") + +[node name="Dirt5" type="Sprite2D" parent="."] +z_index = -99 +position = Vector2(6067.95, 1052) +scale = Vector2(43.4359, 27.2278) +texture = SubResource("GradientTexture2D_mpo1i") + +[node name="RigidBody2D3" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(2569, 862) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D3"] +position = Vector2(561, 173.5) +scale = Vector2(13.7187, 939) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Dirt2" type="Sprite2D" parent="RigidBody2D3"] +position = Vector2(280, -189) +rotation = -0.951246 +scale = Vector2(1.24596, -142.682) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Dirt3" type="Sprite2D" parent="RigidBody2D3"] +position = Vector2(-228, -188) +rotation = 0.963175 +scale = Vector2(1.24596, -142.682) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D3"] +position = Vector2(15, -175.125) +shape = SubResource("RectangleShape2D_udf8s") + +[node name="RigidBody2D7" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(5117, 533) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D7"] +position = Vector2(122.503, -74.5) +scale = Vector2(10.2929, 443) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Dirt2" type="Sprite2D" parent="RigidBody2D7"] +position = Vector2(444, -189) +rotation = -0.951246 +scale = Vector2(1.24596, -142.682) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Dirt3" type="Sprite2D" parent="RigidBody2D7"] +position = Vector2(-228, -188) +rotation = 0.963175 +scale = Vector2(1.24596, -142.682) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D7"] +position = Vector2(97, -124.688) +shape = SubResource("RectangleShape2D_1cx1b") + +[node name="RigidBody2D" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(0, 720) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D"] +position = Vector2(561, 251.5) +scale = Vector2(13.7187, 939) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D"] +position = Vector2(560.5, -207) +scale = Vector2(13.8555, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"] +position = Vector2(419.5, -109) +shape = SubResource("RectangleShape2D_re5x3") + +[node name="RigidBody2D2" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(4072, 720) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D2"] +position = Vector2(-684.5, 251.5) +scale = Vector2(3.98828, 939) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D2"] +position = Vector2(-868.94, -207) +scale = Vector2(2.81203, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D2"] +position = Vector2(-713.5, -33.75) +shape = SubResource("RectangleShape2D_lwy2l") + +[node name="RigidBody2D4" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(4612, 605) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D4"] +position = Vector2(-684.5, 251.5) +scale = Vector2(3.98828, 939) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D4"] +position = Vector2(-868.94, -207) +scale = Vector2(2.81203, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D4"] +position = Vector2(-712, -32) +shape = SubResource("RectangleShape2D_ghh0o") + +[node name="RigidBody2D5" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(4785, 434) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D5"] +position = Vector2(-684.5, 251.5) +scale = Vector2(3.98828, 939) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D5"] +position = Vector2(-846, -207) +scale = Vector2(2.81203, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D5"] +position = Vector2(-712, -32) +shape = SubResource("RectangleShape2D_lwy2l") + +[node name="RigidBody2D6" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(5002, 383) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D6"] +position = Vector2(-671, 251.5) +scale = Vector2(4.09375, 939) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D6"] +position = Vector2(-670.47, -207) +scale = Vector2(4.18336, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D6"] +position = Vector2(-656, 459) +shape = SubResource("RectangleShape2D_dfl0s") + +[node name="RigidBody2D8" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(6104, 383) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D8"] +position = Vector2(4.93945, 40) +scale = Vector2(4.09375, 516) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D8"] +position = Vector2(1.46942, -207) +scale = Vector2(4.15211, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D8"] +position = Vector2(3.96973, 39) +shape = SubResource("RectangleShape2D_74s63") + +[node name="RigidBody2D9" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(8038, 383) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D9"] +position = Vector2(-671, 41.5) +scale = Vector2(4.09375, 519) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Dirt2" type="Sprite2D" parent="RigidBody2D9"] +position = Vector2(-453.25, 673) +scale = Vector2(2.39648, 1738.5) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D9"] +position = Vector2(-667.5, -207) +scale = Vector2(4.16016, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D9"] +position = Vector2(-671.5, 41.5) +shape = SubResource("RectangleShape2D_mpo1i") + +[node name="RigidBody2D14" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(16141, 455) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Water" type="Sprite2D" parent="RigidBody2D14"] +position = Vector2(701, -218) +scale = Vector2(8.02672, 1.72221) +texture = SubResource("GradientTexture2D_pm05x") + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D14"] +position = Vector2(708.501, 660.5) +scale = Vector2(3.8164, 1757) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Dirt2" type="Sprite2D" parent="RigidBody2D14"] +position = Vector2(915.999, -215) +rotation = 1.03364 +scale = Vector2(0.305502, 160.991) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Dirt3" type="Sprite2D" parent="RigidBody2D14"] +position = Vector2(488.999, -216) +rotation = -1.04854 +scale = Vector2(0.305502, 160.991) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D14"] +position = Vector2(688.5, -108) +shape = SubResource("RectangleShape2D_xuljb") + +[node name="RigidBody2D10" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(9371, 383) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D10"] +position = Vector2(3355.47, 660.5) +scale = Vector2(30.2698, 1757) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D10"] +position = Vector2(3354, -207) +scale = Vector2(30.3437, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D10"] +position = Vector2(3356.5, -108) +shape = SubResource("RectangleShape2D_a3mg4") + +[node name="RigidBody2D13" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(17611, 383) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D13"] +position = Vector2(1550.47, 660.5) +scale = Vector2(16.1682, 1757) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D13"] +position = Vector2(1488.5, -207) +scale = Vector2(15.7695, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D13"] +position = Vector2(1490, -108) +shape = SubResource("RectangleShape2D_vir0h") + +[node name="RigidBody2D15" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(19727, 190) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D15"] +position = Vector2(9.46899, 660.5) +scale = Vector2(4.12914, 1757) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D15"] +position = Vector2(-14.4984, -207) +scale = Vector2(4.02733, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D15"] +position = Vector2(4.5, -108) +shape = SubResource("RectangleShape2D_13oc8") + +[node name="RigidBody2D16" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(20243, 21) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D16"] +position = Vector2(9.46899, 660.5) +scale = Vector2(4.12914, 1757) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D16"] +position = Vector2(-14.4984, -207) +scale = Vector2(4.02733, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D16"] +position = Vector2(4.5, -108) +shape = SubResource("RectangleShape2D_13oc8") + +[node name="RigidBody2D17" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(20840, -136) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D17"] +position = Vector2(9.46899, 660.5) +scale = Vector2(4.12914, 1757) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D17"] +position = Vector2(8.50142, -207) +scale = Vector2(4.20702, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D17"] +position = Vector2(9.5, -108) +shape = SubResource("RectangleShape2D_13oc8") + +[node name="SignCliff" type="Sprite2D" parent="."] +z_index = -5 +position = Vector2(7833, 127) +rotation = 0.144316 +scale = Vector2(0.154435, 0.154435) +texture = ExtResource("1_ghh0o") + +[node name="SignCliff2" type="Sprite2D" parent="."] +z_index = -5 +position = Vector2(21309, -395) +rotation = -0.110982 +scale = Vector2(0.175708, 0.175708) +texture = ExtResource("1_ghh0o") + +[node name="RigidBody2D18" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(22467, -145) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D18"] +position = Vector2(2408.97, 660.5) +scale = Vector2(22.8752, 1757) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="Grass" type="Sprite2D" parent="RigidBody2D18"] +position = Vector2(2413.5, -207) +scale = Vector2(22.9961, 23) +texture = SubResource("GradientTexture1D_7pswh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D18"] +position = Vector2(2400.5, -108) +shape = SubResource("RectangleShape2D_ldmnp") + +[node name="EnemyPewPew" parent="RigidBody2D18" instance=ExtResource("6_udf8s")] +position = Vector2(338, -278) + +[node name="RigidBody2D11" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(5225, 1291) +collision_layer = 32771 +collision_mask = 32771 + +[node name="Dirt" type="Sprite2D" parent="RigidBody2D11"] +position = Vector2(49.4999, 660.5) +scale = Vector2(18.8945, 1757) +texture = SubResource("GradientTexture1D_gnif3") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D11"] +position = Vector2(907.47, -109) +shape = SubResource("RectangleShape2D_4nkdv") + +[node name="RigidBody2D12" type="StaticBody2D" parent="."] +z_index = 1024 +position = Vector2(7995, 768) +collision_layer = 32771 +collision_mask = 32771 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D12"] +position = Vector2(-561, 234) +shape = SubResource("RectangleShape2D_adc2f") + +[node name="Grappleables" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(8102, -191) + +[node name="Mud" type="Area2D" parent="."] +z_index = 1023 +position = Vector2(2609, 534) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("1_re5x3") + +[node name="Dirt" type="Sprite2D" parent="Mud"] +position = Vector2(-21.4999, 33.5) +scale = Vector2(2.75391, 93) +texture = SubResource("GradientTexture1D_re5x3") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Mud"] +position = Vector2(-34.5, 27.5) +shape = SubResource("RectangleShape2D_koob3") + +[node name="Mud2" type="Area2D" parent="."] +z_index = 1023 +position = Vector2(2609, 534) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("1_re5x3") + +[node name="Dirt" type="Sprite2D" parent="Mud2"] +position = Vector2(-21.4999, 33.5) +scale = Vector2(2.75391, 93) +texture = SubResource("GradientTexture1D_re5x3") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Mud2"] +position = Vector2(-34.5, 27.5) +shape = SubResource("RectangleShape2D_koob3") + +[node name="Mud3" type="Area2D" parent="."] +z_index = 1023 +position = Vector2(5213, 217) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("1_re5x3") + +[node name="Dirt" type="Sprite2D" parent="Mud3"] +position = Vector2(2.0002, 33.5) +scale = Vector2(2.9375, 93) +texture = SubResource("GradientTexture1D_re5x3") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Mud3"] +position = Vector2(5.5, 27.5) +shape = SubResource("RectangleShape2D_koob3") + +[node name="Tree" parent="." instance=ExtResource("1_dhllp")] +z_index = 1 +position = Vector2(471, 506) + +[node name="Tree2" parent="." instance=ExtResource("1_dhllp")] +z_index = 1 +position = Vector2(1381, 506) + +[node name="Trunk" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(782, 504) + +[node name="Trunk2" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(2715, 504) +scale = Vector2(-1, 1) + +[node name="Trunk3" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(3584, 504) +scale = Vector2(-1, 1) + +[node name="Trunk5" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(7081, 259) +scale = Vector2(-1, 1) + +[node name="Trunk4" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(4146, 173) +scale = Vector2(1.33552, 1.43028) + +[node name="BGTree" parent="." instance=ExtResource("3_0nkm3")] +position = Vector2(2021, 504) + +[node name="BGTree3" parent="." instance=ExtResource("3_0nkm3")] +position = Vector2(6253, 444) +scale = Vector2(0.970563, 0.970563) + +[node name="BGTree2" parent="." instance=ExtResource("3_0nkm3")] +position = Vector2(-36, 504) + +[node name="EnemyShore" parent="." instance=ExtResource("4_koob3")] +position = Vector2(744, 403) + +[node name="EnemyShore2" parent="." instance=ExtResource("4_koob3")] +position = Vector2(1065, 408) + +[node name="Tree3" type="StaticBody2D" parent="."] +position = Vector2(5477, 243) +scale = Vector2(1.30578, 1.30578) +collision_layer = 16384 +collision_mask = 16384 + +[node name="Sprite2D16" type="Sprite2D" parent="Tree3"] +position = Vector2(-200.468, -260.99) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree3"] +position = Vector2(-200.468, -175.99) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree3/Sprite2D17"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D18" type="Sprite2D" parent="Tree3"] +position = Vector2(-124.389, -226.646) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D19" type="Sprite2D" parent="Tree3"] +position = Vector2(-124.389, -141.646) +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree3/Sprite2D19"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D20" type="Sprite2D" parent="Tree3"] +position = Vector2(78.6109, -244.646) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D21" type="Sprite2D" parent="Tree3"] +position = Vector2(78.6109, -159.646) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree3/Sprite2D21"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D22" type="Sprite2D" parent="Tree3"] +position = Vector2(192.611, -316.646) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D23" type="Sprite2D" parent="Tree3"] +position = Vector2(192.611, -231.646) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree3/Sprite2D23"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D24" type="Sprite2D" parent="Tree3"] +position = Vector2(141.611, -179.646) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D25" type="Sprite2D" parent="Tree3"] +position = Vector2(141.611, -94.6463) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree3/Sprite2D25"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D7" type="Sprite2D" parent="Tree3"] +position = Vector2(-7.45212, -157.75) +scale = Vector2(1.20312, 437.5) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D2" type="Sprite2D" parent="Tree3"] +position = Vector2(-33.6079, -5.36407) +rotation = 0.785398 +scale = Vector2(1.53232, 118.21) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D4" type="Sprite2D" parent="Tree3"] +position = Vector2(-26.9521, -55) +rotation = 0.261799 +scale = Vector2(0.836327, 83.2208) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D3" type="Sprite2D" parent="Tree3"] +position = Vector2(79.1762, -2.12842) +rotation = -0.785398 +scale = Vector2(0.884306, 204.687) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D5" type="Sprite2D" parent="Tree3"] +position = Vector2(-34.9521, -38) +rotation = 0.261799 +scale = Vector2(0.296305, 115.218) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D28" type="Sprite2D" parent="Tree3"] +position = Vector2(77.9427, -29.1052) +rotation = -0.785398 +scale = Vector2(0.214702, 158.799) +texture = SubResource("GradientTexture1D_mykqc") + +[node name="Sprite2D6" type="Sprite2D" parent="Tree3"] +position = Vector2(-20.9521, -235.195) +scale = Vector2(0.296305, 301.609) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D27" type="Sprite2D" parent="Tree3"] +position = Vector2(5.04785, -178) +scale = Vector2(0.148153, 409.805) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D30" type="Sprite2D" parent="Tree3"] +position = Vector2(82.4556, 4.96504) +rotation = -0.785398 +scale = Vector2(0.138365, 169.916) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D26" type="Sprite2D" parent="Tree3"] +position = Vector2(-12.9521, -136) +scale = Vector2(0.214702, 367.805) +texture = SubResource("GradientTexture1D_mykqc") + +[node name="Sprite2D29" type="Sprite2D" parent="Tree3"] +position = Vector2(21.0479, -119) +scale = Vector2(0.214702, 367.805) +texture = SubResource("GradientTexture1D_mykqc") + +[node name="Leaves" type="Sprite2D" parent="Tree3"] +position = Vector2(-106.952, -394.99) +rotation = 0.261799 +scale = Vector2(3.72656, 230.75) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Leaves2" type="Sprite2D" parent="Tree3"] +position = Vector2(-105.617, -283.503) +rotation = 0.261799 +scale = Vector2(4.66797, 16) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Leaves3" type="Sprite2D" parent="Tree3"] +position = Vector2(63.9229, -324.302) +rotation = -0.261799 +scale = Vector2(3.75391, 161.375) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Leaves4" type="Sprite2D" parent="Tree3"] +position = Vector2(82.8081, -253.926) +rotation = -0.261799 +scale = Vector2(3.75275, 15.576) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Leaves5" type="Sprite2D" parent="Tree3"] +position = Vector2(-48.6709, -430.99) +scale = Vector2(2.50879, 133.344) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Leavse2" type="Sprite2D" parent="Tree3"] +position = Vector2(98.0479, -389.99) +rotation = -0.261799 +scale = Vector2(1.86157, 66.5) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D10" type="Sprite2D" parent="Tree3"] +position = Vector2(112.048, -434.99) +rotation = -0.261799 +scale = Vector2(2.37598, 122.344) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Leaves6" type="Sprite2D" parent="Tree3"] +position = Vector2(-13.7334, -467.646) +scale = Vector2(3.1582, 176.688) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Leavse" type="Sprite2D" parent="Tree3"] +position = Vector2(11.3291, -532.49) +scale = Vector2(2.10937, 17) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="branch" type="Sprite2D" parent="Tree3"] +position = Vector2(-135.551, -234.343) +rotation = -1.22277 +scale = Vector2(0.563589, 204.942) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="branch2" type="Sprite2D" parent="Tree3"] +position = Vector2(-117.172, -246.596) +rotation = -1.5675 +scale = Vector2(0.280018, 149.67) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Tree3"] +position = Vector2(-137.849, -240.47) +rotation = 0.00387462 +shape = SubResource("RectangleShape2D_prt44") + +[node name="Tree16" type="StaticBody2D" parent="."] +position = Vector2(12727, 160) +scale = Vector2(0.987173, 0.987173) +collision_layer = 16384 +collision_mask = 16384 + +[node name="Sprite2D16" type="Sprite2D" parent="Tree16"] +position = Vector2(-200.468, -260.99) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree16"] +position = Vector2(-200.468, -175.99) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree16/Sprite2D17"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D18" type="Sprite2D" parent="Tree16"] +position = Vector2(-124.389, -226.646) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D19" type="Sprite2D" parent="Tree16"] +position = Vector2(-124.389, -141.646) +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree16/Sprite2D19"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D20" type="Sprite2D" parent="Tree16"] +position = Vector2(78.6109, -244.646) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D21" type="Sprite2D" parent="Tree16"] +position = Vector2(78.6109, -159.646) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree16/Sprite2D21"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D22" type="Sprite2D" parent="Tree16"] +position = Vector2(192.611, -316.646) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D23" type="Sprite2D" parent="Tree16"] +position = Vector2(192.611, -231.646) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree16/Sprite2D23"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D24" type="Sprite2D" parent="Tree16"] +position = Vector2(141.611, -179.646) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D25" type="Sprite2D" parent="Tree16"] +position = Vector2(141.611, -94.6463) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Tree16/Sprite2D25"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D7" type="Sprite2D" parent="Tree16"] +position = Vector2(-7.45212, -157.75) +scale = Vector2(1.20312, 437.5) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D2" type="Sprite2D" parent="Tree16"] +position = Vector2(-33.6079, -5.36407) +rotation = 0.785398 +scale = Vector2(1.53232, 118.21) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D4" type="Sprite2D" parent="Tree16"] +position = Vector2(-26.9521, -55) +rotation = 0.261799 +scale = Vector2(0.836327, 83.2208) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D3" type="Sprite2D" parent="Tree16"] +position = Vector2(79.1762, -2.12842) +rotation = -0.785398 +scale = Vector2(0.884306, 204.687) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D5" type="Sprite2D" parent="Tree16"] +position = Vector2(-34.9521, -38) +rotation = 0.261799 +scale = Vector2(0.296305, 115.218) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D28" type="Sprite2D" parent="Tree16"] +position = Vector2(77.9427, -29.1052) +rotation = -0.785398 +scale = Vector2(0.214702, 158.799) +texture = SubResource("GradientTexture1D_mykqc") + +[node name="Sprite2D6" type="Sprite2D" parent="Tree16"] +position = Vector2(-20.9521, -235.195) +scale = Vector2(0.296305, 301.609) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D27" type="Sprite2D" parent="Tree16"] +position = Vector2(5.04785, -178) +scale = Vector2(0.148153, 409.805) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D30" type="Sprite2D" parent="Tree16"] +position = Vector2(82.4556, 4.96504) +rotation = -0.785398 +scale = Vector2(0.138365, 169.916) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D26" type="Sprite2D" parent="Tree16"] +position = Vector2(-12.9521, -136) +scale = Vector2(0.214702, 367.805) +texture = SubResource("GradientTexture1D_mykqc") + +[node name="Sprite2D29" type="Sprite2D" parent="Tree16"] +position = Vector2(21.0479, -119) +scale = Vector2(0.214702, 367.805) +texture = SubResource("GradientTexture1D_mykqc") + +[node name="Leaves" type="Sprite2D" parent="Tree16"] +position = Vector2(-106.952, -394.99) +rotation = 0.261799 +scale = Vector2(3.72656, 230.75) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Leaves2" type="Sprite2D" parent="Tree16"] +position = Vector2(-105.617, -283.503) +rotation = 0.261799 +scale = Vector2(4.66797, 16) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Leaves3" type="Sprite2D" parent="Tree16"] +position = Vector2(60.78, -321.119) +rotation = -0.261799 +scale = Vector2(3.75391, 161.375) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Leaves4" type="Sprite2D" parent="Tree16"] +position = Vector2(82.8081, -253.926) +rotation = -0.261799 +scale = Vector2(3.75275, 15.576) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Leaves5" type="Sprite2D" parent="Tree16"] +position = Vector2(-48.6709, -430.99) +scale = Vector2(2.50879, 133.344) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Leavse2" type="Sprite2D" parent="Tree16"] +position = Vector2(98.0479, -389.99) +rotation = -0.261799 +scale = Vector2(1.86157, 66.5) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D10" type="Sprite2D" parent="Tree16"] +position = Vector2(112.048, -434.99) +rotation = -0.261799 +scale = Vector2(2.37598, 122.344) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Leaves6" type="Sprite2D" parent="Tree16"] +position = Vector2(-13.7334, -467.646) +scale = Vector2(3.1582, 176.688) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Leavse" type="Sprite2D" parent="Tree16"] +position = Vector2(11.3291, -532.49) +scale = Vector2(2.10937, 17) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="branch" type="Sprite2D" parent="Tree16"] +position = Vector2(-135.551, -234.343) +rotation = -1.22277 +scale = Vector2(0.563589, 204.942) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="branch2" type="Sprite2D" parent="Tree16"] +position = Vector2(-117.172, -246.596) +rotation = -1.5675 +scale = Vector2(0.280018, 149.67) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Tree16"] +position = Vector2(-137.849, -240.47) +rotation = 0.00387462 +shape = SubResource("RectangleShape2D_prt44") + +[node name="EnemyPewPew" parent="." instance=ExtResource("6_udf8s")] +position = Vector2(5300, -140) + +[node name="WallGroup" type="Node2D" parent="."] +position = Vector2(5693, 1073) + +[node name="Wall" type="StaticBody2D" parent="WallGroup"] +position = Vector2(-6, -205) + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup/Wall"] +z_index = -8 +position = Vector2(7.49977, -34) +scale = Vector2(1.69443, 478) +texture = SubResource("GradientTexture1D_adc2f") + +[node name="Sprite2D2" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(7.50008, -257.5) +scale = Vector2(1.69445, 477) +texture = SubResource("GradientTexture1D_a3mg4") + +[node name="DecorSprite" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(-11.7498, -49.75) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite2" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(-11.9998, -142) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite3" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(33.0002, -257) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite4" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(17.0002, -367) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite5" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(-9.99984, -431) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite6" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(-13.9998, -313) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_1cx1b") + +[node name="DecorSprite7" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(-4.99984, -208) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_1cx1b") + +[node name="DecorSprite8" type="Sprite2D" parent="WallGroup/Wall"] +z_index = 99 +position = Vector2(21.0002, -97) +scale = Vector2(1.39573, 25.9297) +texture = SubResource("GradientTexture1D_1cx1b") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup/Wall"] +position = Vector2(7.5, -235) +shape = SubResource("RectangleShape2D_wj6md") + +[node name="DoorWall" type="StaticBody2D" parent="WallGroup"] +position = Vector2(-6, -437) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup/DoorWall"] +position = Vector2(7, 62) +shape = SubResource("RectangleShape2D_xu7n4") + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup/DoorWall"] +position = Vector2(6.49988, 72) +scale = Vector2(1.3611, 266) +texture = SubResource("GradientTexture1D_pytih") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="WallGroup"] +libraries = { +&"": SubResource("AnimationLibrary_34bfm") +} + +[node name="Tree15" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(11383, 176) + +[node name="SpawnArea2D" type="Area2D" parent="." node_paths=PackedStringArray("anim_to_play", "spawn_to_enable")] +position = Vector2(5852, 787) +collision_mask = 3 +monitoring = false +script = ExtResource("7_dfl0s") +anim_to_play = [NodePath("../WallGroup/AnimationPlayer")] +spawn_to_enable = [NodePath("../Spawner"), NodePath("../Spawner2"), NodePath("../Spawner3"), NodePath("../Spawner4")] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpawnArea2D"] +position = Vector2(106.5, -11) +shape = SubResource("RectangleShape2D_pm05x") + +[node name="Spawner" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(6306, 948) +script = ExtResource("8_4nkdv") +enemy = ExtResource("4_koob3") +interval_seconds = 8.0 +count = 2 +initial_delay = 12.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner2" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(6674, 973) +script = ExtResource("8_4nkdv") +enemy = ExtResource("4_koob3") +count = 2 +initial_delay = 8.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner3" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(7180, 990) +script = ExtResource("8_4nkdv") +enemy = ExtResource("6_udf8s") +interval_seconds = 0.0 +count = 1 +initial_delay = 4.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner4" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(5956, 961) +script = ExtResource("8_4nkdv") +enemy = ExtResource("6_udf8s") +interval_seconds = 0.0 +count = 1 +initial_delay = 20.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="WallGroup2" type="Node2D" parent="."] +position = Vector2(14276, 171) + +[node name="Wall" type="StaticBody2D" parent="WallGroup2"] +position = Vector2(-6, -205) + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = -8 +position = Vector2(7.49977, -34) +scale = Vector2(1.69443, 478) +texture = SubResource("GradientTexture1D_adc2f") + +[node name="Sprite2D2" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(7.50008, -257.5) +scale = Vector2(1.69445, 477) +texture = SubResource("GradientTexture1D_a3mg4") + +[node name="DecorSprite" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(-11.7498, -49.75) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite2" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(-11.9998, -142) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite3" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(33.0002, -257) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite4" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(17.0002, -367) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite5" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(-9.99984, -431) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite6" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(-13.9998, -313) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_1cx1b") + +[node name="DecorSprite7" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(-4.99984, -208) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_1cx1b") + +[node name="DecorSprite8" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(21.0002, -97) +scale = Vector2(1.39573, 25.9297) +texture = SubResource("GradientTexture1D_1cx1b") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup2/Wall"] +position = Vector2(7.5, -235) +shape = SubResource("RectangleShape2D_wj6md") + +[node name="DoorWall" type="StaticBody2D" parent="WallGroup2"] +position = Vector2(-6, -437) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup2/DoorWall"] +position = Vector2(7, 62) +shape = SubResource("RectangleShape2D_xu7n4") + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup2/DoorWall"] +position = Vector2(6.49988, 72) +scale = Vector2(1.3611, 266) +texture = SubResource("GradientTexture1D_pytih") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="WallGroup2"] +libraries = { +&"": SubResource("AnimationLibrary_34bfm") +} + +[node name="WallGroup3" type="Node2D" parent="."] +position = Vector2(11678, 171) + +[node name="Wall" type="StaticBody2D" parent="WallGroup3"] +position = Vector2(-6, -205) + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = -8 +position = Vector2(7.49977, -34) +scale = Vector2(1.69443, 478) +texture = SubResource("GradientTexture1D_adc2f") + +[node name="Sprite2D2" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(7.50008, -257.5) +scale = Vector2(1.69445, 477) +texture = SubResource("GradientTexture1D_a3mg4") + +[node name="DecorSprite" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(-11.7498, -49.75) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite2" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(-11.9998, -142) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite3" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(33.0002, -257) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite4" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(17.0002, -367) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite5" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(-9.99984, -431) +scale = Vector2(1.31945, 26.5) +texture = SubResource("GradientTexture1D_ghh0o") + +[node name="DecorSprite6" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(-13.9998, -313) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_1cx1b") + +[node name="DecorSprite7" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(-4.99984, -208) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_1cx1b") + +[node name="DecorSprite8" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(21.0002, -97) +scale = Vector2(1.39573, 25.9297) +texture = SubResource("GradientTexture1D_1cx1b") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup3/Wall"] +position = Vector2(7.5, -235) +shape = SubResource("RectangleShape2D_wj6md") + +[node name="DoorWall" type="StaticBody2D" parent="WallGroup3"] +position = Vector2(-6, -437) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup3/DoorWall"] +position = Vector2(7, 62) +shape = SubResource("RectangleShape2D_xu7n4") + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup3/DoorWall"] +position = Vector2(6.49988, 72) +scale = Vector2(1.3611, 266) +texture = SubResource("GradientTexture1D_pytih") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="WallGroup3"] +libraries = { +&"": SubResource("AnimationLibrary_34bfm") +} + +[node name="SpawnArea2D2" type="Area2D" parent="." node_paths=PackedStringArray("anim_to_play", "spawn_to_enable")] +position = Vector2(13897, -156) +collision_mask = 3 +monitoring = false +script = ExtResource("7_dfl0s") +anim_to_play = [NodePath("../WallGroup2/AnimationPlayer"), NodePath("../WallGroup3/AnimationPlayer")] +spawn_to_enable = [NodePath("../Spawner5"), NodePath("../Spawner8"), NodePath("../Spawner6"), NodePath("../Spawner7"), NodePath("../Spawner9")] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpawnArea2D2"] +position = Vector2(106.5, -11) +shape = SubResource("RectangleShape2D_pm05x") + +[node name="Spawner5" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(13903, -140) +script = ExtResource("8_4nkdv") +enemy = ExtResource("6_udf8s") +interval_seconds = 20.0 +count = 2 +initial_delay = 6.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner8" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(12609, -178) +script = ExtResource("8_4nkdv") +enemy = ExtResource("6_udf8s") +interval_seconds = 8.0 +count = 1 +initial_delay = 40.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner6" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(13184, 104) +script = ExtResource("8_4nkdv") +enemy = ExtResource("4_koob3") +count = 2 +initial_delay = 30.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner7" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(12106, 94) +script = ExtResource("8_4nkdv") +enemy = ExtResource("4_koob3") +interval_seconds = 8.0 +count = 2 +initial_delay = 12.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner9" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(13515, 89) +script = ExtResource("8_4nkdv") +enemy = ExtResource("4_koob3") +interval_seconds = 8.0 +count = 2 +initial_delay = 12.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Torch" parent="." instance=ExtResource("12_a3mg4")] +position = Vector2(7287, 890) +rotation = -0.555739 + +[node name="Torch2" parent="." instance=ExtResource("12_a3mg4")] +position = Vector2(5882, 1080) + +[node name="Torch3" parent="." instance=ExtResource("12_a3mg4")] +position = Vector2(5198, 1085) + +[node name="Tutorial5" type="Sprite2D" parent="."] +visible = false +position = Vector2(6391, 834) +scale = Vector2(0.132855, 0.132855) +texture = ExtResource("12_pm05x") + +[node name="mask" type="Sprite2D" parent="Tutorial5"] +z_index = -4 +position = Vector2(-1814.01, -413.985) +scale = Vector2(0.280441, 0.280441) +texture = ExtResource("13_7gyb1") + +[node name="Tutorial6" type="Sprite2D" parent="."] +visible = false +position = Vector2(5391, 834) +scale = Vector2(0.132855, 0.132855) +texture = ExtResource("14_7gyb1") + +[node name="Chest" parent="." node_paths=PackedStringArray("tutorial_to_be_visible") instance=ExtResource("11_adc2f")] +position = Vector2(5353, 1073) +mask = 1 +tutorial_to_be_visible = [NodePath("../Tutorial5"), NodePath("../Tutorial6")] + +[node name="FruitShrubs" type="Node2D" parent="." node_paths=PackedStringArray("area", "fruites")] +z_index = -8 +position = Vector2(9581, 140) +script = ExtResource("11_ghh0o") +area = NodePath("Area2D") +fruites = NodePath("Fruits") + +[node name="Area2D" type="Area2D" parent="FruitShrubs"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="FruitShrubs/Area2D"] +shape = SubResource("RectangleShape2D_7gyb1") + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(-43, 12) +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs"] +position = Vector2(-25, -6) +rotation = -0.222303 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(13, 8) +rotation = 0.125406 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs"] +position = Vector2(67, 5) +rotation = 0.255823 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Fruits" type="Node2D" parent="FruitShrubs"] + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs/Fruits"] +position = Vector2(-52, -6) +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs/Fruits/Sprite2D"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs/Fruits"] +position = Vector2(-15, 4) +rotation = -0.402488 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs/Fruits/Sprite2D2"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs/Fruits"] +position = Vector2(33, -3) +rotation = 0.199355 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs/Fruits/Sprite2D3"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs/Fruits"] +position = Vector2(76, 13) +rotation = 0.0536584 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs/Fruits/Sprite2D4"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D5" type="Sprite2D" parent="FruitShrubs/Fruits"] +position = Vector2(74, -16) +rotation = -0.114686 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs/Fruits/Sprite2D5"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="FruitShrubs4" type="Node2D" parent="." node_paths=PackedStringArray("area", "fruites")] +z_index = -8 +position = Vector2(14565, 140) +script = ExtResource("11_ghh0o") +area = NodePath("Area2D") +fruites = NodePath("Fruits") + +[node name="Area2D" type="Area2D" parent="FruitShrubs4"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="FruitShrubs4/Area2D"] +shape = SubResource("RectangleShape2D_7gyb1") + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs4"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(-43, 12) +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs4"] +position = Vector2(-25, -6) +rotation = -0.222303 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs4"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(13, 8) +rotation = 0.125406 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs4"] +position = Vector2(67, 5) +rotation = 0.255823 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Fruits" type="Node2D" parent="FruitShrubs4"] + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs4/Fruits"] +position = Vector2(-52, -6) +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs4/Fruits/Sprite2D"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs4/Fruits"] +position = Vector2(-15, 4) +rotation = -0.402488 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs4/Fruits/Sprite2D2"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs4/Fruits"] +position = Vector2(33, -3) +rotation = 0.199355 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs4/Fruits/Sprite2D3"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs4/Fruits"] +position = Vector2(76, 13) +rotation = 0.0536584 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs4/Fruits/Sprite2D4"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D5" type="Sprite2D" parent="FruitShrubs4/Fruits"] +position = Vector2(74, -16) +rotation = -0.114686 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs4/Fruits/Sprite2D5"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="FruitShrubs5" type="Node2D" parent="." node_paths=PackedStringArray("area", "fruites")] +z_index = -8 +position = Vector2(14776, 127) +scale = Vector2(1.33079, 1.33079) +script = ExtResource("11_ghh0o") +area = NodePath("Area2D") +fruites = NodePath("Fruits") + +[node name="Area2D" type="Area2D" parent="FruitShrubs5"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="FruitShrubs5/Area2D"] +shape = SubResource("RectangleShape2D_7gyb1") + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs5"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(-43, 12) +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs5"] +position = Vector2(-25, -6) +rotation = -0.222303 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs5"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(13, 8) +rotation = 0.125406 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs5"] +position = Vector2(67, 5) +rotation = 0.255823 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Fruits" type="Node2D" parent="FruitShrubs5"] + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs5/Fruits"] +position = Vector2(-52, -6) +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs5/Fruits/Sprite2D"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs5/Fruits"] +position = Vector2(-15, 4) +rotation = -0.402488 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs5/Fruits/Sprite2D2"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs5/Fruits"] +position = Vector2(33, -3) +rotation = 0.199355 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs5/Fruits/Sprite2D3"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs5/Fruits"] +position = Vector2(76, 13) +rotation = 0.0536584 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs5/Fruits/Sprite2D4"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D5" type="Sprite2D" parent="FruitShrubs5/Fruits"] +position = Vector2(74, -16) +rotation = -0.114686 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs5/Fruits/Sprite2D5"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="FruitShrubs2" type="Node2D" parent="." node_paths=PackedStringArray("area", "fruites")] +z_index = -8 +position = Vector2(9781, 138) +scale = Vector2(1.18926, 1.18926) +script = ExtResource("11_ghh0o") +area = NodePath("Area2D") +fruites = NodePath("Fruits") + +[node name="Area2D" type="Area2D" parent="FruitShrubs2"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="FruitShrubs2/Area2D"] +shape = SubResource("RectangleShape2D_7gyb1") + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs2"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(-43, 12) +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs2"] +position = Vector2(-25, -6) +rotation = -0.222303 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs2"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(13, 8) +rotation = 0.125406 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs2"] +position = Vector2(67, 5) +rotation = 0.255823 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Fruits" type="Node2D" parent="FruitShrubs2"] + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs2/Fruits"] +position = Vector2(-52, -6) +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs2/Fruits/Sprite2D"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs2/Fruits"] +position = Vector2(-15, 4) +rotation = -0.402488 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs2/Fruits/Sprite2D2"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs2/Fruits"] +position = Vector2(33, -3) +rotation = 0.199355 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs2/Fruits/Sprite2D3"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs2/Fruits"] +position = Vector2(76, 13) +rotation = 0.0536584 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs2/Fruits/Sprite2D4"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D5" type="Sprite2D" parent="FruitShrubs2/Fruits"] +position = Vector2(74, -16) +rotation = -0.114686 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs2/Fruits/Sprite2D5"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="FruitShrubs3" type="Node2D" parent="." node_paths=PackedStringArray("area", "fruites")] +z_index = -8 +position = Vector2(10199, 138) +scale = Vector2(1.11348, 1.11348) +script = ExtResource("11_ghh0o") +area = NodePath("Area2D") +fruites = NodePath("Fruits") + +[node name="Area2D" type="Area2D" parent="FruitShrubs3"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="FruitShrubs3/Area2D"] +shape = SubResource("RectangleShape2D_7gyb1") + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs3"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(-43, 12) +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs3"] +position = Vector2(-25, -6) +rotation = -0.222303 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs3"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(13, 8) +rotation = 0.125406 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs3"] +position = Vector2(67, 5) +rotation = 0.255823 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Fruits" type="Node2D" parent="FruitShrubs3"] + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs3/Fruits"] +position = Vector2(-52, -6) +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs3/Fruits/Sprite2D"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs3/Fruits"] +position = Vector2(-15, 4) +rotation = -0.402488 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs3/Fruits/Sprite2D2"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs3/Fruits"] +position = Vector2(33, -3) +rotation = 0.199355 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs3/Fruits/Sprite2D3"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs3/Fruits"] +position = Vector2(76, 13) +rotation = 0.0536584 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs3/Fruits/Sprite2D4"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D5" type="Sprite2D" parent="FruitShrubs3/Fruits"] +position = Vector2(74, -16) +rotation = -0.114686 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs3/Fruits/Sprite2D5"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="FruitShrubs6" type="Node2D" parent="." node_paths=PackedStringArray("area", "fruites")] +z_index = -8 +position = Vector2(15647, 138) +scale = Vector2(1.11348, 1.11348) +script = ExtResource("11_ghh0o") +area = NodePath("Area2D") +fruites = NodePath("Fruits") + +[node name="Area2D" type="Area2D" parent="FruitShrubs6"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="FruitShrubs6/Area2D"] +shape = SubResource("RectangleShape2D_7gyb1") + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs6"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(-43, 12) +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs6"] +position = Vector2(-25, -6) +rotation = -0.222303 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs6"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(13, 8) +rotation = 0.125406 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs6"] +position = Vector2(67, 5) +rotation = 0.255823 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Fruits" type="Node2D" parent="FruitShrubs6"] + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs6/Fruits"] +position = Vector2(-52, -6) +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs6/Fruits/Sprite2D"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs6/Fruits"] +position = Vector2(-15, 4) +rotation = -0.402488 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs6/Fruits/Sprite2D2"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs6/Fruits"] +position = Vector2(33, -3) +rotation = 0.199355 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs6/Fruits/Sprite2D3"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs6/Fruits"] +position = Vector2(76, 13) +rotation = 0.0536584 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs6/Fruits/Sprite2D4"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D5" type="Sprite2D" parent="FruitShrubs6/Fruits"] +position = Vector2(74, -16) +rotation = -0.114686 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs6/Fruits/Sprite2D5"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="FruitShrubs7" type="Node2D" parent="." node_paths=PackedStringArray("area", "fruites")] +z_index = -8 +position = Vector2(15846, 138) +scale = Vector2(1.11348, 1.11348) +script = ExtResource("11_ghh0o") +area = NodePath("Area2D") +fruites = NodePath("Fruits") + +[node name="Area2D" type="Area2D" parent="FruitShrubs7"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="FruitShrubs7/Area2D"] +shape = SubResource("RectangleShape2D_7gyb1") + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs7"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(-43, 12) +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs7"] +position = Vector2(-25, -6) +rotation = -0.222303 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs7"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(13, 8) +rotation = 0.125406 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs7"] +position = Vector2(67, 5) +rotation = 0.255823 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Fruits" type="Node2D" parent="FruitShrubs7"] + +[node name="Sprite2D" type="Sprite2D" parent="FruitShrubs7/Fruits"] +position = Vector2(-52, -6) +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs7/Fruits/Sprite2D"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D2" type="Sprite2D" parent="FruitShrubs7/Fruits"] +position = Vector2(-15, 4) +rotation = -0.402488 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs7/Fruits/Sprite2D2"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D3" type="Sprite2D" parent="FruitShrubs7/Fruits"] +position = Vector2(33, -3) +rotation = 0.199355 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs7/Fruits/Sprite2D3"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D4" type="Sprite2D" parent="FruitShrubs7/Fruits"] +position = Vector2(76, 13) +rotation = 0.0536584 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs7/Fruits/Sprite2D4"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="Sprite2D5" type="Sprite2D" parent="FruitShrubs7/Fruits"] +position = Vector2(74, -16) +rotation = -0.114686 +scale = Vector2(0.694841, 20.8225) +texture = SubResource("GradientTexture1D_wj6md") + +[node name="Sprite2D6" type="Sprite2D" parent="FruitShrubs7/Fruits/Sprite2D5"] +position = Vector2(4.31753, -0.288149) +scale = Vector2(0.621932, 0.235467) +texture = SubResource("GradientTexture1D_xu7n4") + +[node name="SpikyShrubs" type="Node2D" parent="."] +z_index = -8 +position = Vector2(9974, 125) +scale = Vector2(1.19511, 1.19511) +script = ExtResource("12_1cx1b") + +[node name="Area2D" type="Area2D" parent="SpikyShrubs"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpikyShrubs/Area2D"] +shape = SubResource("RectangleShape2D_7gyb1") + +[node name="Sprite2D" type="Sprite2D" parent="SpikyShrubs"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(-43, 12) +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D2" type="Sprite2D" parent="SpikyShrubs"] +position = Vector2(-25, -6) +rotation = -0.222303 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D3" type="Sprite2D" parent="SpikyShrubs"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(13, 8) +rotation = 0.125406 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D4" type="Sprite2D" parent="SpikyShrubs"] +position = Vector2(67, 5) +rotation = 0.255823 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Spikes" type="Node2D" parent="SpikyShrubs"] +modulate = Color(0.59, 0.466297, 0.3894, 1) + +[node name="Isostri" type="Sprite2D" parent="SpikyShrubs/Spikes"] +position = Vector2(-53.5514, -10.8776) +rotation = -0.805205 +scale = Vector2(-0.00863603, 0.0281921) +texture = ExtResource("11_mpo1i") + +[node name="Isostri2" type="Sprite2D" parent="SpikyShrubs/Spikes"] +position = Vector2(-0.836754, -5.02044) +rotation = 0.414019 +scale = Vector2(-0.00863603, 0.0281921) +texture = ExtResource("11_mpo1i") + +[node name="Isostri3" type="Sprite2D" parent="SpikyShrubs/Spikes"] +position = Vector2(-32.6329, 11.7144) +rotation = -2.25029 +scale = Vector2(-0.00863603, 0.0281921) +texture = ExtResource("11_mpo1i") + +[node name="Isostri4" type="Sprite2D" parent="SpikyShrubs/Spikes"] +position = Vector2(49.3677, 2.51022) +rotation = -0.369811 +scale = Vector2(-0.00548368, 0.0179013) +texture = ExtResource("11_mpo1i") + +[node name="Isostri5" type="Sprite2D" parent="SpikyShrubs/Spikes"] +position = Vector2(85.3475, -14.2246) +rotation = 0.696846 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri6" type="Sprite2D" parent="SpikyShrubs/Spikes"] +position = Vector2(107.103, 18.4083) +rotation = 1.95425 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri7" type="Sprite2D" parent="SpikyShrubs/Spikes"] +position = Vector2(76.1433, 11.7144) +rotation = 1.95425 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri8" type="Sprite2D" parent="SpikyShrubs/Spikes"] +position = Vector2(15.0613, -29.2859) +rotation = 1.95425 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri9" type="Sprite2D" parent="SpikyShrubs/Spikes"] +position = Vector2(46.8574, -24.2655) +rotation = 2.21543 +scale = Vector2(-0.00700411, -0.0211887) +texture = ExtResource("11_mpo1i") + +[node name="Isostri10" type="Sprite2D" parent="SpikyShrubs/Spikes"] +position = Vector2(20.0817, 19.245) +rotation = 2.21543 +scale = Vector2(-0.00700411, -0.0211887) +texture = ExtResource("11_mpo1i") + +[node name="Timer" type="Timer" parent="SpikyShrubs"] + +[node name="SpikyShrubs2" type="Node2D" parent="."] +z_index = -8 +position = Vector2(15012, 125) +scale = Vector2(1.19511, 1.19511) +script = ExtResource("12_1cx1b") + +[node name="Area2D" type="Area2D" parent="SpikyShrubs2"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpikyShrubs2/Area2D"] +shape = SubResource("RectangleShape2D_7gyb1") + +[node name="Sprite2D" type="Sprite2D" parent="SpikyShrubs2"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(-43, 12) +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D2" type="Sprite2D" parent="SpikyShrubs2"] +position = Vector2(-25, -6) +rotation = -0.222303 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D3" type="Sprite2D" parent="SpikyShrubs2"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(13, 8) +rotation = 0.125406 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D4" type="Sprite2D" parent="SpikyShrubs2"] +position = Vector2(67, 5) +rotation = 0.255823 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Spikes" type="Node2D" parent="SpikyShrubs2"] +modulate = Color(0.59, 0.466297, 0.3894, 1) + +[node name="Isostri" type="Sprite2D" parent="SpikyShrubs2/Spikes"] +position = Vector2(-53.5514, -10.8776) +rotation = -0.805205 +scale = Vector2(-0.00863603, 0.0281921) +texture = ExtResource("11_mpo1i") + +[node name="Isostri2" type="Sprite2D" parent="SpikyShrubs2/Spikes"] +position = Vector2(-0.836754, -5.02044) +rotation = 0.414019 +scale = Vector2(-0.00863603, 0.0281921) +texture = ExtResource("11_mpo1i") + +[node name="Isostri3" type="Sprite2D" parent="SpikyShrubs2/Spikes"] +position = Vector2(-32.6329, 11.7144) +rotation = -2.25029 +scale = Vector2(-0.00863603, 0.0281921) +texture = ExtResource("11_mpo1i") + +[node name="Isostri4" type="Sprite2D" parent="SpikyShrubs2/Spikes"] +position = Vector2(49.3677, 2.51022) +rotation = -0.369811 +scale = Vector2(-0.00548368, 0.0179013) +texture = ExtResource("11_mpo1i") + +[node name="Isostri5" type="Sprite2D" parent="SpikyShrubs2/Spikes"] +position = Vector2(85.3475, -14.2246) +rotation = 0.696846 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri6" type="Sprite2D" parent="SpikyShrubs2/Spikes"] +position = Vector2(107.103, 18.4083) +rotation = 1.95425 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri7" type="Sprite2D" parent="SpikyShrubs2/Spikes"] +position = Vector2(76.1433, 11.7144) +rotation = 1.95425 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri8" type="Sprite2D" parent="SpikyShrubs2/Spikes"] +position = Vector2(15.0613, -29.2859) +rotation = 1.95425 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri9" type="Sprite2D" parent="SpikyShrubs2/Spikes"] +position = Vector2(46.8574, -24.2655) +rotation = 2.21543 +scale = Vector2(-0.00700411, -0.0211887) +texture = ExtResource("11_mpo1i") + +[node name="Isostri10" type="Sprite2D" parent="SpikyShrubs2/Spikes"] +position = Vector2(20.0817, 19.245) +rotation = 2.21543 +scale = Vector2(-0.00700411, -0.0211887) +texture = ExtResource("11_mpo1i") + +[node name="Timer" type="Timer" parent="SpikyShrubs2"] + +[node name="SpikyShrubs3" type="Node2D" parent="."] +z_index = -8 +position = Vector2(15235, 125) +scale = Vector2(1.40631, 1.40631) +script = ExtResource("12_1cx1b") + +[node name="Area2D" type="Area2D" parent="SpikyShrubs3"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpikyShrubs3/Area2D"] +shape = SubResource("RectangleShape2D_7gyb1") + +[node name="Sprite2D" type="Sprite2D" parent="SpikyShrubs3"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(-43, 12) +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D2" type="Sprite2D" parent="SpikyShrubs3"] +position = Vector2(-25, -6) +rotation = -0.222303 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D3" type="Sprite2D" parent="SpikyShrubs3"] +modulate = Color(0.853917, 0.853917, 0.853917, 1) +position = Vector2(13, 8) +rotation = 0.125406 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Sprite2D4" type="Sprite2D" parent="SpikyShrubs3"] +position = Vector2(67, 5) +rotation = 0.255823 +scale = Vector2(2.72, 55.07) +texture = SubResource("GradientTexture1D_13oc8") + +[node name="Spikes" type="Node2D" parent="SpikyShrubs3"] +modulate = Color(0.59, 0.466297, 0.3894, 1) + +[node name="Isostri" type="Sprite2D" parent="SpikyShrubs3/Spikes"] +position = Vector2(-53.5514, -10.8776) +rotation = -0.805205 +scale = Vector2(-0.00863603, 0.0281921) +texture = ExtResource("11_mpo1i") + +[node name="Isostri2" type="Sprite2D" parent="SpikyShrubs3/Spikes"] +position = Vector2(-0.836754, -5.02044) +rotation = 0.414019 +scale = Vector2(-0.00863603, 0.0281921) +texture = ExtResource("11_mpo1i") + +[node name="Isostri3" type="Sprite2D" parent="SpikyShrubs3/Spikes"] +position = Vector2(-32.6329, 11.7144) +rotation = -2.25029 +scale = Vector2(-0.00863603, 0.0281921) +texture = ExtResource("11_mpo1i") + +[node name="Isostri4" type="Sprite2D" parent="SpikyShrubs3/Spikes"] +position = Vector2(49.3677, 2.51022) +rotation = -0.369811 +scale = Vector2(-0.00548368, 0.0179013) +texture = ExtResource("11_mpo1i") + +[node name="Isostri5" type="Sprite2D" parent="SpikyShrubs3/Spikes"] +position = Vector2(85.3475, -14.2246) +rotation = 0.696846 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri6" type="Sprite2D" parent="SpikyShrubs3/Spikes"] +position = Vector2(107.103, 18.4083) +rotation = 1.95425 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri7" type="Sprite2D" parent="SpikyShrubs3/Spikes"] +position = Vector2(76.1433, 11.7144) +rotation = 1.95425 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri8" type="Sprite2D" parent="SpikyShrubs3/Spikes"] +position = Vector2(15.0613, -29.2859) +rotation = 1.95425 +scale = Vector2(-0.00588088, 0.0168822) +texture = ExtResource("11_mpo1i") + +[node name="Isostri9" type="Sprite2D" parent="SpikyShrubs3/Spikes"] +position = Vector2(46.8574, -24.2655) +rotation = 2.21543 +scale = Vector2(-0.00700411, -0.0211887) +texture = ExtResource("11_mpo1i") + +[node name="Isostri10" type="Sprite2D" parent="SpikyShrubs3/Spikes"] +position = Vector2(20.0817, 19.245) +rotation = 2.21543 +scale = Vector2(-0.00700411, -0.0211887) +texture = ExtResource("11_mpo1i") + +[node name="Timer" type="Timer" parent="SpikyShrubs3"] + +[node name="Tree4" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(2091, 505) +rotation = -3.14159 +scale = Vector2(1.129, -1.129) + +[node name="Tree5" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(3151, 520) +rotation = -3.14159 +scale = Vector2(1.50669, -1.50669) + +[node name="Tree6" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(4305, 226) +scale = Vector2(1.507, 1.507) + +[node name="Tree7" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.619489, 0.619489, 0.619489, 1) +z_index = -20 +position = Vector2(3770, 239) +scale = Vector2(1.507, 1.507) + +[node name="Tree8" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.619489, 0.619489, 0.619489, 1) +z_index = -20 +position = Vector2(1741, 500) +scale = Vector2(0.849388, 0.849388) + +[node name="Tree9" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.619489, 0.619489, 0.619489, 1) +z_index = -20 +position = Vector2(5989, 175) +scale = Vector2(0.849388, 0.849388) + +[node name="Tree10" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.619489, 0.619489, 0.619489, 1) +z_index = -20 +position = Vector2(6983, 175) +scale = Vector2(0.849388, 0.849388) + +[node name="Tree11" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(7402, 181) +scale = Vector2(1.01681, 1.01681) + +[node name="Tree12" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(6390, 186) +rotation = -3.14159 +scale = Vector2(1.017, -1.017) + +[node name="Tree13" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(9329, 174) + +[node name="BGTree4" parent="." instance=ExtResource("3_0nkm3")] +position = Vector2(9869, 253) + +[node name="Trunk6" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(10474, 180) +scale = Vector2(1.37399, 1.44845) + +[node name="Trunk7" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(11880, 303) +scale = Vector2(1.27508, 1.16225) + +[node name="Tree14" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(10504, 165) + +[node name="BGTree5" parent="." instance=ExtResource("3_0nkm3")] +position = Vector2(11071, 341) + +[node name="Torch4" parent="." instance=ExtResource("12_a3mg4")] +position = Vector2(12263, 177) + +[node name="Torch5" parent="." instance=ExtResource("12_a3mg4")] +position = Vector2(12907, 186) + +[node name="Torch6" parent="." instance=ExtResource("12_a3mg4")] +position = Vector2(14258, -124) +rotation = -0.539629 + +[node name="Torch7" parent="." instance=ExtResource("12_a3mg4")] +position = Vector2(11706, -106) +rotation = 0.4903 + +[node name="Torch8" parent="." instance=ExtResource("12_a3mg4")] +position = Vector2(13771, 175) + +[node name="Hut" type="Node2D" parent="."] +z_index = -13 +position = Vector2(12041, 204) + +[node name="Sprite2D" type="Sprite2D" parent="Hut"] +position = Vector2(1, -133) +scale = Vector2(1.07402, 222.21) +texture = SubResource("GradientTexture1D_pm05x") + +[node name="Sprite2D2" type="Sprite2D" parent="Hut"] +z_index = 1 +position = Vector2(63, -84) +scale = Vector2(0.263142, 101.824) +texture = SubResource("GradientTexture1D_7gyb1") + +[node name="Isostri" type="Sprite2D" parent="Hut"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(-132, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri2" type="Sprite2D" parent="Hut"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(-44, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri3" type="Sprite2D" parent="Hut"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(45, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri4" type="Sprite2D" parent="Hut"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(133, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri5" type="Sprite2D" parent="Hut"] +modulate = Color(0.241736, 0.15993, 0.0921161, 1) +position = Vector2(-87.873, -309.353) +rotation = 3.14159 +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri6" type="Sprite2D" parent="Hut"] +modulate = Color(0.241736, 0.15993, 0.0921161, 1) +position = Vector2(0.497, -309.353) +rotation = 3.14159 +scale = Vector2(0.088, 0.167) +texture = ExtResource("11_mpo1i") + +[node name="Isostri7" type="Sprite2D" parent="Hut"] +modulate = Color(0.241736, 0.15993, 0.0921161, 1) +position = Vector2(89.153, -309.353) +rotation = 3.14159 +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Hut2" type="Node2D" parent="."] +z_index = -13 +position = Vector2(13109, 195) + +[node name="Sprite2D" type="Sprite2D" parent="Hut2"] +position = Vector2(1, -133) +scale = Vector2(1.07402, 222.21) +texture = SubResource("GradientTexture1D_pm05x") + +[node name="Sprite2D2" type="Sprite2D" parent="Hut2"] +z_index = 1 +position = Vector2(63, -84) +scale = Vector2(0.263142, 101.824) +texture = SubResource("GradientTexture1D_7gyb1") + +[node name="Isostri" type="Sprite2D" parent="Hut2"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(-132, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri2" type="Sprite2D" parent="Hut2"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(-44, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri3" type="Sprite2D" parent="Hut2"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(45, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri4" type="Sprite2D" parent="Hut2"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(133, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri5" type="Sprite2D" parent="Hut2"] +modulate = Color(0.241736, 0.15993, 0.0921161, 1) +position = Vector2(-87.873, -309.353) +rotation = 3.14159 +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri6" type="Sprite2D" parent="Hut2"] +modulate = Color(0.241736, 0.15993, 0.0921161, 1) +position = Vector2(0.497, -309.353) +rotation = 3.14159 +scale = Vector2(0.088, 0.167) +texture = ExtResource("11_mpo1i") + +[node name="Isostri7" type="Sprite2D" parent="Hut2"] +modulate = Color(0.241736, 0.15993, 0.0921161, 1) +position = Vector2(89.153, -309.353) +rotation = 3.14159 +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Hut3" type="Node2D" parent="."] +z_index = -13 +position = Vector2(13578, 199) +scale = Vector2(-1, 1) + +[node name="Sprite2D" type="Sprite2D" parent="Hut3"] +position = Vector2(1, -133) +scale = Vector2(1.07402, 222.21) +texture = SubResource("GradientTexture1D_pm05x") + +[node name="Sprite2D2" type="Sprite2D" parent="Hut3"] +z_index = 1 +position = Vector2(63, -84) +scale = Vector2(0.263142, 101.824) +texture = SubResource("GradientTexture1D_7gyb1") + +[node name="Isostri" type="Sprite2D" parent="Hut3"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(-132, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri2" type="Sprite2D" parent="Hut3"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(-44, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri3" type="Sprite2D" parent="Hut3"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(45, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri4" type="Sprite2D" parent="Hut3"] +modulate = Color(0.36, 0.24864, 0.1512, 1) +position = Vector2(133, -309) +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri5" type="Sprite2D" parent="Hut3"] +modulate = Color(0.241736, 0.15993, 0.0921161, 1) +position = Vector2(-87.873, -309.353) +rotation = 3.14159 +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Isostri6" type="Sprite2D" parent="Hut3"] +modulate = Color(0.241736, 0.15993, 0.0921161, 1) +position = Vector2(0.497, -309.353) +rotation = 3.14159 +scale = Vector2(0.088, 0.167) +texture = ExtResource("11_mpo1i") + +[node name="Isostri7" type="Sprite2D" parent="Hut3"] +modulate = Color(0.241736, 0.15993, 0.0921161, 1) +position = Vector2(89.153, -309.353) +rotation = 3.14159 +scale = Vector2(0.0864196, 0.163373) +texture = ExtResource("11_mpo1i") + +[node name="Tree17" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(15468, 184) + +[node name="Tree18" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(17031, 258) + +[node name="Tree19" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(16400, 186) + +[node name="Tree20" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(17859, 181) + +[node name="Tree21" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.737193, 0.737193, 0.737193, 1) +z_index = -10 +position = Vector2(15015, 158) +scale = Vector2(0.771545, 0.771545) + +[node name="Tree22" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.737193, 0.737193, 0.737193, 1) +z_index = -10 +position = Vector2(10939, 194) +scale = Vector2(0.946964, 0.946964) + +[node name="Tree23" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.737193, 0.737193, 0.737193, 1) +z_index = -10 +position = Vector2(18316, 178) +scale = Vector2(0.946964, 0.946964) + +[node name="BGTree6" parent="." instance=ExtResource("3_0nkm3")] +position = Vector2(16616, 254) + +[node name="BGTree7" parent="." instance=ExtResource("3_0nkm3")] +position = Vector2(13356, 229) + +[node name="Trunk8" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(14226, 133) +scale = Vector2(1.69343, 1.69343) + +[node name="Trunk9" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(17445, 178) + +[node name="Trunk10" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(15605, 158) +scale = Vector2(1.63939, 1.63939) + +[node name="BGTree8" parent="." instance=ExtResource("3_0nkm3")] +position = Vector2(18878, 305) +scale = Vector2(-0.96201, 1.03265) + +[node name="Grappleables10" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(8773, -190) + +[node name="Grappleables11" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(6731, -12) + +[node name="Grappleables12" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(6743, 487) + +[node name="Grappleables13" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(6746, 835) + +[node name="Grappleables14" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(21693, -623) + +[node name="Grappleables2" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(13971, -98) + +[node name="Grappleables3" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(13345, -101) + +[node name="Grappleables4" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(12435, -79) + +[node name="Tree24" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(23021, -340) + +[node name="Tree25" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(23780, -358) +scale = Vector2(1.47322, 1.47322) + +[node name="Tree30" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.597176, 0.597176, 0.597176, 1) +z_index = -5 +position = Vector2(24795, -358) +scale = Vector2(1.47322, 1.47322) + +[node name="Tree32" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.597176, 0.597176, 0.597176, 1) +z_index = -5 +position = Vector2(24032, -358) +scale = Vector2(1.78983, 1.78983) + +[node name="Tree31" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.597176, 0.597176, 0.597176, 1) +z_index = -5 +position = Vector2(26190, -335) +scale = Vector2(1.47322, 1.47322) + +[node name="Tree26" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(24379, -345) +scale = Vector2(1.85194, 1.85194) + +[node name="Tree27" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(25139, -345) +scale = Vector2(1.85194, 1.85194) + +[node name="Tree28" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(25733, -345) +scale = Vector2(-1.954, 1.954) + +[node name="Tree29" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(26625, -345) +scale = Vector2(1.85194, 1.85194) + +[node name="Tree33" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(27215, -174) +scale = Vector2(2.31395, 2.31395) + +[node name="Tree34" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.91664, 0.91664, 0.91664, 1) +position = Vector2(27899, -179) +rotation = 0.0455599 +scale = Vector2(-2.314, 2.314) + +[node name="Tree39" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.722554, 0.722555, 0.722554, 1) +z_index = -5 +position = Vector2(27360, -252) +rotation = 0.0455599 +scale = Vector2(-2.56059, 2.56059) + +[node name="Tree40" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.722554, 0.722555, 0.722554, 1) +z_index = -5 +position = Vector2(28622, -296) +rotation = 0.0455599 +scale = Vector2(2.424, 2.424) + +[node name="Tree41" parent="." instance=ExtResource("1_dhllp")] +modulate = Color(0.722554, 0.722555, 0.722554, 1) +z_index = -5 +position = Vector2(29862, -674) +rotation = 0.0455599 +scale = Vector2(-2.56059, 2.56059) + +[node name="Tree35" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(28759, -179) +rotation = 0.0455599 +scale = Vector2(-2.314, 2.314) + +[node name="Tree36" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(29418, -372) +rotation = 0.0455599 +scale = Vector2(-2.314, 2.314) + +[node name="Tree37" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(29839, -568) +rotation = 0.0455599 +scale = Vector2(-2.314, 2.314) + +[node name="Tree38" parent="." instance=ExtResource("1_dhllp")] +position = Vector2(30272, -716) +rotation = 0.0455599 +scale = Vector2(-2.314, 2.314) + +[node name="Trunk11" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(23416, -332) +scale = Vector2(2.19201, 2.19201) + +[node name="BGTree9" parent="." instance=ExtResource("3_0nkm3")] +position = Vector2(22203, -325) +scale = Vector2(1.05934, 1.05934) + +[node name="Trunk12" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(21055, -283) +scale = Vector2(1.10215, 1.10215) + +[node name="Trunk13" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(20219, -153) +scale = Vector2(1.7095, 1.7095) + +[node name="BGTree10" parent="." instance=ExtResource("3_0nkm3")] +position = Vector2(20729, -300) + +[node name="Trunk14" parent="." instance=ExtResource("2_y0prk")] +position = Vector2(19622, 22) + +[node name="Grappleables5" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(26182, -728) + +[node name="Grappleables6" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(26198, -1522) + +[node name="StaticBody2D" type="StaticBody2D" parent="."] +position = Vector2(26361, -1183) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] +position = Vector2(1765, -10) +shape = SubResource("RectangleShape2D_pytih") + +[node name="StaticBody2D5" type="StaticBody2D" parent="."] +position = Vector2(28980, -1308) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D5"] +position = Vector2(863.125, -10) +shape = SubResource("RectangleShape2D_c7kkd") + +[node name="StaticBody2D6" type="StaticBody2D" parent="."] +position = Vector2(29389, -1425) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D6"] +position = Vector2(667.125, -10) +shape = SubResource("RectangleShape2D_q453w") + +[node name="StaticBody2D7" type="StaticBody2D" parent="."] +position = Vector2(29603, -1611) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D7"] +position = Vector2(543.125, -10) +shape = SubResource("RectangleShape2D_7cjqv") + +[node name="StaticBody2D8" type="StaticBody2D" parent="."] +position = Vector2(30022, -1735) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D8"] +position = Vector2(347.625, -10) +shape = SubResource("RectangleShape2D_l1gpo") + +[node name="StaticBody2D2" type="StaticBody2D" parent="."] +position = Vector2(24677, -1155) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"] +position = Vector2(645.625, -10) +shape = SubResource("RectangleShape2D_jqbiv") + +[node name="StaticBody2D3" type="StaticBody2D" parent="."] +position = Vector2(24677, -1155) +rotation = -1.57968 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D3"] +position = Vector2(645.625, -10) +shape = SubResource("RectangleShape2D_jqbiv") + +[node name="StaticBody2D4" type="StaticBody2D" parent="."] +position = Vector2(27199, 160) +rotation = -1.57968 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D4"] +position = Vector2(645.625, -10) +shape = SubResource("RectangleShape2D_jqbiv") + +[node name="Grappleables7" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(26196, -1083) + +[node name="Grappleables8" parent="." instance=ExtResource("3_1cx1b")] +position = Vector2(31054, -2042) + +[node name="DeathArea" parent="." instance=ExtResource("16_wj6md")] +position = Vector2(8409, 1559) + +[node name="DeathArea2" parent="." instance=ExtResource("16_wj6md")] +position = Vector2(21710, 941) + +[node name="DeathArea3" parent="." instance=ExtResource("16_wj6md")] +position = Vector2(31137, -1125) + +[node name="Area2D4" type="Area2D" parent="."] +position = Vector2(-1412, 90) +scale = Vector2(4.51682, 2.37129) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("17_xu7n4") +set = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D4"] +position = Vector2(226, 29.5) +shape = SubResource("RectangleShape2D_7am6v") + +[connection signal="body_entered" from="Mud" to="Mud" method="_on_body_entered"] +[connection signal="body_exited" from="Mud" to="Mud" method="_on_body_exited"] +[connection signal="body_entered" from="Mud2" to="Mud2" method="_on_body_entered"] +[connection signal="body_exited" from="Mud2" to="Mud2" method="_on_body_exited"] +[connection signal="body_entered" from="Mud3" to="Mud3" method="_on_body_entered"] +[connection signal="body_exited" from="Mud3" to="Mud3" method="_on_body_exited"] +[connection signal="body_entered" from="SpawnArea2D" to="SpawnArea2D" method="_on_body_entered"] +[connection signal="body_entered" from="SpawnArea2D2" to="SpawnArea2D2" method="_on_body_entered"] +[connection signal="body_entered" from="FruitShrubs/Area2D" to="FruitShrubs" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="FruitShrubs4/Area2D" to="FruitShrubs4" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="FruitShrubs5/Area2D" to="FruitShrubs5" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="FruitShrubs2/Area2D" to="FruitShrubs2" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="FruitShrubs3/Area2D" to="FruitShrubs3" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="FruitShrubs6/Area2D" to="FruitShrubs6" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="FruitShrubs7/Area2D" to="FruitShrubs7" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="SpikyShrubs/Area2D" to="SpikyShrubs" method="_on_area_2d_body_entered"] +[connection signal="body_exited" from="SpikyShrubs/Area2D" to="SpikyShrubs" method="_on_area_2d_body_exited"] +[connection signal="timeout" from="SpikyShrubs/Timer" to="SpikyShrubs" method="_on_timer_timeout"] +[connection signal="body_entered" from="SpikyShrubs2/Area2D" to="SpikyShrubs2" method="_on_area_2d_body_entered"] +[connection signal="body_exited" from="SpikyShrubs2/Area2D" to="SpikyShrubs2" method="_on_area_2d_body_exited"] +[connection signal="timeout" from="SpikyShrubs2/Timer" to="SpikyShrubs2" method="_on_timer_timeout"] +[connection signal="body_entered" from="SpikyShrubs3/Area2D" to="SpikyShrubs3" method="_on_area_2d_body_entered"] +[connection signal="body_exited" from="SpikyShrubs3/Area2D" to="SpikyShrubs3" method="_on_area_2d_body_exited"] +[connection signal="timeout" from="SpikyShrubs3/Timer" to="SpikyShrubs3" method="_on_timer_timeout"] +[connection signal="body_entered" from="Area2D4" to="Area2D4" method="_on_body_entered"] diff --git a/Levels/2.tscn b/Levels/2.tscn new file mode 100644 index 0000000..628d9df --- /dev/null +++ b/Levels/2.tscn @@ -0,0 +1,2358 @@ +[gd_scene load_steps=75 format=3 uid="uid://bjcbg2u84c1yg"] + +[ext_resource type="Texture2D" uid="uid://yfecq14wfrpc" path="res://Assets/Visuals/righttri.png" id="1_gbl37"] +[ext_resource type="PackedScene" uid="uid://b3ev1xafiwmib" path="res://Reusable Scenes/1/grappleables.tscn" id="2_o5i5b"] +[ext_resource type="Script" uid="uid://df037bypj74at" path="res://Scripts/Spawner.gd" id="3_1nm4f"] +[ext_resource type="PackedScene" uid="uid://711q12yjfsni" path="res://Reusable Scenes/death_area.tscn" id="4_y063p"] +[ext_resource type="PackedScene" uid="uid://b8x6g2np2nf8j" path="res://Reusable Scenes/2/enemy_club.tscn" id="5_1nm4f"] +[ext_resource type="Script" uid="uid://c5vuv87l6mm6w" path="res://Scripts/SpawnZone.gd" id="5_qpttu"] +[ext_resource type="PackedScene" uid="uid://cmimydllnd6ny" path="res://Reusable Scenes/torch.tscn" id="5_txyub"] +[ext_resource type="PackedScene" uid="uid://kqrot8twq6bc" path="res://Reusable Scenes/2/enemy_bow.tscn" id="8_1nm4f"] +[ext_resource type="Script" uid="uid://cl2xrq3y86cer" path="res://Scripts/Level Specific/1FruitSrhubs.gd" id="9_itp6l"] +[ext_resource type="Script" uid="uid://c8n5trpan30g0" path="res://Scripts/Level Specific/Grappleable.gd" id="10_q3j63"] +[ext_resource type="Script" uid="uid://b5td7htthnvrn" path="res://Scripts/Level Specific/2CameraControls.gd" id="11_rbgk5"] +[ext_resource type="Texture2D" uid="uid://cdqedp2jcu1pj" path="res://Assets/Visuals/sign_dash.svg" id="12_6gx4j"] +[ext_resource type="PackedScene" uid="uid://b65q8eid6235v" path="res://Reusable Scenes/torch_spirit.tscn" id="13_orowq"] +[ext_resource type="PackedScene" uid="uid://b80iwxixd6rbp" path="res://Reusable Scenes/chest.tscn" id="14_dgfda"] +[ext_resource type="Texture2D" uid="uid://c0dq2s6qkym37" path="res://Assets/Visuals/sign_summit.png" id="15_a4vmt"] + +[sub_resource type="Gradient" id="Gradient_u05pv"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(1, 0.721569, 0.356863, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_mykqc"] +gradient = SubResource("Gradient_u05pv") + +[sub_resource type="Gradient" id="Gradient_udf8s"] +colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_ovrsl"] +gradient = SubResource("Gradient_udf8s") +fill_from = Vector2(0, 0.557692) +fill_to = Vector2(0, 0) + +[sub_resource type="Gradient" id="Gradient_34bfm"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.75, 0.3945, 0.1575, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ovrsl"] +gradient = SubResource("Gradient_34bfm") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_y063p"] +size = Vector2(690.25, 1184.25) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ovrsl"] +size = Vector2(2556, 2325) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_rbgk5"] +size = Vector2(591, 2322.25) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_dgfda"] +size = Vector2(883.5, 2325) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_orowq"] +size = Vector2(1273.5, 2325) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_v3vt8"] +size = Vector2(4385.5, 2325) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_34bfm"] +size = Vector2(372.5, 51.5) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_a4vmt"] +size = Vector2(515.877, 51.5) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_6gx4j"] +size = Vector2(433.591, 51.5) + +[sub_resource type="Gradient" id="Gradient_ovrsl"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.340677, 0.162246, 0.040356, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_hbaan"] +gradient = SubResource("Gradient_ovrsl") + +[sub_resource type="Gradient" id="Gradient_he5fp"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.98276, 0.794088, 0.68955, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_u05pv"] +gradient = SubResource("Gradient_he5fp") + +[sub_resource type="Gradient" id="Gradient_mykqc"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(1, 0.866667, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_hilkn"] +gradient = SubResource("Gradient_mykqc") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_hbaan"] +size = Vector2(5674, 2325) + +[sub_resource type="Gradient" id="Gradient_hilkn"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.396311, 0.568326, 1.92523e-07, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_5mxy1"] +gradient = SubResource("Gradient_hilkn") + +[sub_resource type="Gradient" id="Gradient_5mxy1"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(1, 0.471011, 0.790896, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_3lhg3"] +gradient = SubResource("Gradient_5mxy1") + +[sub_resource type="Gradient" id="Gradient_y063p"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.290196, 0.137255, 0.0352941, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_qpttu"] +gradient = SubResource("Gradient_y063p") +width = 36 + +[sub_resource type="Gradient" id="Gradient_txyub"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.482353, 0.254902, 0.101961, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_1nm4f"] +gradient = SubResource("Gradient_txyub") +width = 36 + +[sub_resource type="Gradient" id="Gradient_itp6l"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.854902, 0.741176, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_rbgk5"] +gradient = SubResource("Gradient_itp6l") +width = 36 + +[sub_resource type="Gradient" id="Gradient_6gx4j"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.770288, 0.433266, 0.212523, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_orowq"] +gradient = SubResource("Gradient_6gx4j") +width = 36 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_1nm4f"] +size = Vector2(61, 1064) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_itp6l"] +size = Vector2(48, 286) + +[sub_resource type="Gradient" id="Gradient_ono0i"] +offsets = PackedFloat32Array(0.983766) +colors = PackedColorArray(0.68, 0.37502, 0.2108, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_itp6l"] +gradient = SubResource("Gradient_ono0i") +width = 36 + +[sub_resource type="Animation" id="Animation_34bfm"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DoorWall:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-6, -437)] +} + +[sub_resource type="Animation" id="Animation_7pswh"] +resource_name = "door_close" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DoorWall:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 0.666667, 0.866667), +"transitions": PackedFloat32Array(3.03143, 0.615572, 2.2974, 2.2974), +"update": 0, +"values": [Vector2(-6, -437), Vector2(-6, -205), Vector2(-6, -238.21), Vector2(-6, -205)] +} + +[sub_resource type="Animation" id="Animation_hbaan"] +resource_name = "open" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DoorWall:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.8), +"transitions": PackedFloat32Array(0.329877, 0.329877), +"update": 0, +"values": [Vector2(-6, -205), Vector2(-6, -436)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_34bfm"] +_data = { +&"RESET": SubResource("Animation_34bfm"), +&"close": SubResource("Animation_7pswh"), +&"open": SubResource("Animation_hbaan") +} + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ono0i"] +size = Vector2(485, 663) + +[sub_resource type="Gradient" id="Gradient_qpttu"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.85, 0.397233, 0.272, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ono0i"] +gradient = SubResource("Gradient_qpttu") + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_y063p"] +gradient = SubResource("Gradient_qpttu") + +[sub_resource type="Gradient" id="Gradient_1nm4f"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.969033, 0.723679, 0.654333, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_q3j63"] +gradient = SubResource("Gradient_1nm4f") + +[sub_resource type="Gradient" id="Gradient_q3j63"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.816444, 0.691482, 0.5703, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_6gx4j"] +gradient = SubResource("Gradient_q3j63") + +[sub_resource type="Gradient" id="Gradient_gnif3"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_ai0p8"] +gradient = SubResource("Gradient_gnif3") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.9, 0.2) +metadata/_snap_enabled = true + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_q3j63"] +size = Vector2(65, 140) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_pytih"] +size = Vector2(50, 50) + +[sub_resource type="Gradient" id="Gradient_3f7s8"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.4564, 0.697331, 1, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_v4k01"] +gradient = SubResource("Gradient_3f7s8") +width = 50 + +[sub_resource type="Gradient" id="Gradient_rbgk5"] +offsets = PackedFloat32Array(0) +colors = PackedColorArray(0.62, 0.44888, 0.3348, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_dgfda"] +gradient = SubResource("Gradient_rbgk5") +width = 50 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_b4g0o"] +size = Vector2(241, 501) + +[node name="SCENE 2" type="Node2D"] + +[node name="Sky" type="Sprite2D" parent="."] +light_mask = 2 +z_index = -998 +position = Vector2(13999, -2629) +scale = Vector2(112.051, 7651) +texture = SubResource("GradientTexture1D_mykqc") + +[node name="Void" type="Sprite2D" parent="."] +position = Vector2(2487, -1114.5) +scale = Vector2(12.8438, 28.9844) +texture = SubResource("GradientTexture2D_ovrsl") + +[node name="Void2" type="Sprite2D" parent="."] +position = Vector2(9177, -1114.5) +scale = Vector2(20.5, 28.9844) +texture = SubResource("GradientTexture2D_ovrsl") + +[node name="Void3" type="Sprite2D" parent="."] +position = Vector2(15463, -1114.5) +scale = Vector2(159.25, 28.9844) +texture = SubResource("GradientTexture2D_ovrsl") + +[node name="Node2D" type="StaticBody2D" parent="."] +position = Vector2(-499, 124) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D"] +scale = Vector2(3.92395, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D"] +position = Vector2(-156.875, -1412) +shape = SubResource("RectangleShape2D_y063p") + +[node name="Node2D2" type="StaticBody2D" parent="."] +position = Vector2(25, -42) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D2"] +position = Vector2(776.868, 0) +scale = Vector2(9.99324, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D2"] +position = Vector2(777, -841.5) +shape = SubResource("RectangleShape2D_ovrsl") + +[node name="Grappleables9" parent="." instance=ExtResource("2_o5i5b")] +position = Vector2(8882, -2250) + +[node name="Grappleables10" parent="." instance=ExtResource("2_o5i5b")] +position = Vector2(9439, -2413) + +[node name="Node2D4" type="StaticBody2D" parent="."] +position = Vector2(10295, -42) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D4"] +position = Vector2(-206.634, 0) +scale = Vector2(2.30963, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D4"] +position = Vector2(-208.5, -841.5) +shape = SubResource("RectangleShape2D_rbgk5") + +[node name="Node2D7" type="StaticBody2D" parent="."] +position = Vector2(13048, -137.75) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D7"] +position = Vector2(-515, 0) +scale = Vector2(2.30963, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D7"] +position = Vector2(-514, -840.125) +shape = SubResource("RectangleShape2D_rbgk5") + +[node name="Node2D8" type="StaticBody2D" parent="."] +position = Vector2(14782, -404) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D8"] +position = Vector2(-367.317, 0) +scale = Vector2(3.4634, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D8"] +position = Vector2(-367.75, -841.5) +shape = SubResource("RectangleShape2D_dgfda") + +[node name="Node2D10" type="StaticBody2D" parent="."] +position = Vector2(16902, -273) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D10"] +position = Vector2(-367.317, 0) +scale = Vector2(3.4634, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D10"] +position = Vector2(-367.75, -841.5) +shape = SubResource("RectangleShape2D_dgfda") + +[node name="Node2D9" type="StaticBody2D" parent="."] +position = Vector2(15668, -135) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D9"] +position = Vector2(-173.817, 0) +scale = Vector2(4.97513, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D9"] +position = Vector2(-172.75, -841.5) +shape = SubResource("RectangleShape2D_orowq") + +[node name="Node2D11" type="StaticBody2D" parent="."] +position = Vector2(17725, -519) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D11"] +position = Vector2(-173.817, 0) +scale = Vector2(4.97513, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D11"] +position = Vector2(-172.75, -841.5) +shape = SubResource("RectangleShape2D_orowq") + +[node name="Node2D12" type="StaticBody2D" parent="."] +position = Vector2(20917, -519) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D12"] +position = Vector2(-173.817, 0) +scale = Vector2(4.97513, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D12"] +position = Vector2(-172.75, -841.5) +shape = SubResource("RectangleShape2D_orowq") + +[node name="Node2D14" type="StaticBody2D" parent="."] +z_index = 2 +position = Vector2(21710, -712) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D14"] +position = Vector2(1368.18, 0) +scale = Vector2(17.022, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D14"] +position = Vector2(1383.25, -841.5) +shape = SubResource("RectangleShape2D_v3vt8") + +[node name="Node2D3" type="StaticBody2D" parent="."] +position = Vector2(6727, -2331) +scale = Vector2(0.614373, 0.614373) +collision_layer = 32768 +collision_mask = 32768 + +[node name="Sprite2D" type="Sprite2D" parent="Node2D3"] +position = Vector2(11.0004, -1.99997) +scale = Vector2(1.39844, -54) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Node2D3"] +modulate = Color(0.74902, 0.392157, 0.152941, 1) +position = Vector2(-210, -2) +rotation = 3.14159 +scale = Vector2(0.0819283, -0.0528761) +texture = ExtResource("1_gbl37") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D3"] +position = Vector2(2, -2) +shape = SubResource("RectangleShape2D_34bfm") + +[node name="Node2D13" type="StaticBody2D" parent="."] +position = Vector2(19191, -2389) +scale = Vector2(1.26569, 1.26569) +collision_layer = 32768 +collision_mask = 32768 + +[node name="Sprite2D" type="Sprite2D" parent="Node2D13"] +position = Vector2(11.0004, -1.99997) +scale = Vector2(1.39844, -54) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Node2D13"] +modulate = Color(0.74902, 0.392157, 0.152941, 1) +position = Vector2(-210, -2) +rotation = 3.14159 +scale = Vector2(0.0819283, -0.0528761) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Node2D13"] +modulate = Color(0.74902, 0.392157, 0.152941, 1) +position = Vector2(231.494, -2) +rotation = 3.14159 +scale = Vector2(-0.082, -0.053) +texture = ExtResource("1_gbl37") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D13"] +position = Vector2(2, -2) +shape = SubResource("RectangleShape2D_a4vmt") + +[node name="Node2D6" type="StaticBody2D" parent="."] +position = Vector2(12435, -2102) +scale = Vector2(1.4918, 1.36878) +collision_layer = 32768 +collision_mask = 32768 + +[node name="Sprite2D" type="Sprite2D" parent="Node2D6"] +position = Vector2(11.0004, -1.99997) +scale = Vector2(1.39844, -54) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Node2D6"] +modulate = Color(0.74902, 0.392157, 0.152941, 1) +position = Vector2(-210, -2) +rotation = 3.14159 +scale = Vector2(0.0819283, -0.0528761) +texture = ExtResource("1_gbl37") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D6"] +position = Vector2(-28.5459, -2) +shape = SubResource("RectangleShape2D_6gx4j") + +[node name="Mesa" type="Node2D" parent="."] +z_index = -6 +position = Vector2(197, -2173) +scale = Vector2(0.535469, 0.607756) + +[node name="Sprite2D" type="Sprite2D" parent="Mesa"] +modulate = Color(0.753984, 0.753984, 0.753984, 1) +position = Vector2(-12.0002, 4.00003) +scale = Vector2(3.96735, -1187.25) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Mesa"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(-613, -132) +scale = Vector2(-0.1822, -0.894059) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Mesa"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(589, -132) +scale = Vector2(0.182, -0.894) +texture = ExtResource("1_gbl37") + +[node name="Sprite2D2" type="Sprite2D" parent="Mesa"] +position = Vector2(-15.7969, -375) +scale = Vector2(4.15892, 107.854) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D3" type="Sprite2D" parent="Mesa"] +position = Vector2(-11.2082, -273) +scale = Vector2(4.39126, 40.4832) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D5" type="Sprite2D" parent="Mesa"] +position = Vector2(-11.8052, -469) +scale = Vector2(4.10967, 38.9241) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D4" type="Sprite2D" parent="Mesa"] +position = Vector2(-12.7969, -75) +scale = Vector2(4.6344, 109.872) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Mesa2" type="Node2D" parent="."] +modulate = Color(0.760297, 0.760297, 0.760297, 1) +z_index = -6 +position = Vector2(4066, -2173) +scale = Vector2(0.535469, 0.607756) + +[node name="Sprite2D" type="Sprite2D" parent="Mesa2"] +modulate = Color(0.753984, 0.753984, 0.753984, 1) +position = Vector2(-12.0002, 4.00003) +scale = Vector2(3.96735, -1187.25) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Mesa2"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(-613, -132) +scale = Vector2(-0.1822, -0.894059) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Mesa2"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(589, -132) +scale = Vector2(0.182, -0.894) +texture = ExtResource("1_gbl37") + +[node name="Sprite2D2" type="Sprite2D" parent="Mesa2"] +position = Vector2(-15.7969, -375) +scale = Vector2(4.15892, 107.854) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D3" type="Sprite2D" parent="Mesa2"] +position = Vector2(-11.2082, -273) +scale = Vector2(4.39126, 40.4832) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D5" type="Sprite2D" parent="Mesa2"] +position = Vector2(-11.8052, -469) +scale = Vector2(4.10967, 38.9241) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D4" type="Sprite2D" parent="Mesa2"] +position = Vector2(-12.7969, -75) +scale = Vector2(4.6344, 109.872) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Mesa8" type="Node2D" parent="."] +modulate = Color(0.760297, 0.760297, 0.760297, 1) +z_index = -6 +position = Vector2(16074, -2262) +scale = Vector2(0.535469, 0.607756) + +[node name="Sprite2D" type="Sprite2D" parent="Mesa8"] +modulate = Color(0.753984, 0.753984, 0.753984, 1) +position = Vector2(-12.0002, 4.00003) +scale = Vector2(3.96735, -1187.25) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Mesa8"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(-613, -132) +scale = Vector2(-0.1822, -0.894059) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Mesa8"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(589, -132) +scale = Vector2(0.182, -0.894) +texture = ExtResource("1_gbl37") + +[node name="Sprite2D2" type="Sprite2D" parent="Mesa8"] +position = Vector2(-15.7969, -375) +scale = Vector2(4.15892, 107.854) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D3" type="Sprite2D" parent="Mesa8"] +position = Vector2(-11.2082, -273) +scale = Vector2(4.39126, 40.4832) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D5" type="Sprite2D" parent="Mesa8"] +position = Vector2(-11.8052, -469) +scale = Vector2(4.10967, 38.9241) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D4" type="Sprite2D" parent="Mesa8"] +position = Vector2(-12.7969, -75) +scale = Vector2(4.6344, 109.872) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Mesa3" type="Node2D" parent="."] +z_index = -6 +position = Vector2(3450, -2198) +scale = Vector2(0.535469, 0.607756) + +[node name="Sprite2D" type="Sprite2D" parent="Mesa3"] +modulate = Color(0.753984, 0.753984, 0.753984, 1) +position = Vector2(-12.0002, -780.567) +scale = Vector2(3.96735, -2756.39) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Mesa3"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(-613, -919.297) +scale = Vector2(-0.1822, -2.43175) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Mesa3"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(589, -916.516) +scale = Vector2(0.182, -2.42626) +texture = ExtResource("1_gbl37") + +[node name="Sprite2D2" type="Sprite2D" parent="Mesa3"] +position = Vector2(-15.7969, -1704.7) +scale = Vector2(4.15892, 107.854) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D7" type="Sprite2D" parent="Mesa3"] +position = Vector2(-13.0766, -316.039) +scale = Vector2(4.94603, 286.545) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D3" type="Sprite2D" parent="Mesa3"] +position = Vector2(-11.2082, -1602.7) +scale = Vector2(4.21056, 38.8174) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D6" type="Sprite2D" parent="Mesa3"] +position = Vector2(-12.1392, -515.009) +scale = Vector2(4.90959, 44.5685) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D5" type="Sprite2D" parent="Mesa3"] +position = Vector2(-11.8052, -1798.7) +scale = Vector2(4.10967, 38.9241) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D4" type="Sprite2D" parent="Mesa3"] +position = Vector2(-12.7969, -1404.7) +scale = Vector2(4.2707, 106.611) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Mesa7" type="Node2D" parent="."] +z_index = -6 +position = Vector2(17627, -2633) +scale = Vector2(0.535469, 0.607756) + +[node name="Sprite2D" type="Sprite2D" parent="Mesa7"] +modulate = Color(0.753984, 0.753984, 0.753984, 1) +position = Vector2(-12.0002, -780.567) +scale = Vector2(3.96735, -2756.39) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Mesa7"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(-613, -919.297) +scale = Vector2(-0.1822, -2.43175) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Mesa7"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(589, -916.516) +scale = Vector2(0.182, -2.42626) +texture = ExtResource("1_gbl37") + +[node name="Sprite2D2" type="Sprite2D" parent="Mesa7"] +position = Vector2(-15.7969, -1704.7) +scale = Vector2(4.15892, 107.854) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D7" type="Sprite2D" parent="Mesa7"] +position = Vector2(-13.0766, -316.039) +scale = Vector2(4.94603, 286.545) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D3" type="Sprite2D" parent="Mesa7"] +position = Vector2(-11.2082, -1602.7) +scale = Vector2(4.21056, 38.8174) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D6" type="Sprite2D" parent="Mesa7"] +position = Vector2(-12.1392, -515.009) +scale = Vector2(4.90959, 44.5685) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D5" type="Sprite2D" parent="Mesa7"] +position = Vector2(-11.8052, -1798.7) +scale = Vector2(4.10967, 38.9241) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D4" type="Sprite2D" parent="Mesa7"] +position = Vector2(-12.7969, -1404.7) +scale = Vector2(4.2707, 106.611) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Mesa6" type="Node2D" parent="."] +z_index = -6 +position = Vector2(13612, -1897) +scale = Vector2(0.535469, 0.607756) + +[node name="Sprite2D" type="Sprite2D" parent="Mesa6"] +modulate = Color(0.753984, 0.753984, 0.753984, 1) +position = Vector2(-12.0002, -330.725) +scale = Vector2(3.96735, -3656.07) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Mesa6"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(-613, -434.327) +scale = Vector2(-0.1822, -3.37896) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Mesa6"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(589, -304.399) +scale = Vector2(0.182, -3.6218) +texture = ExtResource("1_gbl37") + +[node name="Sprite2D2" type="Sprite2D" parent="Mesa6"] +position = Vector2(-15.7969, -1704.7) +scale = Vector2(4.15892, 107.854) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D7" type="Sprite2D" parent="Mesa6"] +position = Vector2(-13.0766, -316.039) +scale = Vector2(4.63966, 286.545) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D3" type="Sprite2D" parent="Mesa6"] +position = Vector2(-11.2082, -1602.7) +scale = Vector2(4.21056, 38.8174) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D6" type="Sprite2D" parent="Mesa6"] +position = Vector2(-12.1392, -515.009) +scale = Vector2(4.54479, 44.5685) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D5" type="Sprite2D" parent="Mesa6"] +position = Vector2(-11.8052, -1798.7) +scale = Vector2(4.10967, 38.9241) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D4" type="Sprite2D" parent="Mesa6"] +position = Vector2(-12.7969, -1404.7) +scale = Vector2(4.2707, 106.611) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Mesa9" type="Node2D" parent="."] +modulate = Color(0.687215, 0.687215, 0.687215, 1) +z_index = -7 +position = Vector2(18147, -1793) +scale = Vector2(0.535469, 0.607756) + +[node name="Sprite2D" type="Sprite2D" parent="Mesa9"] +modulate = Color(0.753984, 0.753984, 0.753984, 1) +position = Vector2(-12.0002, -330.725) +scale = Vector2(3.96735, -3656.07) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Mesa9"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(-613, -434.327) +scale = Vector2(-0.1822, -3.37896) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Mesa9"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(589, -304.399) +scale = Vector2(0.182, -3.6218) +texture = ExtResource("1_gbl37") + +[node name="Sprite2D2" type="Sprite2D" parent="Mesa9"] +position = Vector2(-15.7969, -1704.7) +scale = Vector2(4.15892, 107.854) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D7" type="Sprite2D" parent="Mesa9"] +position = Vector2(-13.0766, -316.039) +scale = Vector2(4.63966, 286.545) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D3" type="Sprite2D" parent="Mesa9"] +position = Vector2(-11.2082, -1602.7) +scale = Vector2(4.21056, 38.8174) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D6" type="Sprite2D" parent="Mesa9"] +position = Vector2(-12.1392, -515.009) +scale = Vector2(4.54479, 44.5685) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D5" type="Sprite2D" parent="Mesa9"] +position = Vector2(-11.8052, -1798.7) +scale = Vector2(4.10967, 38.9241) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D4" type="Sprite2D" parent="Mesa9"] +position = Vector2(-12.7969, -1404.7) +scale = Vector2(4.2707, 106.611) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Mesa10" type="Node2D" parent="."] +z_index = -7 +position = Vector2(19485, -1914) +scale = Vector2(0.535469, 0.607756) + +[node name="Sprite2D" type="Sprite2D" parent="Mesa10"] +modulate = Color(0.753984, 0.753984, 0.753984, 1) +position = Vector2(-12.0002, -330.725) +scale = Vector2(3.96735, -3656.07) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Mesa10"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(-613, -434.327) +scale = Vector2(-0.1822, -3.37896) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Mesa10"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(589, -304.399) +scale = Vector2(0.182, -3.6218) +texture = ExtResource("1_gbl37") + +[node name="Sprite2D2" type="Sprite2D" parent="Mesa10"] +position = Vector2(-15.7969, -1704.7) +scale = Vector2(4.15892, 107.854) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D7" type="Sprite2D" parent="Mesa10"] +position = Vector2(-13.0766, -316.039) +scale = Vector2(4.63966, 286.545) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D3" type="Sprite2D" parent="Mesa10"] +position = Vector2(-11.2082, -1602.7) +scale = Vector2(4.21056, 38.8174) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D6" type="Sprite2D" parent="Mesa10"] +position = Vector2(-12.1392, -515.009) +scale = Vector2(4.54479, 44.5685) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D5" type="Sprite2D" parent="Mesa10"] +position = Vector2(-11.8052, -1798.7) +scale = Vector2(4.10967, 38.9241) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D4" type="Sprite2D" parent="Mesa10"] +position = Vector2(-12.7969, -1404.7) +scale = Vector2(4.2707, 106.611) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Mesa5" type="Node2D" parent="."] +z_index = -6 +position = Vector2(10737, -990) +scale = Vector2(0.409399, 0.464667) + +[node name="Sprite2D" type="Sprite2D" parent="Mesa5"] +modulate = Color(0.753984, 0.753984, 0.753984, 1) +position = Vector2(2073.56, -1793.31) +scale = Vector2(20.2608, -4781.87) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Mesa5"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(-779.509, -1929.34) +scale = Vector2(-0.507412, -4.40449) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Mesa5"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(4823.91, -1793.48) +scale = Vector2(0.309849, -4.67264) +texture = ExtResource("1_gbl37") + +[node name="Sprite2D2" type="Sprite2D" parent="Mesa5"] +position = Vector2(2067.35, -3805.87) +scale = Vector2(20.4552, 107.854) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D7" type="Sprite2D" parent="Mesa5"] +position = Vector2(2032.8, -2309.44) +scale = Vector2(21.3817, 502.094) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D3" type="Sprite2D" parent="Mesa5"] +position = Vector2(2037.47, -3703.87) +scale = Vector2(20.3822, 39.6597) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D9" type="Sprite2D" parent="Mesa5"] +position = Vector2(2009.45, -1500.6) +scale = Vector2(22.1039, 39.6597) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D6" type="Sprite2D" parent="Mesa5"] +position = Vector2(2034.66, -2660.16) +scale = Vector2(21.2504, 132.524) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D5" type="Sprite2D" parent="Mesa5"] +position = Vector2(2066.41, -3899.87) +scale = Vector2(20.3896, 38.9241) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D4" type="Sprite2D" parent="Mesa5"] +position = Vector2(2058.01, -3480.93) +scale = Vector2(20.6886, 156.498) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Sprite2D8" type="Sprite2D" parent="Mesa5"] +position = Vector2(2008.52, -1966.25) +scale = Vector2(21.7318, 156.498) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Mesa4" type="Node2D" parent="."] +modulate = Color(0.856067, 0.856067, 0.856067, 1) +z_index = -6 +position = Vector2(6832, -2134) +scale = Vector2(0.296543, 0.336575) + +[node name="Sprite2D" type="Sprite2D" parent="Mesa4"] +modulate = Color(0.753984, 0.753984, 0.753984, 1) +position = Vector2(-12.0002, -780.567) +scale = Vector2(3.96735, -2756.39) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Righttri" type="Sprite2D" parent="Mesa4"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(-613, -919.297) +scale = Vector2(-0.1822, -2.43175) +texture = ExtResource("1_gbl37") + +[node name="Righttri2" type="Sprite2D" parent="Mesa4"] +modulate = Color(0.564706, 0.298039, 0.113725, 1) +position = Vector2(589, -916.516) +scale = Vector2(0.182, -2.42626) +texture = ExtResource("1_gbl37") + +[node name="Sprite2D2" type="Sprite2D" parent="Mesa4"] +position = Vector2(-15.7969, -1704.7) +scale = Vector2(4.15892, 107.854) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D7" type="Sprite2D" parent="Mesa4"] +position = Vector2(-13.0766, -316.039) +scale = Vector2(4.94603, 286.545) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D3" type="Sprite2D" parent="Mesa4"] +position = Vector2(-11.2082, -1602.7) +scale = Vector2(4.21056, 38.8174) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D6" type="Sprite2D" parent="Mesa4"] +position = Vector2(-12.1392, -515.009) +scale = Vector2(4.90959, 44.5685) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D5" type="Sprite2D" parent="Mesa4"] +position = Vector2(-11.8052, -1798.7) +scale = Vector2(4.10967, 38.9241) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D4" type="Sprite2D" parent="Mesa4"] +position = Vector2(-12.7969, -1404.7) +scale = Vector2(4.2707, 106.611) +texture = SubResource("GradientTexture1D_hilkn") + +[node name="Node2D5" type="StaticBody2D" parent="."] +position = Vector2(3364, -42) + +[node name="Sprite2D" type="Sprite2D" parent="Node2D5"] +position = Vector2(2331.87, 0) +scale = Vector2(22.1417, -4007.92) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D5"] +position = Vector2(2335, -841.5) +shape = SubResource("RectangleShape2D_hbaan") + +[node name="Grappleables" parent="." instance=ExtResource("2_o5i5b")] +position = Vector2(2471, -2426) + +[node name="Cactus" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -7 +position = Vector2(996, -2115) +scale = Vector2(0.159166, -162.571) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D4" type="Sprite2D" parent="Cactus"] +position = Vector2(-133.185, -0.0695436) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D5" type="Sprite2D" parent="Cactus"] +position = Vector2(-248.611, 0.0318742) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus3" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -7 +position = Vector2(1510, -2085) +scale = Vector2(0.159166, -162.571) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus3"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus3"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus3"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus12" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -7 +position = Vector2(8342, -2094) +scale = Vector2(0.159166, -162.571) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus12"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus12"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus12"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus13" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -7 +position = Vector2(12762, -2194) +scale = Vector2(0.159166, -162.571) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus13"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus13"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus13"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus14" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -7 +position = Vector2(14732, -2460) +scale = Vector2(0.159166, -162.571) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus14"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus14"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus14"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus15" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -7 +position = Vector2(16608, -2332) +scale = Vector2(0.159166, -162.571) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus15"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus15"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus15"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus2" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -5 +position = Vector2(3899, -2132) +scale = Vector2(-0.225003, -229.734) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus2"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D4" type="Sprite2D" parent="Cactus2"] +position = Vector2(-133.185, -0.0695436) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus2"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D5" type="Sprite2D" parent="Cactus2"] +position = Vector2(-248.611, 0.0318742) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus2"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus4" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -5 +position = Vector2(7434, -2132) +scale = Vector2(-0.225003, -229.734) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus4"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D4" type="Sprite2D" parent="Cactus4"] +position = Vector2(-133.185, -0.0695436) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus4"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D5" type="Sprite2D" parent="Cactus4"] +position = Vector2(-248.611, 0.0318742) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus4"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus5" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -5 +position = Vector2(10087, -2124) +scale = Vector2(-0.225003, -229.734) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus5"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D4" type="Sprite2D" parent="Cactus5"] +position = Vector2(-133.185, -0.0695436) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus5"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D5" type="Sprite2D" parent="Cactus5"] +position = Vector2(-248.611, 0.0318742) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus5"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus6" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -5 +position = Vector2(14252, -2477) +scale = Vector2(-0.225003, -229.734) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus6"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D4" type="Sprite2D" parent="Cactus6"] +position = Vector2(-133.185, -0.0695436) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus6"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D5" type="Sprite2D" parent="Cactus6"] +position = Vector2(-248.611, 0.0318742) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus6"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus7" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -5 +position = Vector2(15615, -2213) +scale = Vector2(-0.225003, -229.734) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus7"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D4" type="Sprite2D" parent="Cactus7"] +position = Vector2(-133.185, -0.0695436) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus7"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D5" type="Sprite2D" parent="Cactus7"] +position = Vector2(-248.611, 0.0318742) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus7"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus8" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -5 +position = Vector2(17063, -2598) +scale = Vector2(-0.225003, -229.734) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus8"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D4" type="Sprite2D" parent="Cactus8"] +position = Vector2(-133.185, -0.0695436) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus8"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D5" type="Sprite2D" parent="Cactus8"] +position = Vector2(-248.611, 0.0318742) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus8"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus9" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -5 +position = Vector2(20436, -2589) +scale = Vector2(-0.225003, -229.734) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus9"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D4" type="Sprite2D" parent="Cactus9"] +position = Vector2(-133.185, -0.0695436) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus9"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D5" type="Sprite2D" parent="Cactus9"] +position = Vector2(-248.611, 0.0318742) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus9"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus10" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -5 +position = Vector2(22014, -2807) +scale = Vector2(-0.225003, -229.734) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus10"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D4" type="Sprite2D" parent="Cactus10"] +position = Vector2(-133.185, -0.0695436) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus10"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D5" type="Sprite2D" parent="Cactus10"] +position = Vector2(-248.611, 0.0318742) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus10"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="Cactus11" type="Sprite2D" parent="."] +modulate = Color(0.888425, 0.888425, 0.888425, 1) +z_index = -5 +position = Vector2(23420, -2811) +scale = Vector2(-0.225003, -229.734) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D2" type="Sprite2D" parent="Cactus11"] +position = Vector2(186.458, 0.14778) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D4" type="Sprite2D" parent="Cactus11"] +position = Vector2(-133.185, -0.0695436) +scale = Vector2(0.953855, 0.12199) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D3" type="Sprite2D" parent="Cactus11"] +position = Vector2(307.804, 0.28397) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D5" type="Sprite2D" parent="Cactus11"] +position = Vector2(-248.611, 0.0318742) +scale = Vector2(0.549189, 0.319522) +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Sprite2D6" type="Sprite2D" parent="Cactus11"] +position = Vector2(2.95964, 0.521577) +scale = Vector2(0.674345, 0.0758139) +texture = SubResource("GradientTexture1D_3lhg3") + +[node name="WallGroup2" type="Node2D" parent="."] +position = Vector2(7089, -2046) + +[node name="Wall" type="StaticBody2D" parent="WallGroup2"] +position = Vector2(-6, -205) + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = -8 +position = Vector2(7.49977, -34) +scale = Vector2(1.69443, 478) +texture = SubResource("GradientTexture1D_qpttu") + +[node name="Sprite2D2" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(7.50008, -418) +scale = Vector2(1.69445, 798) +texture = SubResource("GradientTexture1D_1nm4f") + +[node name="DecorSprite" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(7.0002, -44) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite2" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(7.0002, -144) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite3" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(7.0002, -410) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite4" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(7.0002, -654) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite6" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(-13.9998, -313) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_orowq") + +[node name="DecorSprite7" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(-4.99984, -208) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_orowq") + +[node name="DecorSprite9" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(14.0002, -511) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_orowq") + +[node name="DecorSprite8" type="Sprite2D" parent="WallGroup2/Wall"] +z_index = 99 +position = Vector2(21.0002, -97) +scale = Vector2(1.39573, 25.9297) +texture = SubResource("GradientTexture1D_orowq") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup2/Wall"] +position = Vector2(7.5, -552) +shape = SubResource("RectangleShape2D_1nm4f") + +[node name="DoorWall" type="StaticBody2D" parent="WallGroup2"] +position = Vector2(-6, -437) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup2/DoorWall"] +position = Vector2(7, 62) +shape = SubResource("RectangleShape2D_itp6l") + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup2/DoorWall"] +position = Vector2(6.49988, 72) +scale = Vector2(1.3611, 266) +texture = SubResource("GradientTexture1D_itp6l") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="WallGroup2"] +libraries = { +&"": SubResource("AnimationLibrary_34bfm") +} + +[node name="WallGroup3" type="Node2D" parent="."] +position = Vector2(4820, -2046) + +[node name="Wall" type="StaticBody2D" parent="WallGroup3"] +position = Vector2(-6, -205) + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = -8 +position = Vector2(7.49977, -34) +scale = Vector2(1.69443, 478) +texture = SubResource("GradientTexture1D_qpttu") + +[node name="Sprite2D2" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(7.50008, -418) +scale = Vector2(1.69445, 798) +texture = SubResource("GradientTexture1D_1nm4f") + +[node name="DecorSprite" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(7.0002, -44) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite2" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(7.0002, -144) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite3" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(7.0002, -410) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite4" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(7.0002, -654) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite6" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(-13.9998, -313) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_orowq") + +[node name="DecorSprite7" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(-4.99984, -208) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_orowq") + +[node name="DecorSprite9" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(14.0002, -511) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_orowq") + +[node name="DecorSprite8" type="Sprite2D" parent="WallGroup3/Wall"] +z_index = 99 +position = Vector2(21.0002, -97) +scale = Vector2(1.39573, 25.9297) +texture = SubResource("GradientTexture1D_orowq") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup3/Wall"] +position = Vector2(7.5, -552) +shape = SubResource("RectangleShape2D_1nm4f") + +[node name="DoorWall" type="StaticBody2D" parent="WallGroup3"] +position = Vector2(-6, -437) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup3/DoorWall"] +position = Vector2(7, 62) +shape = SubResource("RectangleShape2D_itp6l") + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup3/DoorWall"] +position = Vector2(6.49988, 72) +scale = Vector2(1.3611, 266) +texture = SubResource("GradientTexture1D_itp6l") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="WallGroup3"] +libraries = { +&"": SubResource("AnimationLibrary_34bfm") +} + +[node name="Spawner" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(6734, -2418) +script = ExtResource("3_1nm4f") +enemy = ExtResource("8_1nm4f") +interval_seconds = 15.0 +count = 2 +initial_delay = 4.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner2" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(6302, -2139) +script = ExtResource("3_1nm4f") +enemy = ExtResource("5_1nm4f") +initial_delay = 4.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner3" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(5742, -2124) +script = ExtResource("3_1nm4f") +enemy = ExtResource("5_1nm4f") +interval_seconds = 5.0 +count = 4 +initial_delay = 12.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner4" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(5260, -2130) +script = ExtResource("3_1nm4f") +enemy = ExtResource("5_1nm4f") +count = 3 +initial_delay = 6.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Grappleables4" parent="." instance=ExtResource("2_o5i5b")] +position = Vector2(5518, -2369) + +[node name="DeathArea" parent="." instance=ExtResource("4_y063p")] +position = Vector2(2458, -518) + +[node name="DeathArea2" parent="." instance=ExtResource("4_y063p")] +position = Vector2(14126, -671) +scale = Vector2(12.5248, -1.34138) + +[node name="Grappleables2" parent="." instance=ExtResource("2_o5i5b")] +position = Vector2(6945, -2432) + +[node name="Grappleables3" parent="." instance=ExtResource("2_o5i5b")] +position = Vector2(5997, -2363) + +[node name="Grappleables5" parent="." instance=ExtResource("2_o5i5b")] +position = Vector2(6462, -2573) + +[node name="SpawnArea2D" type="Area2D" parent="." node_paths=PackedStringArray("anim_to_play", "spawn_to_enable")] +position = Vector2(6720, -2367) +collision_mask = 3 +monitoring = false +script = ExtResource("5_qpttu") +anim_to_play = [NodePath("../WallGroup2/AnimationPlayer"), NodePath("../WallGroup3/AnimationPlayer")] +spawn_to_enable = [NodePath("../Spawner"), NodePath("../Spawner2"), NodePath("../Spawner3"), NodePath("../Spawner4")] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpawnArea2D"] +position = Vector2(106.5, -11) +shape = SubResource("RectangleShape2D_ono0i") + +[node name="House" type="Node2D" parent="."] +position = Vector2(5243, -2165) + +[node name="Sprite2D" type="Sprite2D" parent="House"] +z_index = -4 +position = Vector2(8.0241, -2) +scale = Vector2(1.62519, 257.428) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D2" type="Sprite2D" parent="House"] +z_index = -4 +position = Vector2(-164, -156) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_y063p") + +[node name="Sprite2D3" type="Sprite2D" parent="House"] +z_index = -4 +position = Vector2(180, -156) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D4" type="Sprite2D" parent="House"] +z_index = -4 +position = Vector2(82, -132.315) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D5" type="Sprite2D" parent="House"] +z_index = -4 +position = Vector2(-48, -132.315) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D6" type="Sprite2D" parent="House"] +z_index = -4 +position = Vector2(-160, -90) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D7" type="Sprite2D" parent="House"] +z_index = -4 +position = Vector2(-48, -90) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D8" type="Sprite2D" parent="House"] +z_index = -4 +position = Vector2(82, -90) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D9" type="Sprite2D" parent="House"] +z_index = -4 +position = Vector2(179, -90) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D10" type="Sprite2D" parent="House"] +modulate = Color(0.400698, 0.400698, 0.400698, 1) +z_index = -4 +position = Vector2(16.5289, 58.1798) +scale = Vector2(0.284931, 126.359) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="House2" type="Node2D" parent="."] +position = Vector2(5774, -2163) + +[node name="Sprite2D" type="Sprite2D" parent="House2"] +z_index = -4 +position = Vector2(-37.0001, -2) +scale = Vector2(1.27344, 257.428) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D2" type="Sprite2D" parent="House2"] +z_index = -4 +position = Vector2(-164, -156) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_y063p") + +[node name="Sprite2D3" type="Sprite2D" parent="House2"] +z_index = -4 +position = Vector2(90, -156) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D4" type="Sprite2D" parent="House2"] +z_index = -4 +position = Vector2(-31, -132.315) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D6" type="Sprite2D" parent="House2"] +z_index = -4 +position = Vector2(-160, -90) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D7" type="Sprite2D" parent="House2"] +z_index = -4 +position = Vector2(-32, -91) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D8" type="Sprite2D" parent="House2"] +z_index = -4 +position = Vector2(82, -90) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D10" type="Sprite2D" parent="House2"] +modulate = Color(0.400698, 0.400698, 0.400698, 1) +z_index = -4 +position = Vector2(-32.9999, 58.9999) +scale = Vector2(0.284931, 126.359) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Torch" parent="House2" instance=ExtResource("5_txyub")] +z_index = -3 +position = Vector2(207, 126) + +[node name="House4" type="Node2D" parent="."] +modulate = Color(0.821789, 0.821789, 0.821789, 1) +position = Vector2(6281, -2165) + +[node name="Sprite2D" type="Sprite2D" parent="House4"] +z_index = -4 +position = Vector2(116.024, -125.643) +scale = Vector2(0.781437, 504.714) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D2" type="Sprite2D" parent="House4"] +z_index = -4 +position = Vector2(52, -386) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_y063p") + +[node name="Sprite2D3" type="Sprite2D" parent="House4"] +z_index = -4 +position = Vector2(180, -385) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D6" type="Sprite2D" parent="House4"] +z_index = -4 +position = Vector2(53, -353) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D7" type="Sprite2D" parent="House4"] +z_index = -4 +position = Vector2(178, -354) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="House3" type="Node2D" parent="."] +position = Vector2(6281, -2165) + +[node name="Sprite2D" type="Sprite2D" parent="House3"] +z_index = -4 +position = Vector2(8.0241, -2) +scale = Vector2(1.62519, 257.428) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D2" type="Sprite2D" parent="House3"] +z_index = -4 +position = Vector2(-164, -156) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_y063p") + +[node name="Sprite2D3" type="Sprite2D" parent="House3"] +z_index = -4 +position = Vector2(180, -156) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D4" type="Sprite2D" parent="House3"] +z_index = -4 +position = Vector2(82, -132.315) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D5" type="Sprite2D" parent="House3"] +z_index = -4 +position = Vector2(-48, -132.315) +scale = Vector2(0.279725, 69.3701) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="Sprite2D6" type="Sprite2D" parent="House3"] +z_index = -4 +position = Vector2(-160, -90) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D7" type="Sprite2D" parent="House3"] +z_index = -4 +position = Vector2(-48, -90) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D8" type="Sprite2D" parent="House3"] +z_index = -4 +position = Vector2(82, -90) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D9" type="Sprite2D" parent="House3"] +z_index = -4 +position = Vector2(179, -90) +scale = Vector2(0.132361, 32.7191) +texture = SubResource("GradientTexture1D_q3j63") + +[node name="Sprite2D10" type="Sprite2D" parent="House3"] +modulate = Color(0.400698, 0.400698, 0.400698, 1) +z_index = -4 +position = Vector2(16.5289, 58.1798) +scale = Vector2(0.284931, 126.359) +texture = SubResource("GradientTexture1D_ono0i") + +[node name="HealingShrine" type="Node2D" parent="." node_paths=PackedStringArray("area", "fruites")] +z_index = -90 +position = Vector2(7755, -2057) +script = ExtResource("9_itp6l") +area = NodePath("Area2D") +fruites = NodePath("Node2D") +health = 20 + +[node name="Sprite2D" type="Sprite2D" parent="HealingShrine"] +light_mask = 2 +position = Vector2(0, -14) +scale = Vector2(-0.20197, 76.9606) +texture = SubResource("GradientTexture1D_6gx4j") + +[node name="Sprite2D4" type="Sprite2D" parent="HealingShrine"] +modulate = Color(0.860369, 0.860369, 0.860369, 1) +light_mask = 2 +position = Vector2(1, -86) +rotation = 3.14159 +scale = Vector2(0.2396, -69.4421) +texture = SubResource("GradientTexture1D_6gx4j") + +[node name="Sprite2D2" type="Sprite2D" parent="HealingShrine"] +light_mask = 2 +position = Vector2(1, -52) +scale = Vector2(-0.274679, 14.3432) +texture = SubResource("GradientTexture1D_6gx4j") + +[node name="Sprite2D3" type="Sprite2D" parent="HealingShrine"] +light_mask = 2 +position = Vector2(1, -116) +scale = Vector2(-0.274679, 14.3432) +texture = SubResource("GradientTexture1D_6gx4j") + +[node name="Label2" type="Label" parent="HealingShrine"] +offset_left = -21.0 +offset_top = -106.0 +offset_right = 19.0 +offset_bottom = -61.0 +theme_override_colors/font_color = Color(0.26, 0.218313, 0.1638, 1) +theme_override_font_sizes/font_size = 32 +text = "♥" +horizontal_alignment = 1 + +[node name="Node2D" type="Node2D" parent="HealingShrine"] + +[node name="Label" type="Label" parent="HealingShrine/Node2D"] +offset_left = -21.0 +offset_top = -106.0 +offset_right = 19.0 +offset_bottom = -61.0 +theme_override_colors/font_color = Color(1, 0.325475, 0.556763, 1) +theme_override_font_sizes/font_size = 32 +text = "♥" +horizontal_alignment = 1 + +[node name="PointLight2D" type="PointLight2D" parent="HealingShrine/Node2D"] +position = Vector2(-1, -82) +scale = Vector2(7.85187, 8.79769) +color = Color(1, 0.358877, 0.893837, 1) +energy = 1.76 +texture = SubResource("GradientTexture2D_ai0p8") + +[node name="Area2D" type="Area2D" parent="HealingShrine"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="HealingShrine/Area2D"] +position = Vector2(1.5, -56) +shape = SubResource("RectangleShape2D_q3j63") + +[node name="Grappleables6" type="StaticBody2D" parent="." node_paths=PackedStringArray("highlighter")] +z_index = 1024 +position = Vector2(10562, -2343) +collision_layer = 8 +collision_mask = 8 +script = ExtResource("10_q3j63") +highlighter = NodePath("Sprite2D2") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Grappleables6"] +shape = SubResource("RectangleShape2D_pytih") + +[node name="Sprite2D2" type="Sprite2D" parent="Grappleables6"] +visible = false +scale = Vector2(1.13976, 56.9881) +texture = SubResource("GradientTexture1D_v4k01") + +[node name="Sprite2D" type="Sprite2D" parent="Grappleables6"] +scale = Vector2(1, 50) +texture = SubResource("GradientTexture1D_dgfda") + +[node name="Grappleables7" type="StaticBody2D" parent="." node_paths=PackedStringArray("highlighter")] +z_index = 1024 +position = Vector2(11255, -2456) +collision_layer = 8 +collision_mask = 8 +script = ExtResource("10_q3j63") +highlighter = NodePath("Sprite2D2") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Grappleables7"] +shape = SubResource("RectangleShape2D_pytih") + +[node name="Sprite2D2" type="Sprite2D" parent="Grappleables7"] +visible = false +scale = Vector2(1.13976, 56.9881) +texture = SubResource("GradientTexture1D_v4k01") + +[node name="Sprite2D" type="Sprite2D" parent="Grappleables7"] +scale = Vector2(1, 50) +texture = SubResource("GradientTexture1D_dgfda") + +[node name="Grappleables8" type="StaticBody2D" parent="." node_paths=PackedStringArray("highlighter")] +z_index = 1024 +position = Vector2(11875, -2548) +collision_layer = 8 +collision_mask = 8 +script = ExtResource("10_q3j63") +highlighter = NodePath("Sprite2D2") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Grappleables8"] +shape = SubResource("RectangleShape2D_pytih") + +[node name="Sprite2D2" type="Sprite2D" parent="Grappleables8"] +visible = false +scale = Vector2(1.13976, 56.9881) +texture = SubResource("GradientTexture1D_v4k01") + +[node name="Sprite2D" type="Sprite2D" parent="Grappleables8"] +scale = Vector2(1, 50) +texture = SubResource("GradientTexture1D_dgfda") + +[node name="Grappleables11" type="StaticBody2D" parent="." node_paths=PackedStringArray("highlighter")] +z_index = 1024 +position = Vector2(13102, -2343) +collision_layer = 8 +collision_mask = 8 +script = ExtResource("10_q3j63") +highlighter = NodePath("Sprite2D2") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Grappleables11"] +shape = SubResource("RectangleShape2D_pytih") + +[node name="Sprite2D2" type="Sprite2D" parent="Grappleables11"] +visible = false +scale = Vector2(1.13976, 56.9881) +texture = SubResource("GradientTexture1D_v4k01") + +[node name="Sprite2D" type="Sprite2D" parent="Grappleables11"] +scale = Vector2(1, 50) +texture = SubResource("GradientTexture1D_dgfda") + +[node name="Grappleables12" type="StaticBody2D" parent="." node_paths=PackedStringArray("highlighter")] +z_index = 1024 +position = Vector2(13495, -2607) +collision_layer = 8 +collision_mask = 8 +script = ExtResource("10_q3j63") +highlighter = NodePath("Sprite2D2") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Grappleables12"] +shape = SubResource("RectangleShape2D_pytih") + +[node name="Sprite2D2" type="Sprite2D" parent="Grappleables12"] +visible = false +scale = Vector2(1.13976, 56.9881) +texture = SubResource("GradientTexture1D_v4k01") + +[node name="Sprite2D" type="Sprite2D" parent="Grappleables12"] +scale = Vector2(1, 50) +texture = SubResource("GradientTexture1D_dgfda") + +[node name="Grappleables13" type="StaticBody2D" parent="." node_paths=PackedStringArray("highlighter")] +z_index = 1024 +position = Vector2(13890, -2746) +collision_layer = 8 +collision_mask = 8 +script = ExtResource("10_q3j63") +highlighter = NodePath("Sprite2D2") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Grappleables13"] +shape = SubResource("RectangleShape2D_pytih") + +[node name="Sprite2D2" type="Sprite2D" parent="Grappleables13"] +visible = false +scale = Vector2(1.13976, 56.9881) +texture = SubResource("GradientTexture1D_v4k01") + +[node name="Sprite2D" type="Sprite2D" parent="Grappleables13"] +scale = Vector2(1, 50) +texture = SubResource("GradientTexture1D_dgfda") + +[node name="Area2D" type="Area2D" parent="."] +position = Vector2(17953, -2754) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("11_rbgk5") +horizontal_offset = 1.0 +x_delta = 400.0 +y_delta = 100.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(110.5, 29.5) +shape = SubResource("RectangleShape2D_b4g0o") + +[node name="Area2D5" type="Area2D" parent="."] +position = Vector2(8273, -2296) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("11_rbgk5") +horizontal_offset = 0.7 +x_delta = 400.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D5"] +position = Vector2(110.5, 29.5) +shape = SubResource("RectangleShape2D_b4g0o") + +[node name="Area2D2" type="Area2D" parent="."] +position = Vector2(20038, -2793) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("11_rbgk5") +once = true +set = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D2"] +position = Vector2(226, 29.5) +shape = SubResource("RectangleShape2D_b4g0o") + +[node name="Area2D3" type="Area2D" parent="."] +position = Vector2(17533, -2755) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("11_rbgk5") +set = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D3"] +position = Vector2(226, 29.5) +shape = SubResource("RectangleShape2D_b4g0o") + +[node name="Area2D6" type="Area2D" parent="."] +position = Vector2(13923, -2655) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("11_rbgk5") +set = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D6"] +position = Vector2(226, 29.5) +shape = SubResource("RectangleShape2D_b4g0o") + +[node name="Area2D4" type="Area2D" parent="."] +position = Vector2(-352, -2300) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("11_rbgk5") +set = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D4"] +position = Vector2(226, 29.5) +shape = SubResource("RectangleShape2D_b4g0o") + +[node name="SignDash" type="Sprite2D" parent="."] +z_index = -2 +position = Vector2(18103, -2559) +scale = Vector2(0.149829, 0.149829) +texture = ExtResource("12_6gx4j") + +[node name="Torch" parent="." instance=ExtResource("13_orowq")] +z_index = -1 +position = Vector2(15165, -2126) + +[node name="Torch2" parent="." instance=ExtResource("13_orowq")] +z_index = -1 +position = Vector2(15717, -2126) + +[node name="Torch3" parent="." instance=ExtResource("13_orowq")] +z_index = -1 +position = Vector2(17348, -2503) + +[node name="Torch4" parent="." instance=ExtResource("13_orowq")] +z_index = -1 +position = Vector2(20685, -2504) + +[node name="Torch5" parent="." instance=ExtResource("13_orowq")] +z_index = -1 +position = Vector2(21302, -2716) + +[node name="Torch6" parent="." instance=ExtResource("13_orowq")] +z_index = -1 +position = Vector2(21302, -2716) + +[node name="WallGroup4" type="Node2D" parent="."] +position = Vector2(22213, -2708) + +[node name="Wall" type="StaticBody2D" parent="WallGroup4"] +position = Vector2(-6, -205) + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup4/Wall"] +z_index = -8 +position = Vector2(7.49977, -34) +scale = Vector2(1.69443, 478) +texture = SubResource("GradientTexture1D_qpttu") + +[node name="Sprite2D2" type="Sprite2D" parent="WallGroup4/Wall"] +z_index = 99 +position = Vector2(7.50008, -418) +scale = Vector2(1.69445, 798) +texture = SubResource("GradientTexture1D_1nm4f") + +[node name="DecorSprite" type="Sprite2D" parent="WallGroup4/Wall"] +z_index = 99 +position = Vector2(7.0002, -44) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite2" type="Sprite2D" parent="WallGroup4/Wall"] +z_index = 99 +position = Vector2(7.0002, -144) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite3" type="Sprite2D" parent="WallGroup4/Wall"] +z_index = 99 +position = Vector2(7.0002, -410) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite4" type="Sprite2D" parent="WallGroup4/Wall"] +z_index = 99 +position = Vector2(7.0002, -654) +scale = Vector2(1.90585, 12.4947) +texture = SubResource("GradientTexture1D_rbgk5") + +[node name="DecorSprite6" type="Sprite2D" parent="WallGroup4/Wall"] +z_index = 99 +position = Vector2(-13.9998, -313) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_orowq") + +[node name="DecorSprite7" type="Sprite2D" parent="WallGroup4/Wall"] +z_index = 99 +position = Vector2(-4.99984, -208) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_orowq") + +[node name="DecorSprite9" type="Sprite2D" parent="WallGroup4/Wall"] +z_index = 99 +position = Vector2(14.0002, -511) +scale = Vector2(1.36952, 37.1085) +texture = SubResource("GradientTexture1D_orowq") + +[node name="DecorSprite8" type="Sprite2D" parent="WallGroup4/Wall"] +z_index = 99 +position = Vector2(21.0002, -97) +scale = Vector2(1.39573, 25.9297) +texture = SubResource("GradientTexture1D_orowq") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup4/Wall"] +position = Vector2(7.5, -552) +shape = SubResource("RectangleShape2D_1nm4f") + +[node name="DoorWall" type="StaticBody2D" parent="WallGroup4"] +position = Vector2(-6, -437) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="WallGroup4/DoorWall"] +position = Vector2(7, 62) +shape = SubResource("RectangleShape2D_itp6l") + +[node name="Sprite2D" type="Sprite2D" parent="WallGroup4/DoorWall"] +position = Vector2(6.49988, 72) +scale = Vector2(1.3611, 266) +texture = SubResource("GradientTexture1D_itp6l") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="WallGroup4"] +libraries = { +&"": SubResource("AnimationLibrary_34bfm") +} + +[node name="SpawnArea2D2" type="Area2D" parent="." node_paths=PackedStringArray("anim_to_play", "spawn_to_enable")] +position = Vector2(21832, -3023) +collision_mask = 3 +monitoring = false +script = ExtResource("5_qpttu") +anim_to_play = [NodePath("../WallGroup4/AnimationPlayer")] +spawn_to_enable = [NodePath("../Spawner5"), NodePath("../Spawner6"), NodePath("../Spawner7"), NodePath("../Spawner8")] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpawnArea2D2"] +position = Vector2(106.5, -11) +shape = SubResource("RectangleShape2D_ono0i") + +[node name="Spawner5" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(20996, -3738) +script = ExtResource("3_1nm4f") +enemy = ExtResource("8_1nm4f") +interval_seconds = 15.0 +count = 1 +initial_delay = 4.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner6" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(21505, -3738) +script = ExtResource("3_1nm4f") +enemy = ExtResource("5_1nm4f") +count = 3 +initial_delay = 4.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner7" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(21757, -3738) +script = ExtResource("3_1nm4f") +enemy = ExtResource("5_1nm4f") +count = 3 +initial_delay = 4.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Spawner8" type="Node2D" parent="." node_paths=PackedStringArray("curr_lvl")] +position = Vector2(22014, -3738) +script = ExtResource("3_1nm4f") +enemy = ExtResource("5_1nm4f") +count = 3 +initial_delay = 9.0 +curr_lvl = NodePath("..") +metadata/_custom_type_script = "uid://df037bypj74at" + +[node name="Chest" parent="." node_paths=PackedStringArray("masks") instance=ExtResource("14_dgfda")] +position = Vector2(22471, -2716) +mask = 2 +masks = [NodePath("MaskNode/SpeedMask"), NodePath("MaskNode/GrappleMask"), NodePath("MaskNode/SpiritMask")] + +[node name="Torch7" parent="." instance=ExtResource("13_orowq")] +z_index = -1 +position = Vector2(22671, -2699) + +[node name="SignSummit" type="Sprite2D" parent="."] +position = Vector2(24425, -2771) +rotation = -0.0872665 +scale = Vector2(0.13821, 0.13821) +texture = ExtResource("15_a4vmt") + +[connection signal="body_entered" from="SpawnArea2D" to="SpawnArea2D" method="_on_body_entered"] +[connection signal="body_entered" from="HealingShrine/Area2D" to="HealingShrine" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="Area2D" to="Area2D" method="_on_body_entered"] +[connection signal="body_entered" from="Area2D5" to="Area2D5" method="_on_body_entered"] +[connection signal="body_entered" from="Area2D2" to="Area2D2" method="_on_body_entered"] +[connection signal="body_entered" from="Area2D3" to="Area2D3" method="_on_body_entered"] +[connection signal="body_entered" from="Area2D6" to="Area2D6" method="_on_body_entered"] +[connection signal="body_entered" from="Area2D4" to="Area2D4" method="_on_body_entered"] +[connection signal="body_entered" from="SpawnArea2D2" to="SpawnArea2D2" method="_on_body_entered"] diff --git a/Levels/hud.tscn b/Levels/hud.tscn new file mode 100644 index 0000000..f83a396 --- /dev/null +++ b/Levels/hud.tscn @@ -0,0 +1,1669 @@ +[gd_scene load_steps=41 format=3 uid="uid://bi0arg5yr7o3e"] + +[ext_resource type="Texture2D" uid="uid://dryh1vqkaxo8g" path="res://Assets/Visuals/bow.png" id="1_6xlew"] +[ext_resource type="Script" uid="uid://mauaa0rjx7lo" path="res://Scripts/UI/UI.gd" id="1_v5wbf"] +[ext_resource type="Theme" uid="uid://c1fnb2x2lyhi7" path="res://Assets/Resources/theme.tres" id="3_cnagx"] +[ext_resource type="Texture2D" uid="uid://cnxhxrmheing2" path="res://Assets/Visuals/machette.svg" id="4_ni5j4"] +[ext_resource type="Texture2D" uid="uid://c7f4hfw2ms508" path="res://Assets/Visuals/bag.svg" id="5_otg58"] +[ext_resource type="Texture2D" uid="uid://c604bwm7ckesc" path="res://Assets/Visuals/mask0.svg" id="5_v5wbf"] +[ext_resource type="FontFile" uid="uid://cxc8sgnrd70s0" path="res://Assets/Resources/Roboto-Italic.ttf" id="5_ypr6s"] +[ext_resource type="Texture2D" uid="uid://csuuxeq47s64g" path="res://Assets/Visuals/mask1.svg" id="6_2lib2"] +[ext_resource type="Texture2D" uid="uid://dc1dirxeqtb14" path="res://Assets/Visuals/mask2.svg" id="7_uu2l2"] +[ext_resource type="Texture2D" uid="uid://caqfio820gf54" path="res://Assets/Visuals/player.png" id="8_cnagx"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="9_sn1ph"] +[ext_resource type="Script" uid="uid://bbf1up6i5tkg2" path="res://Scripts/UI/MaskButton.gd" id="9_sse4t"] +[ext_resource type="AnimationLibrary" uid="uid://br77u25tw6ebc" path="res://Assets/Resources/toast_machette.tres" id="10_6qxyw"] +[ext_resource type="Texture2D" uid="uid://d0vitg2re8q1v" path="res://Assets/Visuals/space.png" id="10_sse4t"] +[ext_resource type="AnimationLibrary" uid="uid://c16pucu4020rf" path="res://Assets/Resources/toast_mask.tres" id="11_1wnoe"] +[ext_resource type="FontFile" uid="uid://b5wytebhs45ck" path="res://Assets/Resources/NotoEmoji-VariableFont_wght.ttf" id="11_wk513"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ypr6s"] +bg_color = Color(0, 0, 0, 0.498039) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sse4t"] +bg_color = Color(0, 0, 0, 0.494118) +border_color = Color(1, 1, 1, 1) +corner_radius_top_left = 200 +corner_radius_top_right = 200 +corner_radius_bottom_right = 200 +corner_radius_bottom_left = 200 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_otg58"] +bg_color = Color(0.49, 0, 0, 0.14902) + +[sub_resource type="Gradient" id="Gradient_iqaem"] +offsets = PackedFloat32Array(0, 0.5, 1) +colors = PackedColorArray(0.31, 0, 0.0568334, 0, 0.313624, 0, 0.0594214, 0.819608, 0.31, 0, 0.0568334, 0) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_sse4t"] +gradient = SubResource("Gradient_iqaem") +width = 1279 + +[sub_resource type="Gradient" id="Gradient_v5wbf"] +offsets = PackedFloat32Array(0, 0.5, 1) +colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0.819608, 1, 1, 1, 0) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_cnagx"] +gradient = SubResource("Gradient_v5wbf") +width = 1279 + +[sub_resource type="Animation" id="Animation_6qxyw"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("VBoxContainer/Countdown:text") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": ["Restarting level in 3..."] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath(".:visible") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../HUD:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_sn1ph"] +resource_name = "death" +length = 3.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("VBoxContainer/Countdown:text") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1, 2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": ["Restarting level in 3...", "Restarting level in 2...", "Restarting level in 1..."] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath(".:visible") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 3), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../HUD:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 3), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [false, true] +} +tracks/4/type = "method" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("..") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(3), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"death_finished" +}] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_1wnoe"] +_data = { +&"RESET": SubResource("Animation_6qxyw"), +&"death": SubResource("Animation_sn1ph") +} + +[sub_resource type="Gradient" id="Gradient_cnagx"] +offsets = PackedFloat32Array(0, 0.5, 1) +colors = PackedColorArray(0, 0, 0, 0, 0, 0, 0, 0.819608, 0, 0, 0, 0) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_iqaem"] +gradient = SubResource("Gradient_cnagx") +width = 1279 + +[sub_resource type="Gradient" id="Gradient_1wnoe"] +colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0.819608) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_2lib2"] +gradient = SubResource("Gradient_1wnoe") + +[sub_resource type="Animation" id="Animation_2lib2"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Healed:theme_override_colors/font_color") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0.498039)] +} + +[sub_resource type="Animation" id="Animation_1wnoe"] +resource_name = "enter" +length = 4.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 4), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.25, 3.75, 4), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Healed:theme_override_colors/font_color") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0.498039), Color(1, 1, 1, 1), Color(1, 1, 1, 0.498039), Color(1, 1, 1, 1), Color(1, 1, 1, 0.498039), Color(1, 1, 1, 1), Color(1, 1, 1, 0.498039), Color(1, 1, 1, 1), Color(1, 1, 1, 0.498039)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_2lib2"] +_data = { +&"RESET": SubResource("Animation_2lib2"), +&"enter": SubResource("Animation_1wnoe") +} + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_v5wbf"] +bg_color = Color(0, 0, 0, 0.25098) + +[sub_resource type="Gradient" id="Gradient_sse4t"] +offsets = PackedFloat32Array(0, 0.5, 1) +colors = PackedColorArray(0, 0, 0, 0, 0, 0, 0, 0.819608, 0, 0, 0, 0) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_sn1ph"] +gradient = SubResource("Gradient_sse4t") +width = 80 + +[sub_resource type="Gradient" id="Gradient_sn1ph"] +offsets = PackedFloat32Array(0, 0.5, 1) +colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0.819608, 1, 1, 1, 0) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_6qxyw"] +gradient = SubResource("Gradient_sn1ph") +width = 80 + +[sub_resource type="Gradient" id="Gradient_6qxyw"] +offsets = PackedFloat32Array(0, 0.5, 1) +colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0.819608, 1, 1, 1, 0) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_1wnoe"] +gradient = SubResource("Gradient_6qxyw") +width = 500 + +[node name="HUD" type="CanvasLayer" node_paths=PackedStringArray("health_label", "machette_sprite", "main_hud", "inventory_panel", "tool_slot_1", "tool_slot_2", "mask_slot_1", "mask_slot_2", "inventory_equip", "inventory_secondary", "inventory_1", "inventory_2", "inventory_3", "inventory_4", "bubble_machette_anim", "bubble_mask_anim", "death_animator", "level_animator", "level_label", "level_label_id")] +script = ExtResource("1_v5wbf") +health_label = NodePath("HUD/Health") +machette_sprite = NodePath("HUD/ToolHotbar/Tool2/TextureRect") +main_hud = NodePath("HUD") +inventory_panel = NodePath("InventoryPanel") +tool_slot_1 = NodePath("HUD/ToolHotbar/Tool1") +tool_slot_2 = NodePath("HUD/ToolHotbar/Tool2") +mask_slot_1 = NodePath("HUD/MasksHotbar/Mask1") +mask_slot_2 = NodePath("HUD/MasksHotbar/Mask2") +inventory_equip = NodePath("InventoryPanel/VBoxContainer/Mask1") +inventory_secondary = NodePath("InventoryPanel/VBoxContainer/Mask2") +inventory_1 = NodePath("InventoryPanel/OtherMasks/Mask1") +inventory_2 = NodePath("InventoryPanel/OtherMasks/Mask2") +inventory_3 = NodePath("InventoryPanel/OtherMasks/Mask3") +inventory_4 = NodePath("InventoryPanel/OtherMasks/Mask4") +bubble_machette_anim = NodePath("HUD/MachetteBubble/AnimationPlayer") +bubble_mask_anim = NodePath("HUD/MaskBubble/AnimationPlayer") +death_animator = NodePath("DeathPanel/DeathAnimator") +level_animator = NodePath("LevelPanel/AnimationPlayer") +level_label = NodePath("LevelPanel/VBoxContainer/Title2") +level_label_id = NodePath("LevelPanel/VBoxContainer/Level") +level_names = Array[String](["Unknown Shore", "Emerald Grove", "Flamin' Hot Barren Land", "Ashflame Summit", "Silverfrost Peaks"]) + +[node name="HUD" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("3_cnagx") + +[node name="ToolHotbar" type="HBoxContainer" parent="HUD"] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = 32.0 +offset_top = -128.0 +offset_right = 164.0 +offset_bottom = -64.0 +grow_vertical = 0 + +[node name="Tool1" type="PanelContainer" parent="HUD/ToolHotbar"] +custom_minimum_size = Vector2(64, 64) +layout_mode = 2 +theme_type_variation = &"SlotSelected" + +[node name="TextureRect" type="TextureRect" parent="HUD/ToolHotbar/Tool1"] +layout_mode = 2 +texture = ExtResource("1_6xlew") +expand_mode = 1 +stretch_mode = 5 + +[node name="Tool2" type="PanelContainer" parent="HUD/ToolHotbar"] +custom_minimum_size = Vector2(64, 64) +layout_mode = 2 +theme_type_variation = &"SlotDeselected" + +[node name="TextureRect" type="TextureRect" parent="HUD/ToolHotbar/Tool2"] +visible = false +layout_mode = 2 +texture = ExtResource("4_ni5j4") +expand_mode = 1 +stretch_mode = 5 + +[node name="MasksHotbar" type="HBoxContainer" parent="HUD"] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = 204.0 +offset_top = -128.0 +offset_right = 404.0 +offset_bottom = -64.0 +grow_vertical = 0 + +[node name="Mask1" type="PanelContainer" parent="HUD/MasksHotbar"] +custom_minimum_size = Vector2(64, 64) +layout_mode = 2 +theme_type_variation = &"SlotDeselected" + +[node name="Dash" type="TextureRect" parent="HUD/MasksHotbar/Mask1"] +visible = false +layout_mode = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Grapple" type="TextureRect" parent="HUD/MasksHotbar/Mask1"] +visible = false +layout_mode = 2 +texture = ExtResource("6_2lib2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Freeze" type="TextureRect" parent="HUD/MasksHotbar/Mask1"] +visible = false +layout_mode = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Minions" type="TextureRect" parent="HUD/MasksHotbar/Mask1"] +visible = false +layout_mode = 2 +texture = ExtResource("7_uu2l2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Mask2" type="PanelContainer" parent="HUD/MasksHotbar"] +custom_minimum_size = Vector2(64, 64) +layout_mode = 2 +theme_type_variation = &"SlotDeselected" + +[node name="Dash" type="TextureRect" parent="HUD/MasksHotbar/Mask2"] +visible = false +layout_mode = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Grapple" type="TextureRect" parent="HUD/MasksHotbar/Mask2"] +visible = false +layout_mode = 2 +texture = ExtResource("6_2lib2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Freeze" type="TextureRect" parent="HUD/MasksHotbar/Mask2"] +visible = false +layout_mode = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Minions" type="TextureRect" parent="HUD/MasksHotbar/Mask2"] +visible = false +layout_mode = 2 +texture = ExtResource("7_uu2l2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Button" type="Button" parent="HUD/MasksHotbar"] +custom_minimum_size = Vector2(64, 64) +layout_mode = 2 +theme_override_styles/normal = SubResource("StyleBoxFlat_ypr6s") +icon_alignment = 1 +expand_icon = true + +[node name="TextureRect" type="TextureRect" parent="HUD/MasksHotbar/Button"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -20.0 +offset_top = -20.0 +offset_right = 20.0 +offset_bottom = 20.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_otg58") +expand_mode = 1 +stretch_mode = 5 + +[node name="Panel" type="Panel" parent="HUD/MasksHotbar/Button"] +layout_mode = 0 +offset_left = 35.0 +offset_top = -14.0 +offset_right = 103.0 +offset_bottom = 20.0 +scale = Vector2(0.649979, 0.649979) +theme_override_styles/panel = SubResource("StyleBoxFlat_sse4t") + +[node name="TextureRect" type="TextureRect" parent="HUD/MasksHotbar/Button/Panel"] +layout_mode = 1 +anchors_preset = -1 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 16.0 +offset_top = 4.0 +offset_right = -16.0 +offset_bottom = -4.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("10_sse4t") +expand_mode = 1 +stretch_mode = 5 + +[node name="Label" type="Label" parent="HUD"] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = 32.0 +offset_top = -53.0 +offset_right = 97.0 +offset_bottom = -34.0 +grow_vertical = 0 +theme_override_colors/font_color = Color(1, 1, 1, 0.454902) +theme_override_fonts/font = ExtResource("5_ypr6s") +theme_override_font_sizes/font_size = 16 +text = "press E to switch" + +[node name="Label2" type="Label" parent="HUD"] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = 204.0 +offset_top = -53.0 +offset_right = 251.0 +offset_bottom = -34.0 +grow_vertical = 0 +theme_override_colors/font_color = Color(1, 1, 1, 0.454902) +theme_override_fonts/font = ExtResource("5_ypr6s") +theme_override_font_sizes/font_size = 16 +text = "press Q to switch" + +[node name="Health2" type="Label" parent="HUD"] +layout_mode = 1 +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -272.0 +offset_top = -61.0 +offset_right = -32.0 +offset_bottom = -32.0 +grow_horizontal = 0 +grow_vertical = 0 +theme_override_colors/font_color = Color(0.24, 0.1032, 0.11688, 1) +theme_override_fonts/font = ExtResource("11_wk513") +theme_override_font_sizes/font_size = 24 +text = "♥♥♥♥♥♥♥♥♥♥" +horizontal_alignment = 2 +vertical_alignment = 2 + +[node name="Health" type="Label" parent="HUD"] +layout_mode = 1 +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -272.0 +offset_top = -61.0 +offset_right = -32.0 +offset_bottom = -32.0 +grow_horizontal = 0 +grow_vertical = 0 +theme_override_colors/font_color = Color(1, 0.33, 0.33, 1) +theme_override_fonts/font = ExtResource("11_wk513") +theme_override_font_sizes/font_size = 24 +text = "♥♥♥♥♥♥♥♥♥♥" +horizontal_alignment = 2 +vertical_alignment = 2 + +[node name="MachetteBubble" type="VBoxContainer" parent="HUD"] +visible = false +layout_mode = 0 +offset_left = 27.0 +offset_top = 529.0 +offset_right = 238.0 +offset_bottom = 581.0 +theme_override_constants/separation = 0 + +[node name="PanelContainer" type="PanelContainer" parent="HUD/MachetteBubble"] +layout_mode = 2 +theme_type_variation = &"Bubble" + +[node name="Label" type="Label" parent="HUD/MachetteBubble/PanelContainer"] +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "You collected a Machette" + +[node name="TextureRect" type="TextureRect" parent="HUD/MachetteBubble"] +custom_minimum_size = Vector2(0, 17.08) +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("9_sn1ph") +expand_mode = 1 +stretch_mode = 5 +flip_v = true + +[node name="AnimationPlayer" type="AnimationPlayer" parent="HUD/MachetteBubble"] +libraries = { +&"": ExtResource("10_6qxyw") +} + +[node name="MaskBubble" type="VBoxContainer" parent="HUD"] +visible = false +layout_mode = 0 +offset_left = 289.0 +offset_top = 529.0 +offset_right = 456.0 +offset_bottom = 581.0 +theme_override_constants/separation = 0 + +[node name="PanelContainer" type="PanelContainer" parent="HUD/MaskBubble"] +layout_mode = 2 +theme_type_variation = &"Bubble" + +[node name="Label" type="Label" parent="HUD/MaskBubble/PanelContainer"] +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "Mask added to Bag" +horizontal_alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="HUD/MaskBubble"] +custom_minimum_size = Vector2(0, 17.08) +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("9_sn1ph") +expand_mode = 1 +stretch_mode = 5 +flip_v = true + +[node name="AnimationPlayer" type="AnimationPlayer" parent="HUD/MaskBubble"] +libraries = { +&"": ExtResource("11_1wnoe") +} + +[node name="DeathPanel" type="Panel" parent="."] +visible = false +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("3_cnagx") +theme_override_styles/panel = SubResource("StyleBoxFlat_otg58") + +[node name="TextureRect" type="TextureRect" parent="DeathPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = -300.0 +offset_bottom = 300.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_sse4t") + +[node name="TextureRect2" type="TextureRect" parent="DeathPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = -302.0 +offset_bottom = -300.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_cnagx") + +[node name="TextureRect3" type="TextureRect" parent="DeathPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = 300.0 +offset_bottom = 302.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_cnagx") + +[node name="VBoxContainer" type="VBoxContainer" parent="DeathPanel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +alignment = 1 + +[node name="Title" type="Label" parent="DeathPanel/VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +text = "You have fallen." +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Countdown" type="Label" parent="DeathPanel/VBoxContainer"] +layout_mode = 2 +theme_override_colors/font_color = Color(1, 1, 1, 0.498039) +text = "Restarting level in 3..." +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="DeathAnimator" type="AnimationPlayer" parent="DeathPanel"] +libraries = { +&"": SubResource("AnimationLibrary_1wnoe") +} + +[node name="LevelPanel" type="Panel" parent="."] +visible = false +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("3_cnagx") + +[node name="BGTextureRect" type="TextureRect" parent="LevelPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = -284.0 +offset_bottom = 280.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_iqaem") + +[node name="BGTextureRect2" type="TextureRect" parent="LevelPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = -286.0 +offset_bottom = -284.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_cnagx") + +[node name="BGTextureRect3" type="TextureRect" parent="LevelPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = 280.0 +offset_bottom = 282.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_cnagx") + +[node name="BGTextureRect4" type="TextureRect" parent="LevelPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_left = 278.0 +offset_top = -164.0 +offset_right = -746.0 +offset_bottom = -162.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_2lib2") + +[node name="BGTextureRect5" type="TextureRect" parent="LevelPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_left = 1003.0 +offset_top = -162.0 +offset_right = -21.0 +offset_bottom = -160.0 +grow_horizontal = 2 +grow_vertical = 2 +scale = Vector2(-1, -1) +texture = SubResource("GradientTexture1D_2lib2") + +[node name="Title" type="Label" parent="LevelPanel"] +layout_mode = 2 +offset_top = 178.0 +offset_right = 1280.0 +offset_bottom = 216.0 +theme_override_colors/font_color = Color(1, 1, 1, 0.643137) +theme_override_font_sizes/font_size = 24 +text = "New Area Entered" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Healed" type="Label" parent="LevelPanel"] +layout_mode = 2 +offset_top = 522.0 +offset_right = 1280.0 +offset_bottom = 560.0 +theme_override_colors/font_color = Color(1, 1, 1, 0.498039) +theme_override_font_sizes/font_size = 16 +text = "You have been healed." +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="VBoxContainer" type="VBoxContainer" parent="LevelPanel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +alignment = 1 + +[node name="Title2" type="Label" parent="LevelPanel/VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +text = "Emerald Grove" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Level" type="Label" parent="LevelPanel/VBoxContainer"] +layout_mode = 2 +theme_override_colors/font_color = Color(1, 1, 1, 0.498039) +text = "Level 1" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="LevelPanel"] +libraries = { +&"": SubResource("AnimationLibrary_2lib2") +} + +[node name="InventoryPanel" type="Panel" parent="."] +visible = false +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("3_cnagx") +theme_override_styles/panel = SubResource("StyleBoxFlat_v5wbf") + +[node name="BGTextureRect" type="TextureRect" parent="InventoryPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = -284.0 +offset_bottom = 280.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_iqaem") + +[node name="BGTextureRect2" type="TextureRect" parent="InventoryPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = -286.0 +offset_bottom = -284.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_cnagx") + +[node name="BGTextureRect3" type="TextureRect" parent="InventoryPanel"] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = 280.0 +offset_bottom = 282.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_cnagx") + +[node name="PlayerTexture" type="TextureRect" parent="InventoryPanel"] +layout_mode = 1 +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_left = 176.0 +offset_top = -152.0 +offset_right = 583.0 +offset_bottom = 744.0 +grow_vertical = 2 +scale = Vector2(0.318229, 0.318229) +texture = ExtResource("8_cnagx") + +[node name="VBoxContainer" type="VBoxContainer" parent="InventoryPanel"] +layout_mode = 0 +offset_left = 408.0 +offset_top = 272.0 +offset_right = 488.0 +offset_bottom = 448.0 +theme_override_constants/separation = 16 + +[node name="Mask1" type="Button" parent="InventoryPanel/VBoxContainer"] +custom_minimum_size = Vector2(80, 80) +layout_mode = 2 +theme_type_variation = &"SlotFull" +script = ExtResource("9_sse4t") + +[node name="TextureRect2" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask1"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_sn1ph") + +[node name="TextureRect3" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask1"] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -40.0 +offset_right = 40.0 +offset_bottom = 2.0 +grow_horizontal = 2 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="TextureRect4" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask1"] +layout_mode = 1 +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -40.0 +offset_top = -2.0 +offset_right = 40.0 +grow_horizontal = 2 +grow_vertical = 0 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="Dash" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask1"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Grapple" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask1"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("6_2lib2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Freeze" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask1"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Minions" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask1"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("7_uu2l2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Mask2" type="Button" parent="InventoryPanel/VBoxContainer"] +custom_minimum_size = Vector2(80, 80) +layout_mode = 2 +theme_type_variation = &"SlotFull" +script = ExtResource("9_sse4t") +index = 1 + +[node name="TextureRect2" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask2"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_sn1ph") + +[node name="TextureRect3" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask2"] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -40.0 +offset_right = 40.0 +offset_bottom = 2.0 +grow_horizontal = 2 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="TextureRect4" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask2"] +layout_mode = 1 +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -40.0 +offset_top = -2.0 +offset_right = 40.0 +grow_horizontal = 2 +grow_vertical = 0 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="Dash" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask2"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Grapple" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask2"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("6_2lib2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Freeze" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask2"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Minions" type="TextureRect" parent="InventoryPanel/VBoxContainer/Mask2"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("7_uu2l2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Label" type="Label" parent="InventoryPanel"] +layout_mode = 0 +offset_left = 398.0 +offset_top = 242.0 +offset_right = 505.0 +offset_bottom = 261.0 +pivot_offset = Vector2(53, 0) +text = "Equipped Mask" + +[node name="Label2" type="Label" parent="InventoryPanel"] +layout_mode = 0 +offset_left = 389.0 +offset_top = 459.0 +offset_right = 505.0 +offset_bottom = 478.0 +pivot_offset = Vector2(58, 0) +text = "Secondary Mask" +horizontal_alignment = 1 + +[node name="Label3" type="Label" parent="InventoryPanel"] +layout_mode = 0 +offset_left = 688.0 +offset_top = 110.0 +offset_right = 804.0 +offset_bottom = 129.0 +text = "Masks in Bag" + +[node name="TextureRect4Divider" type="TextureRect" parent="InventoryPanel"] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = 1.0 +offset_top = 110.0 +offset_right = 501.0 +offset_bottom = 111.0 +grow_horizontal = 2 +rotation = 1.5708 +texture = SubResource("GradientTexture1D_1wnoe") + +[node name="OtherMasks" type="HBoxContainer" parent="InventoryPanel"] +layout_mode = 2 +offset_left = 688.0 +offset_top = 143.0 +offset_right = 864.0 +offset_bottom = 223.0 +theme_override_constants/separation = 16 + +[node name="Mask1" type="Button" parent="InventoryPanel/OtherMasks"] +custom_minimum_size = Vector2(80, 80) +layout_mode = 2 +theme_type_variation = &"SlotFull" +script = ExtResource("9_sse4t") +index = 2 + +[node name="TextureRect2" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask1"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_sn1ph") + +[node name="TextureRect3" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask1"] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -40.0 +offset_right = 40.0 +offset_bottom = 2.0 +grow_horizontal = 2 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="TextureRect4" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask1"] +layout_mode = 1 +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -40.0 +offset_top = -2.0 +offset_right = 40.0 +grow_horizontal = 2 +grow_vertical = 0 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="Dash" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask1"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Grapple" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask1"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("6_2lib2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Freeze" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask1"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Minions" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask1"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("7_uu2l2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Mask2" type="Button" parent="InventoryPanel/OtherMasks"] +custom_minimum_size = Vector2(80, 80) +layout_mode = 2 +theme_type_variation = &"SlotFull" +script = ExtResource("9_sse4t") +index = 3 + +[node name="TextureRect2" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask2"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_sn1ph") + +[node name="TextureRect3" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask2"] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -40.0 +offset_right = 40.0 +offset_bottom = 2.0 +grow_horizontal = 2 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="TextureRect4" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask2"] +layout_mode = 1 +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -40.0 +offset_top = -2.0 +offset_right = 40.0 +grow_horizontal = 2 +grow_vertical = 0 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="Dash" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask2"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Grapple" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask2"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("6_2lib2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Freeze" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask2"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Minions" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask2"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("7_uu2l2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Mask3" type="Button" parent="InventoryPanel/OtherMasks"] +custom_minimum_size = Vector2(80, 80) +layout_mode = 2 +theme_type_variation = &"SlotFull" +script = ExtResource("9_sse4t") +index = 4 + +[node name="TextureRect2" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask3"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_sn1ph") + +[node name="TextureRect3" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask3"] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -40.0 +offset_right = 40.0 +offset_bottom = 2.0 +grow_horizontal = 2 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="TextureRect4" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask3"] +layout_mode = 1 +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -40.0 +offset_top = -2.0 +offset_right = 40.0 +grow_horizontal = 2 +grow_vertical = 0 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="Dash" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask3"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Grapple" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask3"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("6_2lib2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Freeze" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask3"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Minions" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask3"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("7_uu2l2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Mask4" type="Button" parent="InventoryPanel/OtherMasks"] +custom_minimum_size = Vector2(80, 80) +layout_mode = 2 +theme_type_variation = &"SlotFull" +script = ExtResource("9_sse4t") +index = 5 + +[node name="TextureRect2" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask4"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture1D_sn1ph") + +[node name="TextureRect3" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask4"] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -40.0 +offset_right = 40.0 +offset_bottom = 2.0 +grow_horizontal = 2 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="TextureRect4" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask4"] +layout_mode = 1 +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -40.0 +offset_top = -2.0 +offset_right = 40.0 +grow_horizontal = 2 +grow_vertical = 0 +texture = SubResource("GradientTexture1D_6qxyw") + +[node name="Dash" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask4"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Grapple" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask4"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("6_2lib2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Freeze" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask4"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_v5wbf") +expand_mode = 1 +stretch_mode = 5 + +[node name="Minions" type="TextureRect" parent="InventoryPanel/OtherMasks/Mask4"] +visible = false +custom_minimum_size = Vector2(54, 54) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -27.0 +offset_top = -27.0 +offset_right = 27.0 +offset_bottom = 27.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("7_uu2l2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Button" type="Button" parent="InventoryPanel"] +layout_mode = 1 +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -166.0 +offset_top = -57.0 +offset_right = -62.0 +offset_bottom = -22.0 +grow_horizontal = 0 +grow_vertical = 0 +text = " Close" +expand_icon = true + +[node name="TextureRect" type="TextureRect" parent="InventoryPanel/Button"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 21.0 +offset_right = -81.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("10_sse4t") +expand_mode = 1 +stretch_mode = 5 diff --git a/Levels/main.tscn b/Levels/main.tscn new file mode 100644 index 0000000..3200ae6 --- /dev/null +++ b/Levels/main.tscn @@ -0,0 +1,1061 @@ +[gd_scene load_steps=30 format=3 uid="uid://da028mojbbr5d"] + +[ext_resource type="Script" uid="uid://cde31fpchqoxt" path="res://Scripts/GameLoop.gd" id="1_34bfm"] +[ext_resource type="PackedScene" uid="uid://bi0arg5yr7o3e" path="res://Levels/hud.tscn" id="1_he5fp"] +[ext_resource type="PackedScene" uid="uid://dekoq72ls5rnf" path="res://Reusable Scenes/player.tscn" id="1_oj8hd"] +[ext_resource type="PackedScene" uid="uid://d3tp8n7hgffsm" path="res://Levels/0.tscn" id="3_lwy2l"] +[ext_resource type="Script" uid="uid://kyrqivposqhu" path="res://Scripts/CheckpointArea.gd" id="4_7pswh"] +[ext_resource type="PackedScene" uid="uid://ct2q2kcvlla0v" path="res://Levels/1.tscn" id="4_nj2yk"] +[ext_resource type="Theme" uid="uid://c1fnb2x2lyhi7" path="res://Assets/Resources/theme.tres" id="7_he5fp"] +[ext_resource type="PackedScene" uid="uid://bjcbg2u84c1yg" path="res://Levels/2.tscn" id="7_ovrsl"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="8_u05pv"] +[ext_resource type="Texture2D" uid="uid://bres8bstf7s7g" path="res://Assets/Visuals/player_empty2.svg" id="9_hilkn"] +[ext_resource type="Script" uid="uid://dfgrs1b8urejr" path="res://Scripts/Level Specific/AnimationArea.gd" id="11_mykqc"] +[ext_resource type="Script" uid="uid://cswiai0otl7jn" path="res://Scripts/Level Specific/DisableJump.gd" id="12_hilkn"] +[ext_resource type="Texture2D" uid="uid://cf532b4bg52p3" path="res://Assets/Visuals/tutorial0.png" id="13_5mxy1"] +[ext_resource type="Texture2D" uid="uid://cx4eethwl2nc1" path="res://Assets/Visuals/tutorial1.png" id="14_3lhg3"] +[ext_resource type="Texture2D" uid="uid://di55ub8i4bxwm" path="res://Assets/Visuals/tutorial2.png" id="15_wgfyn"] +[ext_resource type="Texture2D" uid="uid://bq7ilyg1fa51y" path="res://Assets/Visuals/tutorial3.png" id="16_5uk0a"] +[ext_resource type="Texture2D" uid="uid://jfweyk3oxpr5" path="res://Assets/Visuals/tutorial4.png" id="17_ja5tu"] +[ext_resource type="Texture2D" uid="uid://c604bwm7ckesc" path="res://Assets/Visuals/mask0.svg" id="18_7bh50"] + +[sub_resource type="Gradient" id="Gradient_hilkn"] +offsets = PackedFloat32Array(0) +colors = PackedColorArray(0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_5mxy1"] +gradient = SubResource("Gradient_hilkn") + +[sub_resource type="Gradient" id="Gradient_nj2yk"] +offsets = PackedFloat32Array(0, 0.272727, 0.769481, 1) +colors = PackedColorArray(0.17, 0.1309, 0.068, 0, 0.168627, 0.129412, 0.0666667, 1, 0.239216, 0.254902, 0.0352941, 1, 0.235667, 0.25, 0.035, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_7pswh"] +gradient = SubResource("Gradient_nj2yk") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_nj2yk"] +size = Vector2(209, 2345.5) + +[sub_resource type="Gradient" id="Gradient_hbaan"] +colors = PackedColorArray(1, 0.721569, 0.356863, 0, 1, 0.721569, 0.356863, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_he5fp"] +gradient = SubResource("Gradient_hbaan") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ovrsl"] +size = Vector2(345, 738.5) + +[sub_resource type="Animation" id="Animation_u05pv"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player:process_mode") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Player/Node2D/Camera2D:process_mode") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Player/Node2D/Camera2D:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Player/Bubble5:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Player/Bubble5:modulate") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Player/Bubble6:visible") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Player/Bubble7:visible") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Player/Bubble8:visible") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Player/Bubble6:modulate") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Player/Bubble7:modulate") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Player/Bubble8:modulate") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Player/Bubble9:modulate") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Player/Bubble9:visible") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Player:skew") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Player:scale") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Player/Empty:visible") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("HUD:visible") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("CanvasLayer:visible") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/18/type = "value" +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/path = NodePath("CanvasLayer/Control:modulate") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/19/type = "value" +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/path = NodePath("CanvasLayer/Control/Label:visible") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("CanvasLayer/Control/Label2:visible") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/21/type = "value" +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/path = NodePath("CanvasLayer/Control/Label3:visible") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/22/type = "value" +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/path = NodePath("CanvasLayer/Control/Label:modulate") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/23/type = "value" +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/path = NodePath("CanvasLayer/Control/Label2:modulate") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/24/type = "value" +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/path = NodePath("CanvasLayer/Control/Label3:modulate") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_he5fp"] +resource_name = "ending" +length = 40.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player:process_mode") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [4] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Player/Node2D/Camera2D:process_mode") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(2.06667), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Player/Node2D/Camera2D:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(2.06667, 10.3974, 11.3629, 13.295, 14.5333), +"transitions": PackedFloat32Array(1, 0.267943, 0.267943, 0.329877, 0.329877), +"update": 0, +"values": [Vector2(0, 0), Vector2(0, 0), Vector2(845, 0), Vector2(845, 0), Vector2(0, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Player/Bubble5:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(2.06667, 4.5), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Player/Bubble5:modulate") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(2.06667, 2.26588, 4.28594, 4.5), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Player/Bubble6:visible") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(2.06667, 5.24531, 7.46667), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [false, true, false] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Player/Bubble7:visible") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(2.06667, 8.06029, 9.55062), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [false, true, false] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Player/Bubble8:visible") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(2.06667, 14.4432, 16.8495), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [false, true, false] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Player/Bubble6:modulate") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(2.06667, 5.24531, 5.44452, 7.25261, 7.46667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Player/Bubble7:modulate") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(2.06667, 8.06029, 8.25951, 9.3, 9.56667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Player/Bubble8:modulate") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(2.06667, 14.4432, 14.6424, 16.5667, 16.8333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Player/Bubble9:modulate") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(2.06667, 20.6667, 20.8659, 22.8333, 23.1), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Player/Bubble9:visible") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(20.6667), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/13/type = "method" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Player") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(2.1, 10.0333, 25.0333), +"transitions": PackedFloat32Array(1, 1, 1), +"values": [{ +"args": [], +"method": &"make_tools_invisible" +}, { +"args": [], +"method": &"make_mask_invisible" +}, { +"args": [], +"method": &"make_invisisble" +}] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = false +tracks/14/path = NodePath("Player:skew") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(24.5476, 25.0294, 25.0333), +"transitions": PackedFloat32Array(2.46229, 2.46229, 1), +"update": 0, +"values": [0.0, 1.28631, 0.0] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Player:scale") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(2.06667, 24.5476, 25.0295, 25.0313), +"transitions": PackedFloat32Array(1, 2.63902, 2.63902, 2.63902), +"update": 0, +"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1.38394, 0.18062), Vector2(1, 1)] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("Player/Empty:visible") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(2.06667, 25.0333), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [false, true] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("HUD:visible") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/18/type = "value" +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/path = NodePath("CanvasLayer:visible") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/19/type = "value" +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/path = NodePath("CanvasLayer/Control:modulate") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/keys = { +"times": PackedFloat32Array(0, 1.50195), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("CanvasLayer/Control/Label:visible") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { +"times": PackedFloat32Array(0, 28.2, 34.0605), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [false, true, false] +} +tracks/21/type = "value" +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/path = NodePath("CanvasLayer/Control/Label2:visible") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/keys = { +"times": PackedFloat32Array(0, 34.0605, 38.5938), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [false, true, false] +} +tracks/22/type = "value" +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/path = NodePath("CanvasLayer/Control/Label3:visible") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/keys = { +"times": PackedFloat32Array(0, 38.5938), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [false, true] +} +tracks/23/type = "value" +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/path = NodePath("CanvasLayer/Control/Label:modulate") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/keys = { +"times": PackedFloat32Array(0, 28.2139, 28.8655), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/24/type = "value" +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/path = NodePath("CanvasLayer/Control/Label2:modulate") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/25/type = "value" +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/path = NodePath("CanvasLayer/Control/Label3:modulate") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_u05pv"] +_data = { +&"RESET": SubResource("Animation_u05pv"), +&"ending": SubResource("Animation_he5fp") +} + +[node name="Node2D" type="Node2D" node_paths=PackedStringArray("level_nodes")] +script = ExtResource("1_34bfm") +level_nodes = [NodePath("SCENE 0"), NodePath("SCENE 1"), NodePath("SCENE 2")] +level_packs = Array[PackedScene]([ExtResource("3_lwy2l"), ExtResource("4_nj2yk"), ExtResource("7_ovrsl")]) + +[node name="CanvasLayer" type="CanvasLayer" parent="."] +visible = false + +[node name="Control" type="Control" parent="CanvasLayer"] +modulate = Color(1, 1, 1, 0) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("7_he5fp") + +[node name="TextureRect" type="TextureRect" parent="CanvasLayer/Control"] +layout_mode = 0 +offset_left = -78.0 +offset_right = 1296.0 +offset_bottom = 124.0 +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="TextureRect2" type="TextureRect" parent="CanvasLayer/Control"] +layout_mode = 0 +offset_left = -78.0 +offset_top = 596.0 +offset_right = 1296.0 +offset_bottom = 720.0 +texture = SubResource("GradientTexture1D_5mxy1") + +[node name="Label" type="Label" parent="CanvasLayer/Control"] +visible = false +modulate = Color(1, 1, 1, 0) +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 78.0 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 24 +text = "A shroud. That’s all that’s left of the player." +horizontal_alignment = 1 +vertical_alignment = 2 + +[node name="Label2" type="Label" parent="CanvasLayer/Control"] +visible = false +modulate = Color(1, 1, 1, 0) +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 78.0 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 24 +text = "May be continued." +horizontal_alignment = 1 +vertical_alignment = 2 + +[node name="Label3" type="Label" parent="CanvasLayer/Control"] +visible = false +modulate = Color(1, 1, 1, 0) +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 78.0 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 24 +text = "Thanks for playing!" +horizontal_alignment = 1 +vertical_alignment = 2 + +[node name="HUD" parent="." instance=ExtResource("1_he5fp")] + +[node name="Player" parent="." instance=ExtResource("1_oj8hd")] +position = Vector2(640, 430) + +[node name="Node2D" type="Node2D" parent="Player"] +position = Vector2(0, -79) + +[node name="Camera2D" type="Camera2D" parent="Player/Node2D"] +process_mode = 1 +process_callback = 0 +position_smoothing_enabled = true +drag_horizontal_enabled = true +drag_top_margin = 0.1 +drag_right_margin = 0.1 + +[node name="Bubble5" type="VBoxContainer" parent="Player"] +visible = false +modulate = Color(1, 1, 1, 0) +offset_left = -147.0 +offset_top = -148.0 +offset_right = 147.0 +offset_bottom = -96.0 +theme = ExtResource("7_he5fp") +theme_override_constants/separation = 0 + +[node name="PanelContainer" type="PanelContainer" parent="Player/Bubble5"] +layout_mode = 2 +theme_type_variation = &"Bubble" + +[node name="Label" type="Label" parent="Player/Bubble5/PanelContainer"] +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "Finally! I've collected all of the masks!" +horizontal_alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="Player/Bubble5"] +custom_minimum_size = Vector2(0, 17.08) +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("8_u05pv") +expand_mode = 1 +stretch_mode = 5 +flip_v = true + +[node name="Bubble6" type="VBoxContainer" parent="Player"] +visible = false +offset_left = -77.0 +offset_top = -148.0 +offset_right = 77.0 +offset_bottom = -96.0 +size_flags_horizontal = 4 +theme = ExtResource("7_he5fp") +theme_override_constants/separation = 0 + +[node name="PanelContainer" type="PanelContainer" parent="Player/Bubble6"] +layout_mode = 2 +theme_type_variation = &"Bubble" + +[node name="Label" type="Label" parent="Player/Bubble6/PanelContainer"] +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "Or, is there more?" +horizontal_alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="Player/Bubble6"] +custom_minimum_size = Vector2(0, 17.08) +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("8_u05pv") +expand_mode = 1 +stretch_mode = 5 +flip_v = true + +[node name="Bubble7" type="VBoxContainer" parent="Player"] +visible = false +offset_left = -53.0 +offset_top = -148.0 +offset_right = 53.0 +offset_bottom = -96.0 +size_flags_horizontal = 4 +theme = ExtResource("7_he5fp") +theme_override_constants/separation = 0 + +[node name="PanelContainer" type="PanelContainer" parent="Player/Bubble7"] +layout_mode = 2 +theme_type_variation = &"Bubble" + +[node name="Label" type="Label" parent="Player/Bubble7/PanelContainer"] +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "I can't see." +horizontal_alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="Player/Bubble7"] +custom_minimum_size = Vector2(0, 17.08) +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("8_u05pv") +expand_mode = 1 +stretch_mode = 5 +flip_v = true + +[node name="Bubble8" type="VBoxContainer" parent="Player"] +visible = false +offset_left = -109.0 +offset_top = -148.0 +offset_right = 108.0 +offset_bottom = -96.0 +size_flags_horizontal = 4 +theme = ExtResource("7_he5fp") +theme_override_constants/separation = 0 + +[node name="PanelContainer" type="PanelContainer" parent="Player/Bubble8"] +layout_mode = 2 +theme_type_variation = &"Bubble" + +[node name="Label" type="Label" parent="Player/Bubble8/PanelContainer"] +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "There is! Time to continue!" +horizontal_alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="Player/Bubble8"] +custom_minimum_size = Vector2(0, 17.08) +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("8_u05pv") +expand_mode = 1 +stretch_mode = 5 +flip_v = true + +[node name="Bubble9" type="VBoxContainer" parent="Player"] +visible = false +offset_left = -85.0 +offset_top = -148.0 +offset_right = 84.0 +offset_bottom = -96.0 +size_flags_horizontal = 4 +theme = ExtResource("7_he5fp") +theme_override_constants/separation = 0 + +[node name="PanelContainer" type="PanelContainer" parent="Player/Bubble9"] +layout_mode = 2 +theme_type_variation = &"Bubble" + +[node name="Label" type="Label" parent="Player/Bubble9/PanelContainer"] +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "I don't feel so well..." +horizontal_alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="Player/Bubble9"] +custom_minimum_size = Vector2(0, 17.08) +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("8_u05pv") +expand_mode = 1 +stretch_mode = 5 +flip_v = true + +[node name="NoUseBubble2" type="VBoxContainer" parent="Player"] +visible = false +offset_left = -176.0 +offset_top = -148.0 +offset_right = 175.0 +offset_bottom = -96.0 +size_flags_horizontal = 4 +theme = ExtResource("7_he5fp") +theme_override_constants/separation = 0 + +[node name="PanelContainer" type="PanelContainer" parent="Player/NoUseBubble2"] +layout_mode = 2 +theme_type_variation = &"Bubble" + +[node name="Label" type="Label" parent="Player/NoUseBubble2/PanelContainer"] +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "There is no use looking back. I must continue." +horizontal_alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="Player/NoUseBubble2"] +custom_minimum_size = Vector2(0, 17.08) +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("8_u05pv") +expand_mode = 1 +stretch_mode = 5 +flip_v = true + +[node name="Empty" type="Sprite2D" parent="Player"] +visible = false +position = Vector2(1.99998, -10) +scale = Vector2(0.0586233, 0.0586233) +texture = ExtResource("9_hilkn") + +[node name="SCENE 0" parent="." instance=ExtResource("3_lwy2l")] + +[node name="Transition0-1" type="Sprite2D" parent="."] +z_index = 1025 +position = Vector2(9541, 652.75) +scale = Vector2(11.9844, 6.85156) +texture = SubResource("GradientTexture2D_7pswh") + +[node name="CheckpointArea" type="Area2D" parent="."] +position = Vector2(10557, 125) +collision_mask = 3 +script = ExtResource("4_7pswh") +level_id = 1 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CheckpointArea"] +position = Vector2(-1, -771) +shape = SubResource("RectangleShape2D_nj2yk") + +[node name="SCENE 1" parent="." instance=ExtResource("4_nj2yk")] +position = Vector2(10835, -68) + +[node name="Transition0-2" type="Sprite2D" parent="."] +z_index = -996 +position = Vector2(42065, -1449) +scale = Vector2(27.3516, 150.531) +texture = SubResource("GradientTexture2D_he5fp") + +[node name="CheckpointArea2" type="Area2D" parent="."] +position = Vector2(42784, -2430) +collision_mask = 3 +script = ExtResource("4_7pswh") +level_id = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CheckpointArea2"] +position = Vector2(-1, -771) +shape = SubResource("RectangleShape2D_nj2yk") + +[node name="SCENE 2" parent="." instance=ExtResource("7_ovrsl")] +position = Vector2(43108, 0) + +[node name="AnimationArea" type="Area2D" parent="." node_paths=PackedStringArray("anim")] +position = Vector2(66910, -2863) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("11_mykqc") +anim = NodePath("../AnimationPlayer") +aname = "ending" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="AnimationArea"] +position = Vector2(-66, -219.75) +shape = SubResource("RectangleShape2D_ovrsl") + +[node name="AnimationArea2" type="Area2D" parent="."] +position = Vector2(66393, -2863) +collision_layer = 3 +collision_mask = 3 +script = ExtResource("12_hilkn") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="AnimationArea2"] +position = Vector2(-66, -219.75) +shape = SubResource("RectangleShape2D_ovrsl") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_u05pv") +} + +[node name="Tutorial0" type="Sprite2D" parent="."] +z_index = -50 +position = Vector2(881, 320) +scale = Vector2(0.142895, 0.142895) +texture = ExtResource("13_5mxy1") + +[node name="Tutorial1" type="Sprite2D" parent="."] +z_index = -50 +position = Vector2(2651, 208) +scale = Vector2(0.142895, 0.142895) +texture = ExtResource("14_3lhg3") + +[node name="Tutorial2" type="Sprite2D" parent="."] +z_index = -4 +position = Vector2(6052, 220) +scale = Vector2(0.142895, 0.142895) +texture = ExtResource("15_wgfyn") + +[node name="Tutorial3" type="Sprite2D" parent="."] +z_index = -4 +position = Vector2(7629, 279) +scale = Vector2(0.142895, 0.142895) +texture = ExtResource("16_5uk0a") + +[node name="Tutorial4" type="Sprite2D" parent="."] +z_index = -4 +position = Vector2(8195, 242) +scale = Vector2(0.142895, 0.142895) +texture = ExtResource("17_ja5tu") + +[node name="mask" type="Sprite2D" parent="Tutorial4"] +z_index = -4 +position = Vector2(-881.777, -83.978) +scale = Vector2(0.280441, 0.280441) +texture = ExtResource("18_7bh50") + +[connection signal="body_entered" from="CheckpointArea" to="CheckpointArea" method="_on_body_entered"] +[connection signal="body_entered" from="CheckpointArea2" to="CheckpointArea2" method="_on_body_entered"] +[connection signal="body_entered" from="AnimationArea" to="AnimationArea" method="_on_body_entered"] +[connection signal="body_entered" from="AnimationArea2" to="AnimationArea2" method="_on_body_entered"] diff --git a/Reusable Scenes/0/enemy.tscn b/Reusable Scenes/0/enemy.tscn new file mode 100644 index 0000000..0765b5e --- /dev/null +++ b/Reusable Scenes/0/enemy.tscn @@ -0,0 +1,193 @@ +[gd_scene load_steps=18 format=3 uid="uid://dqw3tqg5374ui"] + +[ext_resource type="Script" uid="uid://c5warxls18mds" path="res://Scripts/Entity.gd" id="1_uu6qt"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="2_lxnsa"] +[ext_resource type="Script" uid="uid://n2vodoxhopnr" path="res://Scripts/Enemy AI/ShoreAI.gd" id="2_twxkf"] +[ext_resource type="Texture2D" uid="uid://yfecq14wfrpc" path="res://Assets/Visuals/righttri.png" id="3_t7yj4"] +[ext_resource type="Texture2D" uid="uid://ddxbrkfa7i5n" path="res://Assets/Visuals/hexagon.png" id="3_uu6qt"] +[ext_resource type="PackedScene" uid="uid://bdws5hhfuef84" path="res://Reusable Scenes/Masks/speed_mask.tscn" id="4_lxnsa"] +[ext_resource type="PackedScene" uid="uid://c3nbowvq6g4ah" path="res://Reusable Scenes/Weapons/weapon_machette.tscn" id="6_h27ao"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_twxkf"] +radius = 722.224 + +[sub_resource type="CircleShape2D" id="CircleShape2D_lrpdk"] +radius = 73.0616 + +[sub_resource type="Gradient" id="Gradient_twxkf"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.3074, 0.53, 0.33708, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_lrpdk"] +gradient = SubResource("Gradient_twxkf") +width = 26 + +[sub_resource type="Gradient" id="Gradient_lxnsa"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.299315, 0.19351, 0.158235, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_uu6qt"] +gradient = SubResource("Gradient_lxnsa") +width = 26 + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_h27ao"] +radius = 13.0 +height = 80.0 + +[sub_resource type="Animation" id="Animation_h27ao"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SpriteGroup/Foot:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-9, 27)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SpriteGroup/Foot2:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(9, 27)] +} + +[sub_resource type="Animation" id="Animation_uu6qt"] +resource_name = "walk" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SpriteGroup/Foot:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.166667, 0.233333, 0.333333, 0.4, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(-9, 27), Vector2(-6, 25), Vector2(-3, 24), Vector2(2, 24), Vector2(6, 26), Vector2(9, 27), Vector2(-9, 27)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SpriteGroup/Foot2:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.400847, 0.4759, 0.560019, 0.626686, 0.726686, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(9, 27), Vector2(-9, 27), Vector2(-6, 25), Vector2(-3, 24), Vector2(2, 24), Vector2(6, 26), Vector2(9, 27)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_twxkf"] +_data = { +&"RESET": SubResource("Animation_h27ao"), +&"walk": SubResource("Animation_uu6qt") +} + +[node name="EnemyShore" type="RigidBody2D"] +collision_layer = 32768 +lock_rotation = true +script = ExtResource("1_uu6qt") +max_health = 20 + +[node name="EnemyShoreAI" type="Node" parent="." node_paths=PackedStringArray("weapon", "sprite", "animator")] +script = ExtResource("2_twxkf") +weapon = NodePath("../weapon_machette") +sprite = NodePath("../SpriteGroup") +animator = NodePath("../AnimationPlayer") + +[node name="AttackCooldown" type="Timer" parent="EnemyShoreAI"] +wait_time = 1.5 + +[node name="DetectArea" type="Area2D" parent="."] +collision_layer = 3 +collision_mask = 3 +collision_priority = 2.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DetectArea"] +shape = SubResource("CircleShape2D_twxkf") + +[node name="AttackArea" type="Area2D" parent="."] +collision_layer = 3 +collision_mask = 3 +collision_priority = 2.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="AttackArea"] +shape = SubResource("CircleShape2D_lrpdk") +debug_color = Color(0.937978, 1.20327e-05, 0.625666, 0.42) + +[node name="SpriteGroup" type="Node2D" parent="."] + +[node name="Foot" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.219311, 0.47227, 8.66354e-07, 1) +position = Vector2(-9, 27) +rotation = 3.14159 +scale = Vector2(0.015, -0.00680612) +texture = ExtResource("2_lxnsa") + +[node name="Foot2" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.219311, 0.47227, 8.66354e-07, 1) +position = Vector2(9, 27) +rotation = 3.14159 +scale = Vector2(0.015, -0.00680612) +texture = ExtResource("2_lxnsa") + +[node name="Sprite2D" type="Sprite2D" parent="SpriteGroup"] +position = Vector2(0, 3) +scale = Vector2(1, 36.43) +texture = SubResource("GradientTexture1D_lrpdk") + +[node name="Sprite2D3" type="Sprite2D" parent="SpriteGroup"] +position = Vector2(0, 14.6075) +scale = Vector2(1, 13.215) +texture = SubResource("GradientTexture1D_uu6qt") + +[node name="Sprite2D2" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.46, 0.3611, 0.322, 1) +position = Vector2(0, -35) +rotation = 3.14159 +scale = Vector2(0.0277332, 0.0277332) +texture = ExtResource("3_uu6qt") + +[node name="Righttri" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.458824, 0.360784, 0.317647, 1) +position = Vector2(-7.87, -8.115) +scale = Vector2(0.01, 0.0138965) +texture = ExtResource("3_t7yj4") + +[node name="SpeedMask" parent="SpriteGroup" instance=ExtResource("4_lxnsa")] +process_mode = 4 +position = Vector2(6, -34) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +visible = false +position = Vector2(0, -9.44) +shape = SubResource("CapsuleShape2D_h27ao") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_twxkf") +} + +[node name="weapon_machette" parent="." instance=ExtResource("6_h27ao")] +position = Vector2(23, -4) +scale = Vector2(1, 1) +mask = 2 +disable_aft_atk = true + +[connection signal="timeout" from="EnemyShoreAI/AttackCooldown" to="EnemyShoreAI" method="_on_attack_cooldown_timeout"] +[connection signal="body_entered" from="DetectArea" to="EnemyShoreAI" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="AttackArea" to="EnemyShoreAI" method="_on_attack_area_body_entered"] +[connection signal="body_exited" from="AttackArea" to="EnemyShoreAI" method="_on_attack_area_body_exited"] diff --git a/Reusable Scenes/0/tree.tscn b/Reusable Scenes/0/tree.tscn new file mode 100644 index 0000000..6f2f258 --- /dev/null +++ b/Reusable Scenes/0/tree.tscn @@ -0,0 +1,455 @@ +[gd_scene load_steps=8 format=3 uid="uid://ceukarr4k0tni"] + +[ext_resource type="Texture2D" uid="uid://ddxbrkfa7i5n" path="res://Assets/Visuals/hexagon.png" id="1_b54q5"] + +[sub_resource type="Gradient" id="Gradient_gnif3"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.6, 0.4245, 0.21, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_lwy2l"] +gradient = SubResource("Gradient_gnif3") +width = 32 + +[sub_resource type="Gradient" id="Gradient_34bfm"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.78, 0.56589, 0.3042, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ovrsl"] +gradient = SubResource("Gradient_34bfm") +width = 32 + +[sub_resource type="Gradient" id="Gradient_hbaan"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.488555, 0.689084, 0.041547, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_he5fp"] +gradient = SubResource("Gradient_hbaan") +width = 32 + +[node name="Tree" type="Node2D"] +modulate = Color(0.676879, 0.676879, 0.676879, 1) + +[node name="Sprite2D" type="Sprite2D" parent="."] +modulate = Color(0.552956, 0.552956, 0.552956, 1) +scale = Vector2(1.4375, 103) +texture = SubResource("GradientTexture1D_lwy2l") +offset = Vector2(0, -0.5) + +[node name="Sprite2D2" type="Sprite2D" parent="."] +modulate = Color(0.552956, 0.552956, 0.552956, 1) +position = Vector2(0, -103) +rotation = -0.0977911 +scale = Vector2(1.2731, 99.8124) +texture = SubResource("GradientTexture1D_ovrsl") +offset = Vector2(0, -0.5) + +[node name="Sprite2D3" type="Sprite2D" parent="."] +modulate = Color(0.552956, 0.552956, 0.552956, 1) +position = Vector2(-9, -201) +rotation = -0.207685 +scale = Vector2(1.21439, 99.8695) +texture = SubResource("GradientTexture1D_lwy2l") +offset = Vector2(0, -0.5) + +[node name="Sprite2D4" type="Sprite2D" parent="."] +modulate = Color(0.552956, 0.552956, 0.552956, 1) +position = Vector2(-29, -297) +rotation = -0.324123 +scale = Vector2(1.06719, 85.8361) +texture = SubResource("GradientTexture1D_ovrsl") +offset = Vector2(0, -0.5) + +[node name="mainNode2D3" type="Node2D" parent="."] +modulate = Color(0.828197, 0.828197, 0.828197, 1) +position = Vector2(-51, -381) +rotation = 0.159562 +scale = Vector2(-0.645606, 0.645606) + +[node name="Sprite2D5" type="Sprite2D" parent="mainNode2D3"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="mainNode2D3"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="mainNode2D3"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="mainNode2D4" type="Node2D" parent="."] +modulate = Color(0.828197, 0.828197, 0.828197, 1) +position = Vector2(-51, -381) +rotation = -0.346071 +scale = Vector2(-0.740513, 0.740513) + +[node name="Sprite2D5" type="Sprite2D" parent="mainNode2D4"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="mainNode2D4"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="mainNode2D4"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Node2D7" type="Node2D" parent="."] +modulate = Color(0.629675, 0.629675, 0.629675, 1) +position = Vector2(-51, -381) +rotation = -0.105893 +scale = Vector2(-0.740513, 0.740513) + +[node name="Sprite2D5" type="Sprite2D" parent="Node2D7"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="Node2D7"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="Node2D7"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Node2D10" type="Node2D" parent="."] +modulate = Color(0.629675, 0.629675, 0.629675, 1) +position = Vector2(-51, -381) +rotation = -0.738354 +scale = Vector2(-0.740513, 0.740513) + +[node name="Sprite2D5" type="Sprite2D" parent="Node2D10"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="Node2D10"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="Node2D10"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="mainNode2D5" type="Node2D" parent="."] +modulate = Color(0.828197, 0.828197, 0.828197, 1) +position = Vector2(-51, -381) +rotation = -1.08139 +scale = Vector2(-0.638031, 0.638031) + +[node name="Sprite2D5" type="Sprite2D" parent="mainNode2D5"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="mainNode2D5"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="mainNode2D5"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="mainNode2D" type="Node2D" parent="."] +modulate = Color(0.828197, 0.828197, 0.828197, 1) +position = Vector2(-56, -379) +rotation = -0.545855 +scale = Vector2(0.630668, 0.630668) + +[node name="Sprite2D5" type="Sprite2D" parent="mainNode2D"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="mainNode2D"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="mainNode2D"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Node2D9" type="Node2D" parent="."] +modulate = Color(0.629675, 0.629675, 0.629675, 1) +position = Vector2(-56, -379) +rotation = 0.380499 +scale = Vector2(0.744016, 0.744016) + +[node name="Sprite2D5" type="Sprite2D" parent="Node2D9"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="Node2D9"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="Node2D9"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Node2D8" type="Node2D" parent="."] +modulate = Color(0.629675, 0.629675, 0.629675, 1) +position = Vector2(-56, -379) +rotation = -0.252739 +scale = Vector2(0.744016, 0.744016) + +[node name="Sprite2D5" type="Sprite2D" parent="Node2D8"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="Node2D8"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="Node2D8"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="mainNode2D2" type="Node2D" parent="."] +modulate = Color(0.828197, 0.828197, 0.828197, 1) +position = Vector2(-56, -379) +rotation = 0.0687167 +scale = Vector2(0.727442, 0.727442) + +[node name="Sprite2D5" type="Sprite2D" parent="mainNode2D2"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="mainNode2D2"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="mainNode2D2"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Node2D11" type="Node2D" parent="."] +modulate = Color(0.629675, 0.629675, 0.629675, 1) +position = Vector2(-68, -397) +rotation = 0.950834 +scale = Vector2(0.626913, 0.628772) + +[node name="Sprite2D5" type="Sprite2D" parent="Node2D11"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="Node2D11"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="Node2D11"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="mainNode2D6" type="Node2D" parent="."] +modulate = Color(0.828197, 0.828197, 0.828197, 1) +position = Vector2(-56, -379) +rotation = 0.73046 +scale = Vector2(0.664961, 0.703489) + +[node name="Sprite2D5" type="Sprite2D" parent="mainNode2D6"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="mainNode2D6"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="mainNode2D6"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Node2D12" type="Node2D" parent="."] +modulate = Color(0.629675, 0.629675, 0.629675, 1) +position = Vector2(-68, -397) +rotation = 1.97748 +scale = Vector2(0.630013, -0.631886) + +[node name="Sprite2D5" type="Sprite2D" parent="Node2D12"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="Node2D12"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="Node2D12"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="mainNode2D8" type="Node2D" parent="."] +modulate = Color(0.828197, 0.828197, 0.828197, 1) +position = Vector2(-68, -397) +rotation = 1.63903 +scale = Vector2(0.559908, -0.561572) + +[node name="Sprite2D5" type="Sprite2D" parent="mainNode2D8"] +rotation = 0.111521 +scale = Vector2(4.10644, 36.4106) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D6" type="Sprite2D" parent="mainNode2D8"] +position = Vector2(-123, -16) +rotation = -0.25386 +scale = Vector2(2.81758, 32.1459) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Sprite2D7" type="Sprite2D" parent="mainNode2D8"] +position = Vector2(-203, 6) +rotation = -0.826959 +scale = Vector2(2.51917, 25.9537) +texture = SubResource("GradientTexture1D_he5fp") +offset = Vector2(-16, -0.5) + +[node name="Hexagon" type="Sprite2D" parent="."] +modulate = Color(0.227159, 0.158365, 0.102112, 1) +position = Vector2(-77, -378) +rotation = 2.16671 +scale = Vector2(0.0515273, 0.0515273) +texture = ExtResource("1_b54q5") + +[node name="Hexagon2" type="Sprite2D" parent="Hexagon"] +modulate = Color(0.712129, 0.712129, 0.712129, 1) +position = Vector2(272.679, -136.34) +scale = Vector2(0.172528, 0.172528) +texture = ExtResource("1_b54q5") + +[node name="Hexagon3" type="Sprite2D" parent="Hexagon"] +modulate = Color(0.712129, 0.712129, 0.712129, 1) +position = Vector2(62.926, -314.63) +scale = Vector2(0.172528, 0.172528) +texture = ExtResource("1_b54q5") + +[node name="Hexagon2" type="Sprite2D" parent="."] +modulate = Color(0.306236, 0.218686, 0.147156, 1) +position = Vector2(-35, -401) +rotation = 0.266443 +scale = Vector2(0.0515273, 0.0515273) +texture = ExtResource("1_b54q5") + +[node name="Hexagon2" type="Sprite2D" parent="Hexagon2"] +modulate = Color(0.712129, 0.712129, 0.712129, 1) +position = Vector2(272.679, -136.34) +scale = Vector2(0.172528, 0.172528) +texture = ExtResource("1_b54q5") + +[node name="Hexagon3" type="Sprite2D" parent="Hexagon2"] +modulate = Color(0.712129, 0.712129, 0.712129, 1) +position = Vector2(62.926, -314.63) +scale = Vector2(0.172528, 0.172528) +texture = ExtResource("1_b54q5") + +[node name="Hexagon3" type="Sprite2D" parent="."] +modulate = Color(0.238132, 0.166711, 0.108316, 1) +position = Vector2(-71, -417) +rotation = -0.147981 +scale = Vector2(0.0391577, 0.0391577) +texture = ExtResource("1_b54q5") + +[node name="Hexagon2" type="Sprite2D" parent="Hexagon3"] +modulate = Color(0.712129, 0.712129, 0.712129, 1) +position = Vector2(272.679, -136.34) +scale = Vector2(0.172528, 0.172528) +texture = ExtResource("1_b54q5") + +[node name="Hexagon3" type="Sprite2D" parent="Hexagon3"] +modulate = Color(0.712129, 0.712129, 0.712129, 1) +position = Vector2(62.926, -314.63) +scale = Vector2(0.172528, 0.172528) +texture = ExtResource("1_b54q5") diff --git a/Reusable Scenes/1/bg_tree.tscn b/Reusable Scenes/1/bg_tree.tscn new file mode 100644 index 0000000..7670692 --- /dev/null +++ b/Reusable Scenes/1/bg_tree.tscn @@ -0,0 +1,60 @@ +[gd_scene load_steps=3 format=3 uid="uid://beucb04e2mvm7"] + +[sub_resource type="Gradient" id="Gradient_y0prk"] +offsets = PackedFloat32Array(0.0210843) +colors = PackedColorArray(0.0705882, 0.0901961, 0.0627451, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_0nkm3"] +gradient = SubResource("Gradient_y0prk") +width = 64 + +[node name="BGTree" type="Node2D"] +z_index = -90 +scale = Vector2(0.78, 0.78) + +[node name="Sprite" type="Sprite2D" parent="."] +position = Vector2(68, -426) +scale = Vector2(3.125, 916) +texture = SubResource("GradientTexture1D_0nkm3") + +[node name="Sprite2" type="Sprite2D" parent="."] +position = Vector2(-1.33514e-05, -202) +rotation = 0.270581 +scale = Vector2(1.33656, 427.101) +texture = SubResource("GradientTexture1D_0nkm3") + +[node name="Sprite3" type="Sprite2D" parent="."] +position = Vector2(153, -146) +rotation = -0.239004 +scale = Vector2(1.33656, 427.101) +texture = SubResource("GradientTexture1D_0nkm3") + +[node name="Sprite4" type="Sprite2D" parent="."] +position = Vector2(-148, 20) +rotation = 0.873128 +scale = Vector2(1.33656, 427.101) +texture = SubResource("GradientTexture1D_0nkm3") + +[node name="Sprite5" type="Sprite2D" parent="."] +position = Vector2(-84, -703) +rotation = 2.24277 +scale = Vector2(1.33656, 427.101) +texture = SubResource("GradientTexture1D_0nkm3") + +[node name="Sprite6" type="Sprite2D" parent="."] +position = Vector2(-71.9999, -954) +rotation = 3.12576 +scale = Vector2(9.45908, 322.896) +texture = SubResource("GradientTexture1D_0nkm3") + +[node name="Sprite7" type="Sprite2D" parent="."] +position = Vector2(285, -920) +rotation = 2.85721 +scale = Vector2(7.69613, 391.078) +texture = SubResource("GradientTexture1D_0nkm3") + +[node name="Sprite8" type="Sprite2D" parent="."] +position = Vector2(-349, -1070) +rotation = 3.25921 +scale = Vector2(6.84112, 358.914) +texture = SubResource("GradientTexture1D_0nkm3") diff --git a/Reusable Scenes/1/enemy_archer.tscn b/Reusable Scenes/1/enemy_archer.tscn new file mode 100644 index 0000000..9dbfa11 --- /dev/null +++ b/Reusable Scenes/1/enemy_archer.tscn @@ -0,0 +1,194 @@ +[gd_scene load_steps=17 format=3 uid="uid://s27nyuw0bl5a"] + +[ext_resource type="Script" uid="uid://c5warxls18mds" path="res://Scripts/Entity.gd" id="1_wgldt"] +[ext_resource type="Script" uid="uid://cahhmhibcdjcd" path="res://Scripts/Enemy AI/JungleAI.gd" id="2_8a6jk"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="3_oyvi1"] +[ext_resource type="Texture2D" uid="uid://ddxbrkfa7i5n" path="res://Assets/Visuals/hexagon.png" id="4_b2uf7"] +[ext_resource type="PackedScene" uid="uid://ccij302qcrvo1" path="res://Reusable Scenes/Masks/grapple_mask.tscn" id="5_wyw0d"] +[ext_resource type="Script" uid="uid://bfmc8st4ss7om" path="res://Scripts/Weapons/Bow.gd" id="6_8a6jk"] +[ext_resource type="PackedScene" uid="uid://dxemwyiy4it0g" path="res://Reusable Scenes/Projectiles/projectile_blowpipe.tscn" id="7_eb30r"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_twxkf"] +radius = 722.224 + +[sub_resource type="Gradient" id="Gradient_wyw0d"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.299315, 0.19351, 0.158235, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_8a6jk"] +gradient = SubResource("Gradient_wyw0d") +width = 26 + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_h27ao"] +radius = 13.0 +height = 80.0 + +[sub_resource type="Animation" id="Animation_h27ao"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SpriteGroup/Foot2:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(9, 27)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SpriteGroup/Foot:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-9, 27)] +} + +[sub_resource type="Animation" id="Animation_uu6qt"] +resource_name = "walk" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SpriteGroup/Foot2:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.400847, 0.4759, 0.560019, 0.626686, 0.726686, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(9, 27), Vector2(-9, 27), Vector2(-6, 25), Vector2(-3, 24), Vector2(2, 24), Vector2(6, 26), Vector2(9, 27)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SpriteGroup/Foot:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.166667, 0.233333, 0.333333, 0.4, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(-9, 27), Vector2(-6, 25), Vector2(-3, 24), Vector2(2, 24), Vector2(6, 26), Vector2(9, 27), Vector2(-9, 27)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_twxkf"] +_data = { +&"RESET": SubResource("Animation_h27ao"), +&"walk": SubResource("Animation_uu6qt") +} + +[sub_resource type="Gradient" id="Gradient_8a6jk"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.479943, 0.67, 0.1742, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_eb30r"] +gradient = SubResource("Gradient_8a6jk") +width = 26 + +[node name="EnemyPewPew" type="RigidBody2D"] +collision_layer = 49152 +collision_mask = 49153 +lock_rotation = true +script = ExtResource("1_wgldt") +max_health = 20 + +[node name="EnemyJungleAI" type="Node" parent="." node_paths=PackedStringArray("weapon", "pivot", "sprite")] +script = ExtResource("2_8a6jk") +weapon = NodePath("../HandPivot/Node2D/Blowpipe") +pivot = NodePath("../HandPivot") +sprite = NodePath("../SpriteGroup") + +[node name="AttackCooldown" type="Timer" parent="EnemyJungleAI"] +wait_time = 3.0 + +[node name="DetectArea" type="Area2D" parent="."] +collision_layer = 3 +collision_mask = 3 +collision_priority = 2.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DetectArea"] +shape = SubResource("CircleShape2D_twxkf") + +[node name="SpriteGroup" type="Node2D" parent="."] + +[node name="Foot" type="Sprite2D" parent="SpriteGroup"] +position = Vector2(-9, 27) +rotation = 3.14159 +scale = Vector2(0.58, 7.46) +texture = SubResource("GradientTexture1D_8a6jk") + +[node name="Foot2" type="Sprite2D" parent="SpriteGroup"] +position = Vector2(9, 27) +rotation = 3.14159 +scale = Vector2(0.58, 7.46) +texture = SubResource("GradientTexture1D_8a6jk") + +[node name="Sprite2D" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.40565, 0.61, 0.2013, 1) +position = Vector2(0, -1) +scale = Vector2(0.0406463, -0.0390693) +texture = ExtResource("3_oyvi1") + +[node name="Sprite2D2" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.46, 0.3611, 0.322, 1) +position = Vector2(0, -41.776) +rotation = 3.14159 +scale = Vector2(0.0277332, 0.0277332) +texture = ExtResource("4_b2uf7") + +[node name="GrappleMask" parent="SpriteGroup" instance=ExtResource("5_wyw0d")] +process_mode = 4 +position = Vector2(5, -41.776) +scale = Vector2(0.886033, 0.886033) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, -9.44) +shape = SubResource("CapsuleShape2D_h27ao") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_twxkf") +} + +[node name="HandPivot" type="Node2D" parent="."] +position = Vector2(6, -37) +rotation = 3.15381 + +[node name="Node2D" type="Node2D" parent="HandPivot"] + +[node name="Blowpipe" type="Node2D" parent="HandPivot/Node2D"] +rotation = 1.23375 +script = ExtResource("6_8a6jk") +arrow = ExtResource("7_eb30r") +speed = 3000.0 + +[node name="Blowpipe" type="Sprite2D" parent="HandPivot/Node2D/Blowpipe"] +position = Vector2(23.7122, 8.17715) +rotation = 1.90784 +scale = Vector2(0.143513, -51.7945) +texture = SubResource("GradientTexture1D_eb30r") + +[node name="Blowpipe2" type="Sprite2D" parent="HandPivot/Node2D/Blowpipe"] +modulate = Color(0.80687, 0.80687, 0.80687, 1) +position = Vector2(23.2316, 9.20714) +rotation = 1.90784 +scale = Vector2(0.0541076, -52.0008) +texture = SubResource("GradientTexture1D_eb30r") + +[node name="Sprite2D2" type="Sprite2D" parent="HandPivot"] +modulate = Color(0.46, 0.3611, 0.322, 1) +position = Vector2(0, 30.32) +rotation = 3.14159 +scale = Vector2(0.011008, 0.0118146) +texture = ExtResource("4_b2uf7") + +[connection signal="timeout" from="EnemyJungleAI/AttackCooldown" to="EnemyJungleAI" method="_on_attack_cooldown_timeout"] +[connection signal="body_entered" from="DetectArea" to="EnemyJungleAI" method="_on_detect_area_body_entered"] diff --git a/Reusable Scenes/1/grappleables.tscn b/Reusable Scenes/1/grappleables.tscn new file mode 100644 index 0000000..5ce1f7a --- /dev/null +++ b/Reusable Scenes/1/grappleables.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=7 format=3 uid="uid://b3ev1xafiwmib"] + +[ext_resource type="Script" uid="uid://c8n5trpan30g0" path="res://Scripts/Level Specific/Grappleable.gd" id="1_3f7s8"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_pytih"] +size = Vector2(50, 50) + +[sub_resource type="Gradient" id="Gradient_3f7s8"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.4564, 0.697331, 1, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_v4k01"] +gradient = SubResource("Gradient_3f7s8") +width = 50 + +[sub_resource type="Gradient" id="Gradient_adc2f"] +offsets = PackedFloat32Array(0) +colors = PackedColorArray(0.48, 0.33024, 0.1056, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_mpo1i"] +gradient = SubResource("Gradient_adc2f") +width = 50 + +[node name="Grappleables" type="StaticBody2D" node_paths=PackedStringArray("highlighter")] +z_index = 1024 +collision_layer = 8 +collision_mask = 8 +script = ExtResource("1_3f7s8") +highlighter = NodePath("Sprite2D2") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_pytih") + +[node name="Sprite2D2" type="Sprite2D" parent="."] +visible = false +scale = Vector2(1.13976, 56.9881) +texture = SubResource("GradientTexture1D_v4k01") + +[node name="Sprite2D" type="Sprite2D" parent="."] +scale = Vector2(1, 50) +texture = SubResource("GradientTexture1D_mpo1i") diff --git a/Reusable Scenes/1/tree.tscn b/Reusable Scenes/1/tree.tscn new file mode 100644 index 0000000..8c5985b --- /dev/null +++ b/Reusable Scenes/1/tree.tscn @@ -0,0 +1,250 @@ +[gd_scene load_steps=16 format=3 uid="uid://cb6tymujjkw6k"] + +[sub_resource type="Gradient" id="Gradient_34bfm"] +offsets = PackedFloat32Array(0.470779) +colors = PackedColorArray(0.276666, 0.442989, 0.0883189, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ovrsl"] +gradient = SubResource("Gradient_34bfm") +width = 64 + +[sub_resource type="Gradient" id="Gradient_ovrsl"] +offsets = PackedFloat32Array(0.470779) +colors = PackedColorArray(0.57, 0.5472, 0.114, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_he5fp"] +gradient = SubResource("Gradient_ovrsl") +width = 64 + +[sub_resource type="Gradient" id="Gradient_gnif3"] +offsets = PackedFloat32Array(0.470779) +colors = PackedColorArray(0.335918, 0.25971, 0.020719, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_lwy2l"] +gradient = SubResource("Gradient_gnif3") +width = 64 + +[sub_resource type="Gradient" id="Gradient_lwy2l"] +offsets = PackedFloat32Array(0.493976) +colors = PackedColorArray(0.298791, 0.229838, 0.0164207, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_nj2yk"] +gradient = SubResource("Gradient_lwy2l") +width = 64 + +[sub_resource type="Gradient" id="Gradient_hbaan"] +offsets = PackedFloat32Array(0.493976) +colors = PackedColorArray(0.37784, 0.293431, 0.0262073, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_mykqc"] +gradient = SubResource("Gradient_hbaan") +width = 64 + +[sub_resource type="Gradient" id="Gradient_7pswh"] +offsets = PackedFloat32Array(0.470779) +colors = PackedColorArray(0.353547, 0.56, 0.1176, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_34bfm"] +gradient = SubResource("Gradient_7pswh") +width = 64 + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_hbaan"] +gradient = SubResource("Gradient_34bfm") +width = 64 + +[sub_resource type="Gradient" id="Gradient_he5fp"] +offsets = PackedFloat32Array(0.470779) +colors = PackedColorArray(0.454855, 0.716912, 0.148735, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_u05pv"] +gradient = SubResource("Gradient_he5fp") +width = 64 + +[node name="Tree" type="Node2D"] + +[node name="Sprite2D16" type="Sprite2D" parent="."] +position = Vector2(-200.468, -228) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="."] +position = Vector2(-200.468, -143) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Sprite2D17"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D18" type="Sprite2D" parent="."] +position = Vector2(-124.389, -193.656) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D19" type="Sprite2D" parent="."] +position = Vector2(-124.389, -108.656) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Sprite2D19"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D20" type="Sprite2D" parent="."] +position = Vector2(78.6109, -211.656) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D21" type="Sprite2D" parent="."] +position = Vector2(78.6109, -126.656) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Sprite2D21"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D22" type="Sprite2D" parent="."] +position = Vector2(192.611, -283.656) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D23" type="Sprite2D" parent="."] +position = Vector2(192.611, -198.656) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Sprite2D23"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D24" type="Sprite2D" parent="."] +position = Vector2(141.611, -146.656) +scale = Vector2(0.109864, 176.688) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D25" type="Sprite2D" parent="."] +position = Vector2(141.611, -61.6563) +rotation = 0.785398 +scale = Vector2(0.299702, 19.181) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D17" type="Sprite2D" parent="Sprite2D25"] +scale = Vector2(0.54, 0.54) +texture = SubResource("GradientTexture1D_he5fp") + +[node name="Sprite2D7" type="Sprite2D" parent="."] +position = Vector2(-7.45212, -157.75) +scale = Vector2(1.20312, 437.5) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D2" type="Sprite2D" parent="."] +position = Vector2(-33.6079, -5.36407) +rotation = 0.785398 +scale = Vector2(1.53232, 118.21) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D4" type="Sprite2D" parent="."] +position = Vector2(-26.9521, -55) +rotation = 0.261799 +scale = Vector2(0.836327, 83.2208) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D3" type="Sprite2D" parent="."] +position = Vector2(79.1762, -2.12842) +rotation = -0.785398 +scale = Vector2(0.884306, 204.687) +texture = SubResource("GradientTexture1D_lwy2l") + +[node name="Sprite2D5" type="Sprite2D" parent="."] +position = Vector2(-34.9521, -38) +rotation = 0.261799 +scale = Vector2(0.296305, 115.218) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D6" type="Sprite2D" parent="."] +position = Vector2(-20.9521, -235.195) +scale = Vector2(0.296305, 301.609) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D27" type="Sprite2D" parent="."] +position = Vector2(5.04791, -178) +scale = Vector2(0.148153, 409.805) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D30" type="Sprite2D" parent="."] +position = Vector2(82.4558, 4.96503) +rotation = -0.785398 +scale = Vector2(0.138365, 169.916) +texture = SubResource("GradientTexture1D_nj2yk") + +[node name="Sprite2D26" type="Sprite2D" parent="."] +position = Vector2(-12.9521, -136) +scale = Vector2(0.214702, 367.805) +texture = SubResource("GradientTexture1D_mykqc") + +[node name="Sprite2D29" type="Sprite2D" parent="."] +position = Vector2(21.0479, -119) +scale = Vector2(0.214702, 367.805) +texture = SubResource("GradientTexture1D_mykqc") + +[node name="Sprite2D28" type="Sprite2D" parent="."] +position = Vector2(77.9427, -29.1052) +rotation = -0.785398 +scale = Vector2(0.214702, 158.799) +texture = SubResource("GradientTexture1D_mykqc") + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(-106.952, -362) +rotation = 0.261799 +scale = Vector2(3.72656, 230.75) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Sprite2D13" type="Sprite2D" parent="."] +position = Vector2(-105.617, -250.513) +rotation = 0.261799 +scale = Vector2(4.66797, 16) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D8" type="Sprite2D" parent="."] +position = Vector2(63.9229, -291.312) +rotation = -0.261799 +scale = Vector2(3.75391, 161.375) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Sprite2D14" type="Sprite2D" parent="."] +position = Vector2(82.8082, -220.936) +rotation = -0.261799 +scale = Vector2(3.75275, 15.576) +texture = SubResource("GradientTexture1D_hbaan") + +[node name="Sprite2D11" type="Sprite2D" parent="."] +position = Vector2(-48.6709, -398) +scale = Vector2(2.50879, 133.344) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D9" type="Sprite2D" parent="."] +position = Vector2(-13.7334, -434.656) +scale = Vector2(3.1582, 176.688) +texture = SubResource("GradientTexture1D_34bfm") + +[node name="Sprite2D15" type="Sprite2D" parent="."] +position = Vector2(11.3291, -499.5) +scale = Vector2(2.10937, 17) +texture = SubResource("GradientTexture1D_u05pv") + +[node name="Sprite2D12" type="Sprite2D" parent="."] +position = Vector2(98.0479, -357) +rotation = -0.261799 +scale = Vector2(1.86157, 66.5) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Sprite2D10" type="Sprite2D" parent="."] +position = Vector2(112.048, -402) +rotation = -0.261799 +scale = Vector2(2.37598, 122.344) +texture = SubResource("GradientTexture1D_34bfm") diff --git a/Reusable Scenes/1/trunk.tscn b/Reusable Scenes/1/trunk.tscn new file mode 100644 index 0000000..a286a7c --- /dev/null +++ b/Reusable Scenes/1/trunk.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=3 format=3 uid="uid://b186mjdwnwe2y"] + +[sub_resource type="Gradient" id="Gradient_y0prk"] +offsets = PackedFloat32Array(0.0210843) +colors = PackedColorArray(0.0705882, 0.0901961, 0.0627451, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_0nkm3"] +gradient = SubResource("Gradient_y0prk") +width = 64 + +[node name="Trunk" type="Node2D"] +z_index = -90 + +[node name="Sprite" type="Sprite2D" parent="."] +position = Vector2(68, -426) +scale = Vector2(3.125, 916) +texture = SubResource("GradientTexture1D_0nkm3") + +[node name="Sprite2" type="Sprite2D" parent="."] +position = Vector2(-1.33514e-05, -202) +rotation = 0.270581 +scale = Vector2(1.33656, 427.101) +texture = SubResource("GradientTexture1D_0nkm3") + +[node name="Sprite3" type="Sprite2D" parent="."] +position = Vector2(153, -146) +rotation = -0.239004 +scale = Vector2(1.33656, 427.101) +texture = SubResource("GradientTexture1D_0nkm3") + +[node name="Sprite4" type="Sprite2D" parent="."] +position = Vector2(-148, 20) +rotation = 0.873128 +scale = Vector2(1.33656, 427.101) +texture = SubResource("GradientTexture1D_0nkm3") diff --git a/Reusable Scenes/2/enemy_bow.tscn b/Reusable Scenes/2/enemy_bow.tscn new file mode 100644 index 0000000..b4b3a0a --- /dev/null +++ b/Reusable Scenes/2/enemy_bow.tscn @@ -0,0 +1,100 @@ +[gd_scene load_steps=10 format=3 uid="uid://kqrot8twq6bc"] + +[ext_resource type="Script" uid="uid://c5warxls18mds" path="res://Scripts/Entity.gd" id="1_q82xt"] +[ext_resource type="Script" uid="uid://cahhmhibcdjcd" path="res://Scripts/Enemy AI/JungleAI.gd" id="2_ty7ky"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="3_2n5mq"] +[ext_resource type="Texture2D" uid="uid://ddxbrkfa7i5n" path="res://Assets/Visuals/hexagon.png" id="4_1vai4"] +[ext_resource type="PackedScene" uid="uid://cnyxp6p68vtv7" path="res://Reusable Scenes/Masks/spirit_mask.tscn" id="5_g0tc6"] +[ext_resource type="PackedScene" uid="uid://bxax2unw3ay8d" path="res://Reusable Scenes/Weapons/weapon_bow.tscn" id="6_g0tc6"] +[ext_resource type="PackedScene" uid="uid://bqma5drxh7smh" path="res://Reusable Scenes/Projectiles/projectile_arrow_enemy.tscn" id="7_g57nf"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_twxkf"] +radius = 722.224 + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_h27ao"] +radius = 13.0 +height = 80.0 + +[node name="EnemyBow" type="RigidBody2D"] +collision_layer = 49152 +collision_mask = 49153 +lock_rotation = true +script = ExtResource("1_q82xt") +max_health = 15 + +[node name="EnemyJungleAI" type="Node" parent="." node_paths=PackedStringArray("weapon", "pivot", "sprite")] +script = ExtResource("2_ty7ky") +weapon = NodePath("../HandPivot/Node2D/weapon_bow") +pivot = NodePath("../HandPivot") +sprite = NodePath("../SpriteGroup") + +[node name="AttackCooldown" type="Timer" parent="EnemyJungleAI"] +wait_time = 3.0 + +[node name="DetectArea" type="Area2D" parent="."] +collision_layer = 3 +collision_mask = 3 +collision_priority = 2.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DetectArea"] +shape = SubResource("CircleShape2D_twxkf") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, -9.44) +shape = SubResource("CapsuleShape2D_h27ao") + +[node name="SpriteGroup" type="Node2D" parent="."] + +[node name="Foot" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.45, 0.291, 0.2115, 1) +position = Vector2(-11, 25) +rotation = 3.14159 +scale = Vector2(0.0160481, -0.0110911) +texture = ExtResource("3_2n5mq") + +[node name="Foot2" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.45, 0.291, 0.2115, 1) +position = Vector2(11, 25) +rotation = 3.14159 +scale = Vector2(0.0160481, -0.0110911) +texture = ExtResource("3_2n5mq") + +[node name="Sprite2D" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.919515, 0.481937, 1.92523e-07, 1) +position = Vector2(0, -1) +scale = Vector2(0.0406463, -0.0390693) +texture = ExtResource("3_2n5mq") + +[node name="Sprite2D2" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.278431, 0.54902, 0.976471, 1) +position = Vector2(0, -41.776) +rotation = 3.14159 +scale = Vector2(0.0277332, 0.0277332) +texture = ExtResource("4_1vai4") + +[node name="SpiritMask" parent="SpriteGroup" instance=ExtResource("5_g0tc6")] +process_mode = 4 +position = Vector2(4, -40) +scale = Vector2(0.861963, 0.861963) + +[node name="HandPivot" type="Node2D" parent="."] +position = Vector2(6, -20) +rotation = -1.27211 + +[node name="Node2D" type="Node2D" parent="HandPivot"] +position = Vector2(0, 21.618) + +[node name="weapon_bow" parent="HandPivot/Node2D" instance=ExtResource("6_g0tc6")] +position = Vector2(1.25521, 6.24639) +scale = Vector2(0.999572, 0.999572) +arrow = ExtResource("7_g57nf") + +[node name="Sprite2D2" type="Sprite2D" parent="HandPivot"] +modulate = Color(0.278431, 0.54902, 0.976471, 1) +position = Vector2(0.525334, 42.9968) +rotation = 3.14159 +scale = Vector2(0.011008, 0.0118146) +texture = ExtResource("4_1vai4") + +[connection signal="timeout" from="EnemyJungleAI/AttackCooldown" to="EnemyJungleAI" method="_on_attack_cooldown_timeout"] +[connection signal="body_entered" from="DetectArea" to="EnemyJungleAI" method="_on_detect_area_body_entered"] diff --git a/Reusable Scenes/2/enemy_club.tscn b/Reusable Scenes/2/enemy_club.tscn new file mode 100644 index 0000000..761b04e --- /dev/null +++ b/Reusable Scenes/2/enemy_club.tscn @@ -0,0 +1,301 @@ +[gd_scene load_steps=21 format=3 uid="uid://b8x6g2np2nf8j"] + +[ext_resource type="Script" uid="uid://c5warxls18mds" path="res://Scripts/Entity.gd" id="1_14gxe"] +[ext_resource type="Script" uid="uid://n2vodoxhopnr" path="res://Scripts/Enemy AI/ShoreAI.gd" id="2_161nh"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="3_k4axu"] +[ext_resource type="Texture2D" uid="uid://ddxbrkfa7i5n" path="res://Assets/Visuals/hexagon.png" id="4_bn6nu"] +[ext_resource type="PackedScene" uid="uid://cnyxp6p68vtv7" path="res://Reusable Scenes/Masks/spirit_mask.tscn" id="6_srfke"] +[ext_resource type="Script" uid="uid://ckd00ra2lp1xo" path="res://Scripts/Weapons/Melee.gd" id="6_tuc36"] +[ext_resource type="Texture2D" uid="uid://dch6veuf65i6h" path="res://Assets/Visuals/club.svg" id="7_tuc36"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_twxkf"] +radius = 722.224 + +[sub_resource type="CircleShape2D" id="CircleShape2D_lrpdk"] +radius = 43.0116 + +[sub_resource type="Gradient" id="Gradient_srfke"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(1, 1, 1, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_tuc36"] +gradient = SubResource("Gradient_srfke") + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_h27ao"] +radius = 13.0 +height = 80.0 + +[sub_resource type="Animation" id="Animation_h27ao"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SpriteGroup/Foot:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-9, 27)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SpriteGroup/Foot2:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(9, 27)] +} + +[sub_resource type="Animation" id="Animation_uu6qt"] +resource_name = "walk" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SpriteGroup/Foot:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.166667, 0.233333, 0.333333, 0.4, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(-9, 27), Vector2(-6, 25), Vector2(-3, 24), Vector2(2, 24), Vector2(6, 26), Vector2(9, 27), Vector2(-9, 27)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SpriteGroup/Foot2:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.400847, 0.4759, 0.560019, 0.626686, 0.726686, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(9, 27), Vector2(-9, 27), Vector2(-6, 25), Vector2(-3, 24), Vector2(2, 24), Vector2(6, 26), Vector2(9, 27)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_twxkf"] +_data = { +&"RESET": SubResource("Animation_h27ao"), +&"walk": SubResource("Animation_uu6qt") +} + +[sub_resource type="Animation" id="Animation_6amt5"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Area2D:monitoring") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_x1mjv"] +resource_name = "swing" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.133333, 0.166667), +"transitions": PackedFloat32Array(0.189465, 0.189465, 5.27803), +"update": 0, +"values": [0.0, 1.95477, 0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Area2D:monitoring") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.166667), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} + +[sub_resource type="Animation" id="Animation_4lcuo"] +resource_name = "swing_flip" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.133333, 0.166667), +"transitions": PackedFloat32Array(0.189465, 0.189465, 5.27803), +"update": 0, +"values": [0.0, -1.95477, 0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Area2D:monitoring") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.173523), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_4lcuo"] +_data = { +&"RESET": SubResource("Animation_6amt5"), +&"swing": SubResource("Animation_x1mjv"), +&"swing_flip": SubResource("Animation_4lcuo") +} + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_x1mjv"] +size = Vector2(16.567, 67.304) + +[node name="EnemyClub" type="RigidBody2D"] +collision_layer = 32768 +lock_rotation = true +script = ExtResource("1_14gxe") +max_health = 15 + +[node name="EnemyShoreAI" type="Node" parent="." node_paths=PackedStringArray("weapon", "sprite", "animator")] +script = ExtResource("2_161nh") +weapon = NodePath("../weapon_club") +sprite = NodePath("../SpriteGroup") +animator = NodePath("../AnimationPlayer") + +[node name="AttackCooldown" type="Timer" parent="EnemyShoreAI"] +wait_time = 1.5 + +[node name="DetectArea" type="Area2D" parent="."] +collision_layer = 3 +collision_mask = 3 +collision_priority = 2.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DetectArea"] +shape = SubResource("CircleShape2D_twxkf") + +[node name="AttackArea" type="Area2D" parent="."] +collision_layer = 3 +collision_mask = 3 +collision_priority = 2.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="AttackArea"] +shape = SubResource("CircleShape2D_lrpdk") +debug_color = Color(0.937978, 1.20327e-05, 0.625666, 0.42) + +[node name="SpriteGroup" type="Node2D" parent="."] + +[node name="Foot" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.45, 0.291, 0.2115, 1) +position = Vector2(-9, 27) +rotation = 3.14159 +scale = Vector2(0.0160481, -0.009) +texture = ExtResource("3_k4axu") + +[node name="Foot2" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.45, 0.291, 0.2115, 1) +position = Vector2(9, 27) +rotation = 3.14159 +scale = Vector2(0.0160481, -0.009) +texture = ExtResource("3_k4axu") + +[node name="Sprite2D3" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.733805, 0.379615, 1.92523e-07, 1) +position = Vector2(-2, 1) +scale = Vector2(0.0700947, -36.2594) +skew = 0.148353 +texture = SubResource("GradientTexture1D_tuc36") + +[node name="Sprite2D" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.919515, 0.481937, 1.92523e-07, 1) +position = Vector2(0, -1) +scale = Vector2(0.074875, -33.474) +texture = SubResource("GradientTexture1D_tuc36") + +[node name="Sprite2D2" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.278431, 0.54902, 0.976471, 1) +position = Vector2(0, -41.776) +rotation = 3.14159 +scale = Vector2(0.0277332, 0.0277332) +texture = ExtResource("4_bn6nu") + +[node name="SpiritMask" parent="SpriteGroup" instance=ExtResource("6_srfke")] +process_mode = 4 +position = Vector2(4, -40) +scale = Vector2(0.861963, 0.861963) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, -9.44) +shape = SubResource("CapsuleShape2D_h27ao") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_twxkf") +} + +[node name="weapon_club" type="Node2D" parent="." node_paths=PackedStringArray("animator", "area")] +position = Vector2(22, -12) +scale = Vector2(0.648004, 0.648004) +script = ExtResource("6_tuc36") +animator = NodePath("AnimationPlayer") +atk = 1 +area = NodePath("Area2D") +mask = 2 +disable_aft_atk = true + +[node name="AnimationPlayer" type="AnimationPlayer" parent="weapon_club"] +libraries = { +&"": SubResource("AnimationLibrary_4lcuo") +} + +[node name="Machette" type="Sprite2D" parent="weapon_club"] +position = Vector2(5, -14) +rotation = 0.322494 +scale = Vector2(0.0442815, 0.0599862) +texture = ExtResource("7_tuc36") +flip_h = true + +[node name="Area2D" type="Area2D" parent="weapon_club"] +collision_mask = 32769 +monitoring = false + +[node name="CollisionShape2D" type="CollisionShape2D" parent="weapon_club/Area2D"] +position = Vector2(8, -25) +rotation = 0.327302 +scale = Vector2(1.03252, 1.07461) +shape = SubResource("RectangleShape2D_x1mjv") + +[connection signal="timeout" from="EnemyShoreAI/AttackCooldown" to="EnemyShoreAI" method="_on_attack_cooldown_timeout"] +[connection signal="body_entered" from="DetectArea" to="EnemyShoreAI" method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="AttackArea" to="EnemyShoreAI" method="_on_attack_area_body_entered"] +[connection signal="body_exited" from="AttackArea" to="EnemyShoreAI" method="_on_attack_area_body_exited"] +[connection signal="body_entered" from="weapon_club/Area2D" to="weapon_club" method="_on_area_2d_body_entered"] diff --git a/Reusable Scenes/Masks/grapple_mask.tscn b/Reusable Scenes/Masks/grapple_mask.tscn new file mode 100644 index 0000000..c987d1a --- /dev/null +++ b/Reusable Scenes/Masks/grapple_mask.tscn @@ -0,0 +1,38 @@ +[gd_scene load_steps=3 format=3 uid="uid://ccij302qcrvo1"] + +[ext_resource type="Script" uid="uid://cxy2ovjxwgtco" path="res://Scripts/Mask/GrappleMask.gd" id="1_1ftcc"] +[ext_resource type="Texture2D" uid="uid://csuuxeq47s64g" path="res://Assets/Visuals/mask1.svg" id="2_1ftcc"] + +[node name="GrappleMask" type="Node2D" node_paths=PackedStringArray("area", "area_detect", "line")] +script = ExtResource("1_1ftcc") +area = NodePath("Area2D") +area_detect = NodePath("DetectArea2D") +line = NodePath("Line2D") +grapple_speed = 700.0 + +[node name="Line2D" type="Line2D" parent="."] +points = PackedVector2Array(0, 0, 0, 0) +default_color = Color(0.5002, 0.82, 0.5535, 1) + +[node name="Mask1" type="Sprite2D" parent="."] +scale = Vector2(0.0315916, 0.0315916) +texture = ExtResource("2_1ftcc") + +[node name="Area2D" type="Area2D" parent="."] +collision_layer = 8 +collision_mask = 8 +monitoring = false + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Area2D"] +polygon = PackedVector2Array(0, 0, 600, -50, 600, 50) + +[node name="DetectArea2D" type="Area2D" parent="."] +collision_layer = 8 +collision_mask = 8 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="DetectArea2D"] +polygon = PackedVector2Array(0, 0, 600, -50, 600, 50) + +[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"] +[connection signal="body_entered" from="DetectArea2D" to="." method="_on_detect_area_2d_body_entered"] +[connection signal="body_exited" from="DetectArea2D" to="." method="_on_detect_area_2d_body_exited"] diff --git a/Reusable Scenes/Masks/speed_mask.tscn b/Reusable Scenes/Masks/speed_mask.tscn new file mode 100644 index 0000000..77aa644 --- /dev/null +++ b/Reusable Scenes/Masks/speed_mask.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=3 uid="uid://bdws5hhfuef84"] + +[ext_resource type="Script" uid="uid://dpjuboxc5u855" path="res://Scripts/Mask/SpeedMask.gd" id="1_b643j"] +[ext_resource type="Texture2D" uid="uid://c604bwm7ckesc" path="res://Assets/Visuals/mask0.svg" id="1_jn1gf"] + +[node name="SpeedMask" type="Node2D"] +script = ExtResource("1_b643j") + +[node name="Mask0" type="Sprite2D" parent="."] +scale = Vector2(0.0315916, 0.0315916) +texture = ExtResource("1_jn1gf") + +[node name="Cooldown" type="Timer" parent="."] + +[connection signal="timeout" from="Cooldown" to="." method="_on_cooldown_timeout"] diff --git a/Reusable Scenes/Masks/spirit_mask.tscn b/Reusable Scenes/Masks/spirit_mask.tscn new file mode 100644 index 0000000..17278d1 --- /dev/null +++ b/Reusable Scenes/Masks/spirit_mask.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=2 format=3 uid="uid://cnyxp6p68vtv7"] + +[ext_resource type="Texture2D" uid="uid://dc1dirxeqtb14" path="res://Assets/Visuals/mask2.svg" id="1_0r3qt"] + +[node name="SpiritMask" type="Node2D"] + +[node name="Mask2" type="Sprite2D" parent="."] +scale = Vector2(0.0315916, 0.0315916) +texture = ExtResource("1_0r3qt") + +[node name="Cooldown" type="Timer" parent="."] + +[connection signal="timeout" from="Cooldown" to="." method="_on_cooldown_timeout"] diff --git a/Reusable Scenes/Projectiles/projectile_arrow.tscn b/Reusable Scenes/Projectiles/projectile_arrow.tscn new file mode 100644 index 0000000..6c11703 --- /dev/null +++ b/Reusable Scenes/Projectiles/projectile_arrow.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=7 format=3 uid="uid://ga1t2xdk30mw"] + +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="1_6fl6o"] +[ext_resource type="Script" uid="uid://i4wpiugtk5qi" path="res://Scripts/Weapons/Projectile.gd" id="1_n1enl"] + +[sub_resource type="Gradient" id="Gradient_n1enl"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.46, 0.33304, 0.1426, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_lyoxt"] +gradient = SubResource("Gradient_n1enl") +width = 16 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_n1enl"] +size = Vector2(8.375, 9.5) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_lyoxt"] +size = Vector2(64, 4) + +[node name="projectile_arrow" type="RigidBody2D" node_paths=PackedStringArray("sprite")] +collision_layer = 4 +collision_mask = 0 +lock_rotation = true +linear_damp = 0.5 +script = ExtResource("1_n1enl") +sprite = NodePath("SpriteGroup") +atk = 3 + +[node name="SpriteGroup" type="Node2D" parent="."] + +[node name="Sprite2D" type="Sprite2D" parent="SpriteGroup"] +scale = Vector2(3.86172, 3.86172) +texture = SubResource("GradientTexture1D_lyoxt") + +[node name="Sprite2D2" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.864675, 0.864675, 0.864675, 1) +position = Vector2(38, 2.84217e-14) +rotation = 1.5708 +scale = Vector2(0.0142072, 0.0142072) +texture = ExtResource("1_6fl6o") + +[node name="Sprite2D3" type="Sprite2D" parent="SpriteGroup"] +position = Vector2(-29.4284, 1.46863e-08) +rotation = 1.5708 +scale = Vector2(0.0103315, 0.0167413) +texture = ExtResource("1_6fl6o") + +[node name="Sprite2D4" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.429416, 0.429416, 0.429416, 1) +position = Vector2(-34, 0) +rotation = 1.5708 +scale = Vector2(0.00324931, 0.0103863) +texture = ExtResource("1_6fl6o") + +[node name="Area2D" type="Area2D" parent="SpriteGroup"] +collision_mask = 32769 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpriteGroup/Area2D"] +position = Vector2(35, 0) +shape = SubResource("RectangleShape2D_n1enl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(3, 0) +shape = SubResource("RectangleShape2D_lyoxt") + +[connection signal="body_entered" from="SpriteGroup/Area2D" to="." method="_on_area_2d_body_entered"] diff --git a/Reusable Scenes/Projectiles/projectile_arrow_enemy.tscn b/Reusable Scenes/Projectiles/projectile_arrow_enemy.tscn new file mode 100644 index 0000000..8c6be28 --- /dev/null +++ b/Reusable Scenes/Projectiles/projectile_arrow_enemy.tscn @@ -0,0 +1,68 @@ +[gd_scene load_steps=7 format=3 uid="uid://bqma5drxh7smh"] + +[ext_resource type="Script" uid="uid://i4wpiugtk5qi" path="res://Scripts/Weapons/Projectile.gd" id="1_4rwv7"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="2_k8ime"] + +[sub_resource type="Gradient" id="Gradient_n1enl"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.46, 0.33304, 0.1426, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_lyoxt"] +gradient = SubResource("Gradient_n1enl") +width = 16 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_n1enl"] +size = Vector2(8.375, 9.5) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_lyoxt"] +size = Vector2(64, 4) + +[node name="projectile_arrow" type="RigidBody2D" node_paths=PackedStringArray("sprite")] +collision_layer = 4 +collision_mask = 0 +gravity_scale = 0.0 +lock_rotation = true +linear_damp = 0.5 +script = ExtResource("1_4rwv7") +sprite = NodePath("SpriteGroup") +atk = 2 + +[node name="SpriteGroup" type="Node2D" parent="."] + +[node name="Sprite2D" type="Sprite2D" parent="SpriteGroup"] +scale = Vector2(3.86172, 3.86172) +texture = SubResource("GradientTexture1D_lyoxt") + +[node name="Sprite2D2" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.864675, 0.864675, 0.864675, 1) +position = Vector2(38, 2.84217e-14) +rotation = 1.5708 +scale = Vector2(0.0142072, 0.0142072) +texture = ExtResource("2_k8ime") + +[node name="Sprite2D3" type="Sprite2D" parent="SpriteGroup"] +position = Vector2(-29.4284, 1.46863e-08) +rotation = 1.5708 +scale = Vector2(0.0103315, 0.0167413) +texture = ExtResource("2_k8ime") + +[node name="Sprite2D4" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.429416, 0.429416, 0.429416, 1) +position = Vector2(-34, 0) +rotation = 1.5708 +scale = Vector2(0.00324931, 0.0103863) +texture = ExtResource("2_k8ime") + +[node name="Area2D" type="Area2D" parent="SpriteGroup"] +collision_layer = 3 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpriteGroup/Area2D"] +position = Vector2(35, 0) +shape = SubResource("RectangleShape2D_n1enl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(3, 0) +shape = SubResource("RectangleShape2D_lyoxt") + +[connection signal="body_entered" from="SpriteGroup/Area2D" to="." method="_on_area_2d_body_entered"] diff --git a/Reusable Scenes/Projectiles/projectile_blowpipe.tscn b/Reusable Scenes/Projectiles/projectile_blowpipe.tscn new file mode 100644 index 0000000..36586e3 --- /dev/null +++ b/Reusable Scenes/Projectiles/projectile_blowpipe.tscn @@ -0,0 +1,56 @@ +[gd_scene load_steps=7 format=3 uid="uid://dxemwyiy4it0g"] + +[ext_resource type="Script" uid="uid://i4wpiugtk5qi" path="res://Scripts/Weapons/Projectile.gd" id="1_aj88w"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="2_73e50"] + +[sub_resource type="Gradient" id="Gradient_aj88w"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.250467, 0.26, 0.208, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_73e50"] +gradient = SubResource("Gradient_aj88w") +width = 16 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_n1enl"] +size = Vector2(8.1875, 4) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_lyoxt"] +size = Vector2(47, 4) + +[node name="projectile_arrow" type="RigidBody2D" node_paths=PackedStringArray("sprite")] +collision_layer = 0 +collision_mask = 0 +lock_rotation = true +linear_damp = 0.5 +script = ExtResource("1_aj88w") +sprite = NodePath("SpriteGroup") +atk = 1 + +[node name="SpriteGroup" type="Node2D" parent="."] + +[node name="Sprite2D" type="Sprite2D" parent="SpriteGroup"] +position = Vector2(-6.44688, 0) +scale = Vector2(3.05586, 3.86172) +texture = SubResource("GradientTexture1D_73e50") + +[node name="Sprite2D2" type="Sprite2D" parent="SpriteGroup"] +modulate = Color(0.3375, 0.45, 0.3675, 1) +position = Vector2(20, 4.12115e-12) +rotation = 1.5708 +scale = Vector2(0.00713689, 0.00713689) +texture = ExtResource("2_73e50") + +[node name="Area2D" type="Area2D" parent="SpriteGroup"] +position = Vector2(-14, 0) +collision_layer = 2 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpriteGroup/Area2D"] +position = Vector2(34.9062, 0) +shape = SubResource("RectangleShape2D_n1enl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(-5.5, 0) +shape = SubResource("RectangleShape2D_lyoxt") + +[connection signal="body_entered" from="SpriteGroup/Area2D" to="." method="_on_area_2d_body_entered"] diff --git a/Reusable Scenes/Weapons/weapon_bow.tscn b/Reusable Scenes/Weapons/weapon_bow.tscn new file mode 100644 index 0000000..88bdc75 --- /dev/null +++ b/Reusable Scenes/Weapons/weapon_bow.tscn @@ -0,0 +1,124 @@ +[gd_scene load_steps=9 format=3 uid="uid://bxax2unw3ay8d"] + +[ext_resource type="Script" uid="uid://bfmc8st4ss7om" path="res://Scripts/Weapons/Bow.gd" id="1_vshgr"] +[ext_resource type="PackedScene" uid="uid://ga1t2xdk30mw" path="res://Reusable Scenes/Projectiles/projectile_arrow.tscn" id="2_u2d6r"] + +[sub_resource type="Gradient" id="Gradient_77kik"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(1, 1, 1, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_wpec3"] +gradient = SubResource("Gradient_77kik") +width = 16 + +[sub_resource type="Gradient" id="Gradient_v63fu"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(1, 1, 1, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ngbqm"] +gradient = SubResource("Gradient_v63fu") +width = 16 + +[sub_resource type="Gradient" id="Gradient_wpec3"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.49, 0.352637, 0.2058, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_v63fu"] +gradient = SubResource("Gradient_wpec3") +width = 16 + +[node name="weapon_bow" type="Node2D"] +scale = Vector2(1.327, 1.327) +script = ExtResource("1_vshgr") +arrow = ExtResource("2_u2d6r") +speed = 2000.0 + +[node name="String" type="Sprite2D" parent="."] +scale = Vector2(3.125, 2) +texture = SubResource("GradientTexture1D_wpec3") + +[node name="Wood5" type="Sprite2D" parent="."] +position = Vector2(-25.7941, -0.838106) +rotation = 0.785398 +scale = Vector2(1.08287, 3.96) +texture = SubResource("GradientTexture1D_ngbqm") +offset = Vector2(5.57, 0) + +[node name="Wood6" type="Sprite2D" parent="."] +position = Vector2(-14, 10) +rotation = 0.261799 +scale = Vector2(1.11435, 3.96) +texture = SubResource("GradientTexture1D_ngbqm") +offset = Vector2(5.57, 0) + +[node name="Wood7" type="Sprite2D" parent="."] +position = Vector2(14, 10) +rotation = 2.87979 +scale = Vector2(1.11435, 3.96) +texture = SubResource("GradientTexture1D_ngbqm") +offset = Vector2(5.57, 0) + +[node name="Wood8" type="Sprite2D" parent="."] +position = Vector2(25.6208, -0.620809) +rotation = 2.35619 +scale = Vector2(1.15562, 3.96) +texture = SubResource("GradientTexture1D_ngbqm") +offset = Vector2(5.57, 0) + +[node name="Wood9" type="Sprite2D" parent="."] +position = Vector2(-26.582, -1.32556) +rotation = 2.61799 +scale = Vector2(0.574072, 4.297) +texture = SubResource("GradientTexture1D_ngbqm") +offset = Vector2(5.57, 0) + +[node name="Wood10" type="Sprite2D" parent="."] +position = Vector2(26.5944, -1.33392) +rotation = 0.523599 +scale = Vector2(0.566984, 4.19) +texture = SubResource("GradientTexture1D_ngbqm") +offset = Vector2(5.57, 0) + +[node name="Wood0" type="Sprite2D" parent="."] +position = Vector2(-26.4977, -1.37424) +rotation = 2.61799 +scale = Vector2(0.533634, 3.07) +texture = SubResource("GradientTexture1D_v63fu") +offset = Vector2(5.57, 0) + +[node name="Wood" type="Sprite2D" parent="."] +position = Vector2(-25.4223, -0.466283) +rotation = 0.785398 +scale = Vector2(1.04412, 3.07) +texture = SubResource("GradientTexture1D_v63fu") +offset = Vector2(5.57, 0) + +[node name="Wood2" type="Sprite2D" parent="."] +position = Vector2(-14, 10) +rotation = 0.261799 +scale = Vector2(1.11435, 3.07) +texture = SubResource("GradientTexture1D_v63fu") +offset = Vector2(5.57, 0) + +[node name="Wood3" type="Sprite2D" parent="."] +position = Vector2(14, 10) +rotation = 2.87979 +scale = Vector2(1.11435, 3.07) +texture = SubResource("GradientTexture1D_v63fu") +offset = Vector2(5.57, 0) + +[node name="Wood4" type="Sprite2D" parent="."] +position = Vector2(25.3273, -0.327266) +rotation = -3.92699 +scale = Vector2(1.12503, 3.07) +texture = SubResource("GradientTexture1D_v63fu") +offset = Vector2(5.57, 0) + +[node name="Wood1" type="Sprite2D" parent="."] +position = Vector2(26.525, -1.374) +rotation = 0.523599 +scale = Vector2(0.533634, 3.07) +texture = SubResource("GradientTexture1D_v63fu") +offset = Vector2(5.57, 0) + +[node name="Timer" type="Timer" parent="."] diff --git a/Reusable Scenes/Weapons/weapon_machette.tscn b/Reusable Scenes/Weapons/weapon_machette.tscn new file mode 100644 index 0000000..cd91614 --- /dev/null +++ b/Reusable Scenes/Weapons/weapon_machette.tscn @@ -0,0 +1,127 @@ +[gd_scene load_steps=8 format=3 uid="uid://c3nbowvq6g4ah"] + +[ext_resource type="Script" uid="uid://ckd00ra2lp1xo" path="res://Scripts/Weapons/Melee.gd" id="1_6amt5"] +[ext_resource type="Texture2D" uid="uid://cnxhxrmheing2" path="res://Assets/Visuals/machette.svg" id="1_x1mjv"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_x1mjv"] +size = Vector2(12.0543, 48.3603) + +[sub_resource type="Animation" id="Animation_6amt5"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Area2D:monitoring") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_x1mjv"] +resource_name = "swing" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.133333, 0.166667), +"transitions": PackedFloat32Array(0.189465, 0.189465, 5.27803), +"update": 0, +"values": [0.0, 1.95477, 0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Area2D:monitoring") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} + +[sub_resource type="Animation" id="Animation_4lcuo"] +resource_name = "swing_flip" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.133333, 0.166667), +"transitions": PackedFloat32Array(0.189465, 0.189465, 5.27803), +"update": 0, +"values": [0.0, -1.95477, 0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Area2D:monitoring") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.173523), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_4lcuo"] +_data = { +&"RESET": SubResource("Animation_6amt5"), +&"swing": SubResource("Animation_x1mjv"), +&"swing_flip": SubResource("Animation_4lcuo") +} + +[node name="weapon_machette" type="Node2D" node_paths=PackedStringArray("animator", "area")] +scale = Vector2(-1, 1) +script = ExtResource("1_6amt5") +animator = NodePath("AnimationPlayer") +atk = 2 +area = NodePath("Area2D") +mask = 3 + +[node name="Machette" type="Sprite2D" parent="."] +position = Vector2(7.9399, -24.7176) +scale = Vector2(0.0588337, 0.0588337) +texture = ExtResource("1_x1mjv") +flip_h = true + +[node name="Area2D" type="Area2D" parent="."] +collision_mask = 32769 +monitoring = false + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(11, -31) +rotation = 0.327302 +shape = SubResource("RectangleShape2D_x1mjv") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_4lcuo") +} + +[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"] diff --git a/Reusable Scenes/chest.tscn b/Reusable Scenes/chest.tscn new file mode 100644 index 0000000..905f0b0 --- /dev/null +++ b/Reusable Scenes/chest.tscn @@ -0,0 +1,276 @@ +[gd_scene load_steps=14 format=3 uid="uid://b80iwxixd6rbp"] + +[ext_resource type="Texture2D" uid="uid://404lglxh4v01" path="res://Assets/Visuals/chest_top.svg" id="1_owt0a"] +[ext_resource type="Script" uid="uid://buli338mi1oqs" path="res://Scripts/MaskChest.gd" id="1_pe0kk"] +[ext_resource type="Texture2D" uid="uid://0bdflx18poa5" path="res://Assets/Visuals/chest_open.svg" id="2_bkju7"] +[ext_resource type="Texture2D" uid="uid://csnls3yqqe646" path="res://Assets/Visuals/shiny.svg" id="4_o6r41"] +[ext_resource type="PackedScene" uid="uid://bdws5hhfuef84" path="res://Reusable Scenes/Masks/speed_mask.tscn" id="4_ro4cy"] +[ext_resource type="PackedScene" uid="uid://ccij302qcrvo1" path="res://Reusable Scenes/Masks/grapple_mask.tscn" id="6_52pyd"] +[ext_resource type="PackedScene" uid="uid://cnyxp6p68vtv7" path="res://Reusable Scenes/Masks/spirit_mask.tscn" id="7_vmul4"] + +[sub_resource type="Gradient" id="Gradient_o4wei"] +offsets = PackedFloat32Array(0, 0.9, 0.9, 1) +colors = PackedColorArray(0.36, 0.2988, 0.2376, 1, 0.360784, 0.298039, 0.239216, 1, 0.95, 0.754933, 0.114, 1, 0.94902, 0.756863, 0.113725, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_owt0a"] +gradient = SubResource("Gradient_o4wei") +fill = 2 +fill_from = Vector2(0.5, 0.5) + +[sub_resource type="Animation" id="Animation_ro4cy"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ChestOpen:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MaskNode/SpeedMask:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("MaskNode:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(13, -33)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MaskNode:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("ChestTop:visible") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("MaskNode/Shiny:modulate") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("MaskNode/Shiny:rotation") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} + +[sub_resource type="Animation" id="Animation_o6r41"] +resource_name = "mask_reveal" +length = 3.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ChestOpen:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MaskNode/SpeedMask:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 3), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("MaskNode:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(0.329877, 0.329877), +"update": 0, +"values": [Vector2(13, -33), Vector2(13, -177)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MaskNode:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 3), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("ChestTop:visible") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("MaskNode/Shiny:modulate") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 2, 3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("MaskNode/Shiny:rotation") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0, 3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.872665] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_52pyd"] +_data = { +&"RESET": SubResource("Animation_ro4cy"), +&"mask_reveal": SubResource("Animation_o6r41") +} + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ro4cy"] +size = Vector2(251.884, 122.158) + +[node name="Chest" type="Node2D" node_paths=PackedStringArray("masks", "animator", "area")] +z_index = -3 +script = ExtResource("1_pe0kk") +masks = [NodePath("MaskNode/SpeedMask"), NodePath("MaskNode/GrappleMask"), NodePath("MaskNode/SpeedMask"), NodePath("MaskNode/SpiritMask")] +animator = NodePath("AnimationPlayer") +area = NodePath("Area2D") + +[node name="Sprite2D3" type="Sprite2D" parent="."] +modulate = Color(0.481789, 0.481789, 0.481789, 1) +z_index = -1 +position = Vector2(80.52, -32) +texture = SubResource("GradientTexture2D_owt0a") + +[node name="Sprite2D" type="Sprite2D" parent="."] +z_index = -1 +position = Vector2(-30, -32) +texture = SubResource("GradientTexture2D_owt0a") + +[node name="Sprite2D2" type="Sprite2D" parent="."] +z_index = -1 +position = Vector2(30, -32) +texture = SubResource("GradientTexture2D_owt0a") + +[node name="ChestTop" type="Sprite2D" parent="."] +position = Vector2(25.14, -69.67) +scale = Vector2(0.116, 0.116) +texture = ExtResource("1_owt0a") + +[node name="ChestOpen" type="Sprite2D" parent="."] +visible = false +z_index = -3 +position = Vector2(66, -96) +scale = Vector2(0.141854, 0.141854) +texture = ExtResource("2_bkju7") + +[node name="MaskNode" type="Node2D" parent="."] +z_index = -2 +position = Vector2(13, -33) + +[node name="Shiny" type="Sprite2D" parent="MaskNode"] +modulate = Color(1, 1, 1, 0) +scale = Vector2(0.19, 0.19) +texture = ExtResource("4_o6r41") + +[node name="SpeedMask" parent="MaskNode" instance=ExtResource("4_ro4cy")] +process_mode = 4 +scale = Vector2(1.50522, 1.50522) + +[node name="GrappleMask" parent="MaskNode" instance=ExtResource("6_52pyd")] +process_mode = 4 +visible = false +scale = Vector2(1.505, 1.505) + +[node name="SpiritMask" parent="MaskNode" instance=ExtResource("7_vmul4")] +process_mode = 4 +visible = false +scale = Vector2(1.505, 1.505) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_52pyd") +} + +[node name="Area2D" type="Area2D" parent="."] +collision_layer = 3 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(-9, -90.5997) +scale = Vector2(1.48005, 1.48005) +shape = SubResource("RectangleShape2D_ro4cy") + +[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"] diff --git a/Reusable Scenes/death_area.tscn b/Reusable Scenes/death_area.tscn new file mode 100644 index 0000000..12fe8b8 --- /dev/null +++ b/Reusable Scenes/death_area.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=3 uid="uid://711q12yjfsni"] + +[ext_resource type="Script" uid="uid://c6a1wljfwd8jm" path="res://Scripts/Level Specific/DeathZone.gd" id="1_wf6mn"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_o5i5b"] +size = Vector2(1143, 674) + +[node name="DeathArea" type="Area2D"] +collision_layer = 2 +collision_mask = 2 +monitoring = false +script = ExtResource("1_wf6mn") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(-26.5, -17) +shape = SubResource("RectangleShape2D_o5i5b") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/Reusable Scenes/player.tscn b/Reusable Scenes/player.tscn new file mode 100644 index 0000000..1ae0e47 --- /dev/null +++ b/Reusable Scenes/player.tscn @@ -0,0 +1,247 @@ +[gd_scene load_steps=21 format=3 uid="uid://dekoq72ls5rnf"] + +[ext_resource type="Script" uid="uid://c5warxls18mds" path="res://Scripts/Entity.gd" id="1_ifhme"] +[ext_resource type="Script" uid="uid://d1e1dfcab58lk" path="res://Scripts/Player/PlayerMovement.gd" id="1_w8pxy"] +[ext_resource type="Script" uid="uid://f4kopug5xiuj" path="res://Scripts/Player/PlayerAction.gd" id="2_em046"] +[ext_resource type="PackedScene" uid="uid://bxax2unw3ay8d" path="res://Reusable Scenes/Weapons/weapon_bow.tscn" id="4_86q6v"] +[ext_resource type="Script" uid="uid://dovejm1jxwfrp" path="res://Scripts/Player/PlayerDeath.gd" id="4_wnqlv"] +[ext_resource type="Script" uid="uid://bmx4fy618slwb" path="res://Scripts/Player/PlayerInventory.gd" id="5_fgtho"] +[ext_resource type="Texture2D" uid="uid://cmxkvsvtsocfj" path="res://Assets/Visuals/player.svg" id="6_7tym2"] +[ext_resource type="Script" uid="uid://ckd00ra2lp1xo" path="res://Scripts/Weapons/Melee.gd" id="8_7tym2"] +[ext_resource type="PackedScene" uid="uid://bdws5hhfuef84" path="res://Reusable Scenes/Masks/speed_mask.tscn" id="9_5skjw"] +[ext_resource type="Texture2D" uid="uid://cnxhxrmheing2" path="res://Assets/Visuals/machette.svg" id="9_w5cjy"] +[ext_resource type="PackedScene" uid="uid://ccij302qcrvo1" path="res://Reusable Scenes/Masks/grapple_mask.tscn" id="10_qit7a"] +[ext_resource type="PackedScene" uid="uid://cnyxp6p68vtv7" path="res://Reusable Scenes/Masks/spirit_mask.tscn" id="11_3f77a"] + +[sub_resource type="Gradient" id="Gradient_w8pxy"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.227451, 0.152941, 0.117647, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_bf1ey"] +gradient = SubResource("Gradient_w8pxy") +width = 40 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_7tym2"] +size = Vector2(33, 79.54) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_x1mjv"] +size = Vector2(16.567, 67.304) + +[sub_resource type="Animation" id="Animation_6amt5"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Area2D:monitoring") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_x1mjv"] +resource_name = "swing" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.133333, 0.166667), +"transitions": PackedFloat32Array(0.189465, 0.189465, 5.27803), +"update": 0, +"values": [0.0, 1.95477, 0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Area2D:monitoring") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.166667), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} + +[sub_resource type="Animation" id="Animation_4lcuo"] +resource_name = "swing_flip" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.133333, 0.166667), +"transitions": PackedFloat32Array(0.189465, 0.189465, 5.27803), +"update": 0, +"values": [0.0, -1.95477, 0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Area2D:monitoring") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.173523), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_4lcuo"] +_data = { +&"RESET": SubResource("Animation_6amt5"), +&"swing": SubResource("Animation_x1mjv"), +&"swing_flip": SubResource("Animation_4lcuo") +} + +[node name="Player" type="CharacterBody2D"] +collision_layer = 2 +collision_mask = 32769 +script = ExtResource("1_ifhme") +is_player = true + +[node name="Action" type="Node" parent="." node_paths=PackedStringArray("plr_sprite", "hand_pivot", "curr_weapon", "machette_pivot", "machette")] +script = ExtResource("2_em046") +plr_sprite = NodePath("../Player") +hand_pivot = NodePath("../HandPivot") +curr_weapon = NodePath("../HandPivot/Hand/weapon_bow") +machette_pivot = NodePath("../HandPivot/Hand/machette_pivot") +machette = NodePath("../HandPivot/Hand/machette_pivot/weapon_machette") + +[node name="Cooldown" type="Timer" parent="Action"] +wait_time = 0.35 + +[node name="PlayerMovement" type="Node" parent="." node_paths=PackedStringArray("character", "plr_sprite", "mask_node", "hand_pivot", "cape")] +script = ExtResource("1_w8pxy") +character = NodePath("..") +speed = 400.0 +jump_vel = -700.0 +plr_sprite = NodePath("../Player") +mask_node = NodePath("../MaskNode") +hand_pivot = NodePath("../HandPivot") +cape = NodePath("../Sprite2D") +skew_min = 12.7 +skew_max = 33.1 +skew_maxmax = 77.1 +lerp_step_on = 0.5 +lerp_step_off = 0.1 + +[node name="PlayerDeath" type="Node" parent="." node_paths=PackedStringArray("player")] +script = ExtResource("4_wnqlv") +player = NodePath("..") + +[node name="PlayerInventory" type="Node" parent="." node_paths=PackedStringArray("action", "machette_pivot", "bow", "machette", "masks")] +script = ExtResource("5_fgtho") +action = NodePath("../Action") +machette_pivot = NodePath("../HandPivot/Hand/machette_pivot") +bow = NodePath("../HandPivot/Hand/weapon_bow") +machette = NodePath("../HandPivot/Hand/machette_pivot/weapon_machette") +machette_cooldown = 0.001 +masks = [NodePath("../MaskNode/SpeedMask"), NodePath("../MaskNode/GrappleMask"), NodePath("../MaskNode/SpiritMask")] + +[node name="Sprite2D" type="Sprite2D" parent="."] +z_index = -1 +position = Vector2(0.49, -52.7323) +scale = Vector2(0.791, 54.329) +skew = 1.24093 +texture = SubResource("GradientTexture1D_bf1ey") +offset = Vector2(0, 0.5) + +[node name="Player" type="Sprite2D" parent="."] +z_index = -1 +position = Vector2(0.27, -45.7323) +scale = Vector2(0.101044, 0.101044) +texture = ExtResource("6_7tym2") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(2, -40.3) +shape = SubResource("RectangleShape2D_7tym2") + +[node name="HandPivot" type="Node2D" parent="."] +z_index = 1 +position = Vector2(4, -42.7323) + +[node name="Hand" type="Node2D" parent="HandPivot"] +position = Vector2(0, 16.58) + +[node name="weapon_bow" parent="HandPivot/Hand" instance=ExtResource("4_86q6v")] +z_index = -1 + +[node name="machette_pivot" type="Node2D" parent="HandPivot/Hand"] +visible = false +rotation = 1.45211 + +[node name="weapon_machette" type="Node2D" parent="HandPivot/Hand/machette_pivot" node_paths=PackedStringArray("animator", "area")] +process_mode = 4 +z_index = -1 +scale = Vector2(1.31089, 1.31089) +script = ExtResource("8_7tym2") +animator = NodePath("AnimationPlayer") +atk = 5 +area = NodePath("Area2D") +mask = 32769 + +[node name="Machette" type="Sprite2D" parent="HandPivot/Hand/machette_pivot/weapon_machette"] +position = Vector2(9.99098, -29.5384) +scale = Vector2(0.0699978, 0.0677614) +texture = ExtResource("9_w5cjy") +flip_h = true + +[node name="Area2D" type="Area2D" parent="HandPivot/Hand/machette_pivot/weapon_machette"] +collision_mask = 32769 +monitoring = false + +[node name="CollisionShape2D" type="CollisionShape2D" parent="HandPivot/Hand/machette_pivot/weapon_machette/Area2D"] +position = Vector2(18.1714, -45.1211) +rotation = 0.327302 +shape = SubResource("RectangleShape2D_x1mjv") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="HandPivot/Hand/machette_pivot/weapon_machette"] +libraries = { +&"": SubResource("AnimationLibrary_4lcuo") +} +speed_scale = 1.569 + +[node name="MaskNode" type="Node2D" parent="."] +z_index = -1 +position = Vector2(8, -64.7323) +scale = Vector2(0.878783, 0.878783) + +[node name="SpeedMask" parent="MaskNode" instance=ExtResource("9_5skjw")] +process_mode = 4 +visible = false + +[node name="GrappleMask" parent="MaskNode" instance=ExtResource("10_qit7a")] +process_mode = 4 +visible = false + +[node name="SpiritMask" parent="MaskNode" instance=ExtResource("11_3f77a")] +process_mode = 4 +visible = false + +[connection signal="entity_death" from="." to="PlayerDeath" method="_on_player_entity_death"] +[connection signal="timeout" from="Action/Cooldown" to="Action" method="_on_cooldown_timeout"] +[connection signal="body_entered" from="HandPivot/Hand/machette_pivot/weapon_machette/Area2D" to="HandPivot/Hand/machette_pivot/weapon_machette" method="_on_area_2d_body_entered"] diff --git a/Reusable Scenes/torch.tscn b/Reusable Scenes/torch.tscn new file mode 100644 index 0000000..1d95f43 --- /dev/null +++ b/Reusable Scenes/torch.tscn @@ -0,0 +1,49 @@ +[gd_scene load_steps=7 format=3 uid="uid://cmimydllnd6ny"] + +[ext_resource type="Texture2D" uid="uid://ddxbrkfa7i5n" path="res://Assets/Visuals/hexagon.png" id="1_ai0p8"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="2_i33rf"] + +[sub_resource type="Gradient" id="Gradient_34bfm"] +offsets = PackedFloat32Array(0) +colors = PackedColorArray(0.44, 0.34078, 0.2948, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ovrsl"] +gradient = SubResource("Gradient_34bfm") + +[sub_resource type="Gradient" id="Gradient_gnif3"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_ai0p8"] +gradient = SubResource("Gradient_gnif3") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.9, 0.2) +metadata/_snap_enabled = true + +[node name="Torch" type="Node2D"] + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(0.259716, -51.4739) +scale = Vector2(0.0664067, 101.938) +texture = SubResource("GradientTexture1D_ovrsl") + +[node name="Hexagon" type="Sprite2D" parent="."] +modulate = Color(1, 0.441, 0.22, 1) +light_mask = 2 +position = Vector2(-1.7404, -115.474) +scale = Vector2(0.0440846, 0.0470261) +texture = ExtResource("1_ai0p8") + +[node name="Hexagon2" type="Sprite2D" parent="."] +modulate = Color(1, 0.792, 0.22, 1) +light_mask = 2 +position = Vector2(-1.74028, -119.474) +scale = Vector2(0.0327629, 0.0317369) +texture = ExtResource("2_i33rf") + +[node name="PointLight2D" type="PointLight2D" parent="."] +position = Vector2(2.25972, -114.474) +scale = Vector2(7.85187, 8.79769) +color = Color(0.980853, 0.476805, 0, 1) +energy = 1.76 +texture = SubResource("GradientTexture2D_ai0p8") diff --git a/Reusable Scenes/torch_spirit.tscn b/Reusable Scenes/torch_spirit.tscn new file mode 100644 index 0000000..20d0f3c --- /dev/null +++ b/Reusable Scenes/torch_spirit.tscn @@ -0,0 +1,50 @@ +[gd_scene load_steps=7 format=3 uid="uid://b65q8eid6235v"] + +[ext_resource type="Texture2D" uid="uid://ddxbrkfa7i5n" path="res://Assets/Visuals/hexagon.png" id="1_l8os2"] +[ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="2_aloei"] + +[sub_resource type="Gradient" id="Gradient_l8os2"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(0.48, 0.40456, 0.3696, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_aloei"] +gradient = SubResource("Gradient_l8os2") + +[sub_resource type="Gradient" id="Gradient_gnif3"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_ai0p8"] +gradient = SubResource("Gradient_gnif3") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.9, 0.2) +metadata/_snap_enabled = true + +[node name="Torch" type="Node2D"] + +[node name="Sprite2D" type="Sprite2D" parent="."] +light_mask = 2 +position = Vector2(0.259716, -51.4739) +scale = Vector2(0.0664067, 101.938) +texture = SubResource("GradientTexture1D_aloei") + +[node name="Hexagon" type="Sprite2D" parent="."] +modulate = Color(0.504758, 0.605776, 1, 1) +light_mask = 2 +position = Vector2(-1.7404, -115.474) +scale = Vector2(0.0440846, 0.0470261) +texture = ExtResource("1_l8os2") + +[node name="Hexagon2" type="Sprite2D" parent="."] +modulate = Color(0.978268, 0.716035, 1, 1) +light_mask = 2 +position = Vector2(-1.74028, -119.474) +scale = Vector2(0.0327629, 0.0317369) +texture = ExtResource("2_aloei") + +[node name="PointLight2D" type="PointLight2D" parent="."] +position = Vector2(2.25972, -114.474) +scale = Vector2(7.85187, 8.79769) +color = Color(0.587118, 0.583572, 1, 1) +energy = 1.76 +texture = SubResource("GradientTexture2D_ai0p8") diff --git a/Scripts/CheckpointArea.gd b/Scripts/CheckpointArea.gd new file mode 100644 index 0000000..41ea2ff --- /dev/null +++ b/Scripts/CheckpointArea.gd @@ -0,0 +1,15 @@ +extends Area2D + +@export var level_id : int + +func _on_body_entered(body:Node2D) -> void: + if body is Entity: + if body.is_player: + body.health = body.max_health + UIConnector.next_level(level_id) + get_tree().get_root().get_node("Node2D").lvl = level_id + get_tree().get_root().get_node("Node2D").spawn_pos = global_position + get_tree().get_root().get_node("Node2D").inv_at_start = body.get_node("PlayerInventory").mask_inventory + get_tree().get_root().get_node("Node2D").has_machette = body.get_node("PlayerInventory").has_machette + UIConnector.display_health(body.health) + queue_free() diff --git a/Scripts/CheckpointArea.gd.uid b/Scripts/CheckpointArea.gd.uid new file mode 100644 index 0000000..0d8b33d --- /dev/null +++ b/Scripts/CheckpointArea.gd.uid @@ -0,0 +1 @@ +uid://kyrqivposqhu diff --git a/Scripts/Enemy AI/JungleAI.gd b/Scripts/Enemy AI/JungleAI.gd new file mode 100644 index 0000000..cedb028 --- /dev/null +++ b/Scripts/Enemy AI/JungleAI.gd @@ -0,0 +1,48 @@ +extends Node + +var player : Entity = null + +@export var weapon : Node2D +@export var pivot : Node2D +@export var sprite : Node2D + +var delta_pos : Vector2 + +var can_attack : bool = true + +func _on_detect_area_body_entered(body:Node2D) -> void: + print(body) + if body is Entity: + if body.is_player: + player = body + +var parent : Entity + +func _process(_delta: float) -> void: + parent = get_node("..") + + if !player: + return + + delta_pos = player.global_position - parent.global_position + + var angle = rad_to_deg(atan2(delta_pos.y, delta_pos.x)) - 90 + pivot.rotation_degrees = angle + + if delta_pos.x < 0: + if pivot.position.x > 0: pivot.position.x *= -1 + if pivot.scale.x > 0: pivot.scale.x *= -1 + if sprite.scale.x > 0: sprite.scale.x *= -1 + else: + if pivot.position.x < 0: pivot.position.x *= -1 + if pivot.scale.x < 0: pivot.scale.x *= -1 + if sprite.scale.x < 0: sprite.scale.x *= -1 + + if can_attack: + weapon.action() + $"AttackCooldown".start() + can_attack = false + + +func _on_attack_cooldown_timeout() -> void: + can_attack = true diff --git a/Scripts/Enemy AI/JungleAI.gd.uid b/Scripts/Enemy AI/JungleAI.gd.uid new file mode 100644 index 0000000..dc5e0f4 --- /dev/null +++ b/Scripts/Enemy AI/JungleAI.gd.uid @@ -0,0 +1 @@ +uid://cahhmhibcdjcd diff --git a/Scripts/Enemy AI/ShoreAI.gd b/Scripts/Enemy AI/ShoreAI.gd new file mode 100644 index 0000000..16a3e04 --- /dev/null +++ b/Scripts/Enemy AI/ShoreAI.gd @@ -0,0 +1,68 @@ +extends Node + +var player : Entity = null +var parent : Entity + +@export var weapon : Node2D +@export var sprite : Node2D +@export var animator : AnimationPlayer +@export var walk_speed : float = 200 + +var in_range : bool = false +var can_attack : bool = true + +func _ready() -> void: + parent = get_node("..") + walk_speed = randf_range(walk_speed - 50, walk_speed + 50) + +var delta_pos : Vector2 + +func _process(delta: float) -> void: + if !player: + return + + delta_pos = player.global_position - parent.global_position + + if delta_pos.x < 0: + if weapon.position.x > 0: weapon.position.x = -weapon.position.x + if weapon.scale.x > 0: weapon.scale.x = -1 + if sprite.scale.x > 0: sprite.scale.x = -1 + else: + if weapon.position.x < 0: weapon.position.x = -weapon.position.x + if weapon.scale.x < 0: weapon.scale.x = 1 + if sprite.scale.x < 0: sprite.scale.x = 1 + + if in_range && can_attack: + weapon.action() + parent.linear_velocity.y = 2000 + can_attack = false + +func _physics_process(delta: float) -> void: + if !in_range && parent.linear_velocity.y == 0 && player: + if delta_pos.x < 0: + parent.linear_velocity.x = -walk_speed + else: + parent.linear_velocity.x = walk_speed + animator.play("walk") + elif in_range: + animator.stop() + +func _on_area_2d_body_entered(body:Node2D) -> void: + print(body) + if body is Entity: + if body.is_player: + player = body + $"AttackCooldown".start() + +func _on_attack_area_body_entered(body: Node2D) -> void: + if body is Entity: + if body.is_player: + in_range = true + +func _on_attack_area_body_exited(body: Node2D) -> void: + if body is Entity: + if body.is_player: + in_range = false + +func _on_attack_cooldown_timeout() -> void: + can_attack = true diff --git a/Scripts/Enemy AI/ShoreAI.gd.uid b/Scripts/Enemy AI/ShoreAI.gd.uid new file mode 100644 index 0000000..2f42db4 --- /dev/null +++ b/Scripts/Enemy AI/ShoreAI.gd.uid @@ -0,0 +1 @@ +uid://n2vodoxhopnr diff --git a/Scripts/Entity.gd b/Scripts/Entity.gd new file mode 100644 index 0000000..33a1e98 --- /dev/null +++ b/Scripts/Entity.gd @@ -0,0 +1,56 @@ +extends PhysicsBody2D +class_name Entity + +@export var is_player : bool = false +@export var is_player_dead : bool = false +@export var max_health : int = 10 +var health : int = 1 + +var timer : Timer + +var knockback : Vector2 + +func _ready() -> void: + timer = Timer.new() + add_child(timer) + timer.wait_time = 0.15 + timer.one_shot = true + timer.timeout.connect(_on_dmg_visual_timer_timeout) + health = max_health + +signal entity_death + +func _process(_delta: float) -> void: + if health <= 0: + entity_death.emit() + if !is_player: + queue_free() + else: + is_player_dead = true + +func _physics_process(_delta: float) -> void: + if is_player && knockback != Vector2.ZERO: + $"PlayerMovement".knockback = knockback + knockback = Vector2.ZERO + +func damage(n : int): + health -= n + modulate = Color.RED + timer.start() + + if is_player: UIConnector.display_health(health) + +func _on_dmg_visual_timer_timeout() -> void: + modulate = Color.WHITE + +# this is bad + +func make_tools_invisible(): + $"HandPivot".visible = false + +func make_mask_invisible(): + $"MaskNode".visible = false + +func make_invisisble(): + $"Player".visible = false + $"Sprite2D".visible = false diff --git a/Scripts/Entity.gd.uid b/Scripts/Entity.gd.uid new file mode 100644 index 0000000..3fbc6b5 --- /dev/null +++ b/Scripts/Entity.gd.uid @@ -0,0 +1 @@ +uid://c5warxls18mds diff --git a/Scripts/GameLoop.gd b/Scripts/GameLoop.gd new file mode 100644 index 0000000..353f1be --- /dev/null +++ b/Scripts/GameLoop.gd @@ -0,0 +1,34 @@ +extends Node2D + +var spawn_pos : Vector2 = Vector2(640, 372) + +var inv_at_start : Array[int] = [-1, -1, -1, -1, -1, -1] +var has_machette : bool = false + +var player : Entity + +@export var lvl : int = 0 + +@export var level_nodes : Array[Node2D] +@export var level_packs : Array[PackedScene] + +func _ready() -> void: + player = get_tree().get_root().get_node("Node2D/Player") + Engine.time_scale = 1 + +func restart() -> void: + var new = level_packs[lvl].instantiate() + + new.global_position = level_nodes[lvl].global_position + get_tree().get_root().get_node("Node2D").add_child(new) + level_nodes[lvl].queue_free() + level_nodes[lvl] = new + + player.health = player.max_health + UIConnector.display_health(player.health) + player.position = spawn_pos + player.visible = true + player.process_mode = Node.PROCESS_MODE_PAUSABLE + player.get_node("PlayerInventory").mask_inventory = inv_at_start + if !has_machette: player.get_node("PlayerInventory").ungive_machette() + UIConnector.update_masks(player.get_node("PlayerInventory").mask_inventory) diff --git a/Scripts/GameLoop.gd.uid b/Scripts/GameLoop.gd.uid new file mode 100644 index 0000000..652213d --- /dev/null +++ b/Scripts/GameLoop.gd.uid @@ -0,0 +1 @@ +uid://cde31fpchqoxt diff --git a/Scripts/Level Specific/0MachetteGive.gd b/Scripts/Level Specific/0MachetteGive.gd new file mode 100644 index 0000000..9754741 --- /dev/null +++ b/Scripts/Level Specific/0MachetteGive.gd @@ -0,0 +1,8 @@ +extends Node2D + + +func _on_area_2d_body_entered(body:Node2D) -> void: + if body is Entity: + if body.is_player: + body.get_node("PlayerInventory").give_machette() + queue_free() diff --git a/Scripts/Level Specific/0MachetteGive.gd.uid b/Scripts/Level Specific/0MachetteGive.gd.uid new file mode 100644 index 0000000..8b41468 --- /dev/null +++ b/Scripts/Level Specific/0MachetteGive.gd.uid @@ -0,0 +1 @@ +uid://c4st16y5gx2yh diff --git a/Scripts/Level Specific/1FruitSrhubs.gd b/Scripts/Level Specific/1FruitSrhubs.gd new file mode 100644 index 0000000..ee38b61 --- /dev/null +++ b/Scripts/Level Specific/1FruitSrhubs.gd @@ -0,0 +1,14 @@ +extends Node2D + +@export var area : Area2D +@export var fruites : Node2D +@export var health = 3 + +func _on_area_2d_body_entered(body:Node2D) -> void: + if body is Entity: + if body.is_player: + body.health += health + body.health = min(body.health, body.max_health) + UIConnector.display_health(body.health) + area.queue_free() + fruites.queue_free() diff --git a/Scripts/Level Specific/1FruitSrhubs.gd.uid b/Scripts/Level Specific/1FruitSrhubs.gd.uid new file mode 100644 index 0000000..1cfc179 --- /dev/null +++ b/Scripts/Level Specific/1FruitSrhubs.gd.uid @@ -0,0 +1 @@ +uid://cl2xrq3y86cer diff --git a/Scripts/Level Specific/1Mud.gd b/Scripts/Level Specific/1Mud.gd new file mode 100644 index 0000000..eaa64d5 --- /dev/null +++ b/Scripts/Level Specific/1Mud.gd @@ -0,0 +1,11 @@ +extends Area2D + +func _on_body_exited(body:Node2D) -> void: + if body is Entity: + if body.is_player: + body.get_node("PlayerMovement").speed *= 4 + +func _on_body_entered(body:Node2D) -> void: + if body is Entity: + if body.is_player: + body.get_node("PlayerMovement").speed /= 4 diff --git a/Scripts/Level Specific/1Mud.gd.uid b/Scripts/Level Specific/1Mud.gd.uid new file mode 100644 index 0000000..00af3c2 --- /dev/null +++ b/Scripts/Level Specific/1Mud.gd.uid @@ -0,0 +1 @@ +uid://bkw5wrlcs14pa diff --git a/Scripts/Level Specific/1SpikyShrubs.gd b/Scripts/Level Specific/1SpikyShrubs.gd new file mode 100644 index 0000000..99747a2 --- /dev/null +++ b/Scripts/Level Specific/1SpikyShrubs.gd @@ -0,0 +1,27 @@ +extends Node2D + +@export var health = 1 + +var can_hurt = true + +var pler : Entity = null + +func _process(_delta: float) -> void: + if pler && can_hurt: + pler.damage(health) + can_hurt = false + $"Timer".start() + +func _on_area_2d_body_entered(body:Node2D) -> void: + if body is Entity: + if body.is_player && can_hurt: + pler = body + pler.get_node("PlayerMovement").speed /= 2 + +func _on_timer_timeout() -> void: + can_hurt = true + +func _on_area_2d_body_exited(_body:Node2D) -> void: + if pler: + pler.get_node("PlayerMovement").speed *= 2 + pler = null diff --git a/Scripts/Level Specific/1SpikyShrubs.gd.uid b/Scripts/Level Specific/1SpikyShrubs.gd.uid new file mode 100644 index 0000000..1c9977b --- /dev/null +++ b/Scripts/Level Specific/1SpikyShrubs.gd.uid @@ -0,0 +1 @@ +uid://d311iyn5wpy1q diff --git a/Scripts/Level Specific/2CameraControls.gd b/Scripts/Level Specific/2CameraControls.gd new file mode 100644 index 0000000..f207aca --- /dev/null +++ b/Scripts/Level Specific/2CameraControls.gd @@ -0,0 +1,21 @@ +extends Area2D + +@export_range(-1, 1, 0.01) var horizontal_offset : float = 0 +@export var x_delta : float +@export var y_delta : float +@export var once : bool = false +@export var set : bool = false + +func _on_body_entered(body:Node2D) -> void: + if body is Entity: + if body.is_player: + var cam : Camera2D = body.get_node("Node2D/Camera2D") + + cam.drag_horizontal_offset = horizontal_offset + if !set: + cam.position.x += x_delta + cam.position.y += y_delta + else: + cam.position.x = x_delta + cam.position.y = y_delta + if once: queue_free() diff --git a/Scripts/Level Specific/2CameraControls.gd.uid b/Scripts/Level Specific/2CameraControls.gd.uid new file mode 100644 index 0000000..1c3c871 --- /dev/null +++ b/Scripts/Level Specific/2CameraControls.gd.uid @@ -0,0 +1 @@ +uid://b5td7htthnvrn diff --git a/Scripts/Level Specific/AnimationArea.gd b/Scripts/Level Specific/AnimationArea.gd new file mode 100644 index 0000000..70d5e85 --- /dev/null +++ b/Scripts/Level Specific/AnimationArea.gd @@ -0,0 +1,9 @@ +extends Area2D + +@export var anim : AnimationPlayer +@export var aname : String + +func _on_body_entered(body:Node2D) -> void: + if body is Entity: + if body.is_player: + anim.play(aname) diff --git a/Scripts/Level Specific/AnimationArea.gd.uid b/Scripts/Level Specific/AnimationArea.gd.uid new file mode 100644 index 0000000..e55799d --- /dev/null +++ b/Scripts/Level Specific/AnimationArea.gd.uid @@ -0,0 +1 @@ +uid://dfgrs1b8urejr diff --git a/Scripts/Level Specific/DeathZone.gd b/Scripts/Level Specific/DeathZone.gd new file mode 100644 index 0000000..0648c27 --- /dev/null +++ b/Scripts/Level Specific/DeathZone.gd @@ -0,0 +1,20 @@ +extends Area2D + +var timer : Timer + +func _ready() -> void: + monitoring = false + timer = Timer.new() + timer.wait_time = 1 + timer.timeout.connect(_enable) + add_child(timer) + timer.one_shot = true + timer.start() + +func _on_body_entered(body:Node2D) -> void: + if body is Entity: + body.damage(1000000) + monitoring = false + +func _enable(): + monitoring = true diff --git a/Scripts/Level Specific/DeathZone.gd.uid b/Scripts/Level Specific/DeathZone.gd.uid new file mode 100644 index 0000000..dfed3a0 --- /dev/null +++ b/Scripts/Level Specific/DeathZone.gd.uid @@ -0,0 +1 @@ +uid://c6a1wljfwd8jm diff --git a/Scripts/Level Specific/DisableJump.gd b/Scripts/Level Specific/DisableJump.gd new file mode 100644 index 0000000..ac4ec38 --- /dev/null +++ b/Scripts/Level Specific/DisableJump.gd @@ -0,0 +1,6 @@ +extends Area2D + +func _on_body_entered(body:Node2D) -> void: + if body is Entity: + if body.is_player: + body.get_node("PlayerMovement").jump_vel = 0 diff --git a/Scripts/Level Specific/DisableJump.gd.uid b/Scripts/Level Specific/DisableJump.gd.uid new file mode 100644 index 0000000..8f61bfa --- /dev/null +++ b/Scripts/Level Specific/DisableJump.gd.uid @@ -0,0 +1 @@ +uid://cswiai0otl7jn diff --git a/Scripts/Level Specific/Grappleable.gd b/Scripts/Level Specific/Grappleable.gd new file mode 100644 index 0000000..43dcbd4 --- /dev/null +++ b/Scripts/Level Specific/Grappleable.gd @@ -0,0 +1,10 @@ +extends StaticBody2D +class_name Grappleable + +@export var highlighter : Sprite2D + +func highlight(): + highlighter.visible = true + +func dehighlight(): + highlighter.visible = false diff --git a/Scripts/Level Specific/Grappleable.gd.uid b/Scripts/Level Specific/Grappleable.gd.uid new file mode 100644 index 0000000..e735572 --- /dev/null +++ b/Scripts/Level Specific/Grappleable.gd.uid @@ -0,0 +1 @@ +uid://c8n5trpan30g0 diff --git a/Scripts/Mask/GrappleMask.gd b/Scripts/Mask/GrappleMask.gd new file mode 100644 index 0000000..35df89a --- /dev/null +++ b/Scripts/Mask/GrappleMask.gd @@ -0,0 +1,78 @@ +extends Node2D + +@export var area : Area2D +@export var area_detect : Area2D +@export var line : Line2D +@export var grapple_speed : float + +var thing : Node2D = null + +var player_movement : PlayerMovement + +var just_released : bool = false + +func _ready() -> void: + player_movement = get_node("../../PlayerMovement") + +func _input(event: InputEvent) -> void: + if event is InputEventMouseMotion: + var delta_pos = event.position - get_global_transform_with_canvas().origin + area_detect.rotation = atan2(delta_pos.y, delta_pos.x) + if Input.is_action_just_pressed("action_secondary") && event is InputEventMouseButton: + var delta_pos = event.position - get_global_transform_with_canvas().origin + area.rotation = atan2(delta_pos.y, delta_pos.x) + area.monitoring = true + if Input.is_action_just_released("action_secondary"): + print("hi") + area.monitoring = false + thing = null + +var init_delta : Vector2 +var x_vel + +func _process(_delta: float) -> void: + if !thing: + if just_released: + player_movement.grapple_x_vel_aft = player_movement.speed + player_movement.grapple_velocity = Vector2.ZERO + line.points[1] = Vector2.ZERO + x_vel = null + just_released = false + return + + area.monitoring = false + + var delta_pos = thing.global_position - global_position + print(delta_pos.length(), " ", delta_pos.y, " ", delta_pos.x) + + line.points[1] = delta_pos + + var normalised = delta_pos.normalized() + + if !x_vel: x_vel = normalised.x + + if x_vel > 0.3: + x_vel = .9 + elif x_vel < -0.3: + x_vel = -.9 + + if delta_pos.length() < 100 || ((x_vel > 0 && delta_pos.x < 0) || (x_vel < 0 && delta_pos.x > 0)): + just_released = true + thing = null + + player_movement.grapple_velocity = Vector2(x_vel, normalised.y * 1.1) * grapple_speed + +func _on_area_2d_body_entered(body: Node2D) -> void: + print("grapple", body) + thing = body + area.monitoring = false + init_delta = thing.global_position - global_position + +func _on_detect_area_2d_body_exited(body:Node2D) -> void: + if body is Grappleable: + body.dehighlight() + +func _on_detect_area_2d_body_entered(body:Node2D) -> void: + if body is Grappleable: + body.highlight() + diff --git a/Scripts/Mask/GrappleMask.gd.uid b/Scripts/Mask/GrappleMask.gd.uid new file mode 100644 index 0000000..908aafb --- /dev/null +++ b/Scripts/Mask/GrappleMask.gd.uid @@ -0,0 +1 @@ +uid://cxy2ovjxwgtco diff --git a/Scripts/Mask/SpeedMask.gd b/Scripts/Mask/SpeedMask.gd new file mode 100644 index 0000000..682785a --- /dev/null +++ b/Scripts/Mask/SpeedMask.gd @@ -0,0 +1,36 @@ +extends Node2D + +var player_movement : PlayerMovement + +var timer : Timer + +var just_clicked : bool = false + +var can_dash : bool = true + +func _ready() -> void: + player_movement = get_node("../../PlayerMovement") + timer = Timer.new() + timer.wait_time = .5 + timer.one_shot = true + timer.timeout.connect(_timeout) + add_child(timer) + +func _input(_event: InputEvent) -> void: +# if Input.is_action_just_pressed("left") || Input.is_action_just_pressed("right"): +# if !just_clicked: +# just_clicked = true +# timer.start() +# else: +# just_clicked = false + if Input.is_action_just_pressed("dash"): + if can_dash: + player_movement.dash(Input.get_axis("left", "right")) + can_dash = false + $"Cooldown".start() + +func _timeout() -> void: + just_clicked = false + +func _on_cooldown_timeout() -> void: + can_dash = true diff --git a/Scripts/Mask/SpeedMask.gd.uid b/Scripts/Mask/SpeedMask.gd.uid new file mode 100644 index 0000000..4e64967 --- /dev/null +++ b/Scripts/Mask/SpeedMask.gd.uid @@ -0,0 +1 @@ +uid://dpjuboxc5u855 diff --git a/Scripts/MaskChest.gd b/Scripts/MaskChest.gd new file mode 100644 index 0000000..76d1ecf --- /dev/null +++ b/Scripts/MaskChest.gd @@ -0,0 +1,30 @@ +extends Node2D +class_name MaskChest + +enum MaskType { + Dash = 0, + Grapple = 1, + Freeze = 3, + Minions = 2, +} + +@export var mask : MaskType + +@export var masks : Array[Node2D] +@export var tutorial_to_be_visible : Array[Sprite2D] + +@export var animator : AnimationPlayer + +@export var area : Area2D + +func _on_area_2d_body_entered(body:Node2D) -> void: + if body is Entity: + if body.is_player: + masks[mask].visible = true + animator.play("mask_reveal") + body.get_node("PlayerInventory").add_mask(mask) + + for sprite in tutorial_to_be_visible: + sprite.visible = true + + area.queue_free() diff --git a/Scripts/MaskChest.gd.uid b/Scripts/MaskChest.gd.uid new file mode 100644 index 0000000..5ea26cd --- /dev/null +++ b/Scripts/MaskChest.gd.uid @@ -0,0 +1 @@ +uid://buli338mi1oqs diff --git a/Scripts/Player/PlayerAction.gd b/Scripts/Player/PlayerAction.gd new file mode 100644 index 0000000..989823a --- /dev/null +++ b/Scripts/Player/PlayerAction.gd @@ -0,0 +1,46 @@ +extends Node +class_name PlayerAction + +@export var plr_sprite : Sprite2D +@export var hand_pivot : Node2D +@export var curr_weapon : Node2D +@export var machette_pivot : Node2D +@export var machette : Node2D + +var can_attack : bool = true + +var delta_pos : Vector2 + +func _process(_delta: float) -> void: + if UIConnector.is_inv_open: + return + + var hpos : Vector2 = hand_pivot.get_global_transform_with_canvas().get_origin() + var mouse_position : Vector2 = get_viewport().get_mouse_position() + delta_pos = mouse_position - hpos + + var angle = rad_to_deg(atan2(delta_pos.y, delta_pos.x)) - 90 + hand_pivot.rotation_degrees = angle + if angle <= 0 && angle >= -180: + if machette_pivot.rotation_degrees < 0: machette_pivot.rotation_degrees *= -1 + if machette.scale.x < 0: machette.scale.x *= -1 + elif (angle <= -180 && angle >= -270) || (angle >= 0 && angle <= 90): + if machette_pivot.rotation_degrees > 0: machette_pivot.rotation_degrees *= -1 + if machette.scale.x > 0: machette.scale.x *= -1 + +func _input(_event: InputEvent) -> void: + if UIConnector.is_inv_open: + return + + if Input.is_action_just_pressed("action") && can_attack: + if delta_pos.x < 0 && !plr_sprite.flip_h: + $"../PlayerMovement".look_left(true) + elif delta_pos.x > 0 && plr_sprite.flip_h: + $"../PlayerMovement".look_right(true) + + curr_weapon.action() + can_attack = false + $"Cooldown".start() + +func _on_cooldown_timeout() -> void: + can_attack = true diff --git a/Scripts/Player/PlayerAction.gd.uid b/Scripts/Player/PlayerAction.gd.uid new file mode 100644 index 0000000..00777f8 --- /dev/null +++ b/Scripts/Player/PlayerAction.gd.uid @@ -0,0 +1 @@ +uid://f4kopug5xiuj diff --git a/Scripts/Player/PlayerDeath.gd b/Scripts/Player/PlayerDeath.gd new file mode 100644 index 0000000..5df4fbf --- /dev/null +++ b/Scripts/Player/PlayerDeath.gd @@ -0,0 +1,8 @@ +extends Node + +@export var player : CharacterBody2D + +func _on_player_entity_death() -> void: + player.visible = false + player.process_mode = Node.PROCESS_MODE_DISABLED + UIConnector.death() diff --git a/Scripts/Player/PlayerDeath.gd.uid b/Scripts/Player/PlayerDeath.gd.uid new file mode 100644 index 0000000..1d6d4b1 --- /dev/null +++ b/Scripts/Player/PlayerDeath.gd.uid @@ -0,0 +1 @@ +uid://dovejm1jxwfrp diff --git a/Scripts/Player/PlayerInventory.gd b/Scripts/Player/PlayerInventory.gd new file mode 100644 index 0000000..76ad2ec --- /dev/null +++ b/Scripts/Player/PlayerInventory.gd @@ -0,0 +1,89 @@ +extends Node +class_name PlayerInventory + +@export var action : PlayerAction +@export var machette_pivot : Node2D + +@export var bow : Node2D +@export var bow_cooldown : float = 0.35 +@export var machette : Node2D +@export var machette_cooldown : float = 0.2 + +@export var masks : Array[Node2D] + + +enum MaskType { + Dash = 0, + Grapple = 1, + Freeze = 3, + Minions = 2, +} + +var prev_inv : Array[int] = [-1, -1, -1, -1, -1, -1] + +@export var mask_inventory : Array[int] = [-1, -1, -1, -1, -1, -1] + +var has_machette : bool = false +var using_bow : bool = true + +func _ready(): + UIConnector.update_masks(mask_inventory) + +func _input(_event: InputEvent) -> void: + if Input.is_action_just_pressed("switch_tool") && has_machette: + UIConnector.switch_tool() + + if using_bow: + action.curr_weapon = machette + machette_pivot.visible = true + bow.visible = false + machette.process_mode = Node.PROCESS_MODE_INHERIT + bow.process_mode = Node.PROCESS_MODE_DISABLED + action.get_node("Cooldown").wait_time = machette_cooldown + else: + action.curr_weapon = bow + machette_pivot.visible = false + bow.visible = true + machette.process_mode = Node.PROCESS_MODE_DISABLED + bow.process_mode = Node.PROCESS_MODE_INHERIT + action.get_node("Cooldown").wait_time = bow_cooldown + + using_bow = !using_bow + + if Input.is_action_just_pressed("switch_mask"): + var curr_mask = mask_inventory[0] + mask_inventory[0] = mask_inventory[1] + mask_inventory[1] = curr_mask + UIConnector.update_masks(mask_inventory) + $"../PlayerMovement".grapple_velocity = Vector2.ZERO + +func _process(_delta: float) -> void: + if prev_inv.hash() != mask_inventory.hash(): + print("changed") + for mask in masks: + mask.visible = false + mask.process_mode = Node.PROCESS_MODE_DISABLED + if mask_inventory[0] != -1: + print("YEAH") + masks[mask_inventory[0]].visible = true + masks[mask_inventory[0]].process_mode = Node.PROCESS_MODE_INHERIT + + prev_inv = mask_inventory.duplicate() + +func give_machette() -> void: + has_machette = true + UIConnector.add_machette() + +func ungive_machette() -> void: + has_machette = false + UIConnector.remove_machette() + +func add_mask(mask : MaskType): + print("the mask is ", mask) + if !(mask in mask_inventory): + for i in range(2, 6): + if mask_inventory[i] == -1: + mask_inventory[i] = mask + break + UIConnector.update_masks(mask_inventory) + UIConnector.show_mask_bubble() diff --git a/Scripts/Player/PlayerInventory.gd.uid b/Scripts/Player/PlayerInventory.gd.uid new file mode 100644 index 0000000..e1d5bbd --- /dev/null +++ b/Scripts/Player/PlayerInventory.gd.uid @@ -0,0 +1 @@ +uid://bmx4fy618slwb diff --git a/Scripts/Player/PlayerMovement.gd b/Scripts/Player/PlayerMovement.gd new file mode 100644 index 0000000..648a5e6 --- /dev/null +++ b/Scripts/Player/PlayerMovement.gd @@ -0,0 +1,146 @@ +extends Node +class_name PlayerMovement + +@export var character : CharacterBody2D + +@export var speed = 300.0 +@export var jump_vel = -400.0 + +@export var plr_sprite : Sprite2D +@export var mask_node : Node2D +@export var hand_pivot : Node2D + +@export var cape : Sprite2D +@export var skew_min : float +@export var skew_max : float +@export var skew_maxmax : float +@export var lerp_step_on : float +@export var lerp_step_off : float + +var target_skew = 0.0 +var curr_step = 0.0 + +@export var min_knock = 100 +@export var knockback_decay = 1.3 +var knockback : Vector2 + +var dir_manipulated : bool = false + +var dash_timer : Timer +var dashing : bool = false +var dash_dir : int = 0 +@export var dash_time : float = 0.2 +@export var dash_speed : float = 1500 + +var grapple_velocity : Vector2 = Vector2.ZERO +var grapple_x_vel_aft : float = 0 + +func _ready() -> void: + dash_timer = Timer.new() + dash_timer.wait_time = dash_time + dash_timer.one_shot = true + dash_timer.timeout.connect(_on_dash_end) + add_child(dash_timer) + + manipulate_timer = Timer.new() + add_child(manipulate_timer) + manipulate_timer.wait_time = 0.5 + manipulate_timer.one_shot = true + manipulate_timer.timeout.connect(_on_manipulate_end) + + +func _physics_process(delta: float) -> void: + if knockback.length_squared() > min_knock**2: + knockback /= knockback_decay + character.velocity = knockback + character.move_and_slide() + return + + if grapple_velocity != Vector2.ZERO: + character.velocity = grapple_velocity + character.move_and_slide() + return + + # Add the gravity. + if not character.is_on_floor(): + character.velocity += character.get_gravity() * delta + + if dashing: + character.velocity.x = 1000 * dash_dir + character.move_and_slide() + return + + # Handle jump. + if Input.is_action_just_pressed("jump") and character.is_on_floor(): + character.velocity.y = jump_vel + + # Get the input direction and handle the movement/deceleration. + # As good practice, you should replace UI actions with custom gameplay actions. + var direction := Input.get_axis("left", "right") + if direction: + grapple_x_vel_aft = 0 + character.velocity.x = direction * speed + if character.velocity.y < 0: + target_skew = skew_min + elif character.is_on_floor(): + target_skew = skew_max + curr_step = lerp_step_on + else: + if grapple_x_vel_aft != 0: + grapple_x_vel_aft = move_toward(character.velocity.x, 0, speed * delta) + character.velocity.x = grapple_x_vel_aft + else: + character.velocity.x = move_toward(character.velocity.x, 0, speed) + target_skew = skew_min + curr_step = lerp_step_off + + if character.velocity.y > 0: + target_skew = skew_maxmax + curr_step = lerp_step_off + + cape.skew = lerp_angle(cape.skew, deg_to_rad(target_skew), curr_step) + + if direction == -1 && !dir_manipulated: look_left() + elif direction == 1 && !dir_manipulated: look_right() + + character.move_and_slide() + +var manipulate_timer : Timer + +func look_left(manipulate : bool = false) -> void: + if manipulate: + dir_manipulated = true + manipulate_timer.start() + + if cape.skew > 0: cape.skew = -cape.skew + if skew_min > 0: skew_min = -skew_min + if skew_max > 0: skew_max = -skew_max + if skew_maxmax > 0: skew_maxmax = -skew_maxmax + if mask_node.position.x > 0: mask_node.position.x *= -1 + if hand_pivot.position.x > 0: hand_pivot.position.x *= -1 + plr_sprite.flip_h = true + + +func look_right(manipulate : bool = false) -> void: + if manipulate: + dir_manipulated = true + manipulate_timer.start() + + if cape.skew < 0: cape.skew = -cape.skew + if skew_min < 0: skew_min = -skew_min + if skew_max < 0: skew_max = -skew_max + if skew_maxmax < 0: skew_maxmax = -skew_maxmax + if mask_node.position.x < 0: mask_node.position.x *= -1 + if hand_pivot.position.x < 0: hand_pivot.position.x *= -1 + plr_sprite.flip_h = false + +func dash(dir): + dashing = true + dash_dir = dir + dash_timer.start() + +func _on_manipulate_end() -> void: + dir_manipulated = false + +func _on_dash_end() -> void: + dashing = false diff --git a/Scripts/Player/PlayerMovement.gd.uid b/Scripts/Player/PlayerMovement.gd.uid new file mode 100644 index 0000000..8636702 --- /dev/null +++ b/Scripts/Player/PlayerMovement.gd.uid @@ -0,0 +1 @@ +uid://d1e1dfcab58lk diff --git a/Scripts/SpawnZone.gd b/Scripts/SpawnZone.gd new file mode 100644 index 0000000..fdcb10a --- /dev/null +++ b/Scripts/SpawnZone.gd @@ -0,0 +1,41 @@ +extends Area2D +class_name SpawnZone + +var spawned : bool = false + +@export var anim_to_play : Array[AnimationPlayer] +@export var spawn_to_enable : Array[Spawner] + +func _ready() -> void: + var timer = Timer.new() + add_child(timer) + timer.wait_time = .5 + timer.timeout.connect(_timeout) + timer.start() + +func _on_body_entered(body:Node2D) -> void: + if spawned: + return + + if body is Entity: + if body.is_player: + for anim in anim_to_play: + anim.play("close") + + for spawner in spawn_to_enable: + spawner.all_spawned_dead.connect(_a_spawner_finished) + spawner.start() + + spawned = true + +var finished_counter = 0 + +func _a_spawner_finished() -> void: + if finished_counter >= len(spawn_to_enable) - 1: + for anim in anim_to_play: + anim.play("open") + else: + finished_counter += 1 + +func _timeout() -> void: + monitoring = true diff --git a/Scripts/SpawnZone.gd.uid b/Scripts/SpawnZone.gd.uid new file mode 100644 index 0000000..de83a2d --- /dev/null +++ b/Scripts/SpawnZone.gd.uid @@ -0,0 +1 @@ +uid://c5vuv87l6mm6w diff --git a/Scripts/Spawner.gd b/Scripts/Spawner.gd new file mode 100644 index 0000000..c2c60c5 --- /dev/null +++ b/Scripts/Spawner.gd @@ -0,0 +1,57 @@ +extends Node2D +class_name Spawner + +@export var enemy : PackedScene +@export var interval_seconds : float = 10 +@export var count : int = 5 +@export var initial_delay : float = 3 +@export var curr_lvl : Node2D + +var init_timer : Timer +var timer : Timer + +var counter : int = 0 + +func _ready() -> void: + timer = Timer.new() + add_child(timer) + timer.wait_time = interval_seconds + timer.one_shot = false + timer.timeout.connect(_on_timeout) + + + init_timer = Timer.new() + add_child(init_timer) + init_timer.wait_time = initial_delay + init_timer.one_shot = true + init_timer.timeout.connect(_actual_start) + +func start(): + init_timer.start() + +func _actual_start(): + _on_timeout() + timer.start() + +func _on_timeout() -> void: + if counter >= count: + timer.stop() + return + + var new : Entity = enemy.instantiate() + new.position = position + curr_lvl.add_child(new) + new.entity_death.connect(_upon_spawned_death) + + counter += 1 + +var dead_counter = 0 + +signal all_spawned_dead + +func _upon_spawned_death() -> void: + if dead_counter >= count - 1: + print("ALL SPAWNED DEAD") + all_spawned_dead.emit() + else: + dead_counter += 1 diff --git a/Scripts/Spawner.gd.uid b/Scripts/Spawner.gd.uid new file mode 100644 index 0000000..527bf47 --- /dev/null +++ b/Scripts/Spawner.gd.uid @@ -0,0 +1 @@ +uid://df037bypj74at diff --git a/Scripts/UI/MaskButton.gd b/Scripts/UI/MaskButton.gd new file mode 100644 index 0000000..b9ce505 --- /dev/null +++ b/Scripts/UI/MaskButton.gd @@ -0,0 +1,13 @@ +extends Button + +@export var mask_type : int = -1 +@export var index : int = 0 + +func _ready() -> void: + pressed.connect(_on_pressed) + +signal i_was_pressed(mask : int, index : int, btn : Button) + +func _on_pressed() -> void: + print("pressed here") + i_was_pressed.emit(mask_type, index, self) diff --git a/Scripts/UI/MaskButton.gd.uid b/Scripts/UI/MaskButton.gd.uid new file mode 100644 index 0000000..d9bf37f --- /dev/null +++ b/Scripts/UI/MaskButton.gd.uid @@ -0,0 +1 @@ +uid://bbf1up6i5tkg2 diff --git a/Scripts/UI/UI.gd b/Scripts/UI/UI.gd new file mode 100644 index 0000000..a86d69d --- /dev/null +++ b/Scripts/UI/UI.gd @@ -0,0 +1,156 @@ +extends CanvasLayer +class_name UI + +@export var health_label : Label +@export var machette_sprite : TextureRect + +@export var main_hud : Control +@export var inventory_panel : Control + +@export var tool_slot_1 : PanelContainer +@export var tool_slot_2 : PanelContainer + +@export var mask_slot_1 : PanelContainer +@export var mask_slot_2 : PanelContainer + +@export var inventory_equip : Control +@export var inventory_secondary : Control +@export var inventory_1 : Control +@export var inventory_2 : Control +@export var inventory_3 : Control +@export var inventory_4 : Control + +@export var bubble_machette_anim : AnimationPlayer +@export var bubble_mask_anim : AnimationPlayer + +@export var death_animator : AnimationPlayer + +@export var level_animator : AnimationPlayer +@export var level_label : Label +@export var level_label_id : Label + +@export var level_names : Array[String] + +var curr_tool : bool = false # false is 1, true is 2 + +var is_inv_open : bool = false + +func _ready() -> void: + # absolutely disgusting. + inventory_equip.i_was_pressed.connect(_on_inventorybtn_pressed) + inventory_secondary.i_was_pressed.connect(_on_inventorybtn_pressed) + inventory_1.i_was_pressed.connect(_on_inventorybtn_pressed) + inventory_2.i_was_pressed.connect(_on_inventorybtn_pressed) + inventory_3.i_was_pressed.connect(_on_inventorybtn_pressed) + inventory_4.i_was_pressed.connect(_on_inventorybtn_pressed) + +func _input(_event: InputEvent) -> void: + if Input.is_action_just_pressed("open_bag"): + if !is_inv_open: + main_hud.visible = false + main_hud.mouse_filter = Control.MOUSE_FILTER_IGNORE + inventory_panel.visible = true + main_hud.mouse_filter = Control.MOUSE_FILTER_STOP + else: + main_hud.visible = true + main_hud.mouse_filter = Control.MOUSE_FILTER_STOP + inventory_panel.visible = false + main_hud.mouse_filter = Control.MOUSE_FILTER_IGNORE + is_inv_open = !is_inv_open + UIConnector.is_inv_open = is_inv_open + +func display_health(n : int) -> void: + health_label.text = "♥".repeat(n) + +func add_machette() -> void: + machette_sprite.visible = true + bubble_machette_anim.play("toast") + +func remove_machette() -> void: + machette_sprite.visible = false + +func switch_tool() -> void: + if curr_tool: + tool_slot_1.theme_type_variation = "SlotSelected" + tool_slot_2.theme_type_variation = "SlotDeselected" + else: + tool_slot_2.theme_type_variation = "SlotSelected" + tool_slot_1.theme_type_variation = "SlotDeselected" + + curr_tool = !curr_tool + +var names = ["Dash", "Grapple", "Minions", "Freeze"] + +func update_masks(masks : Array[int]) -> void: + # are you disgusted? + for mname in names: + inventory_equip.get_node(mname).visible = false + inventory_secondary.get_node(mname).visible = false + mask_slot_1.get_node(mname).visible = false + mask_slot_2.get_node(mname).visible = false + inventory_1.get_node(mname).visible = false + inventory_2.get_node(mname).visible = false + inventory_3.get_node(mname).visible = false + inventory_4.get_node(mname).visible = false + if masks[0] != -1: + inventory_equip.get_node(names[masks[0]]).visible = true + mask_slot_1.get_node(names[masks[0]]).visible = true + mask_slot_1.theme_type_variation = "SlotSelected" + if masks[1] != -1: + inventory_secondary.get_node(names[masks[1]]).visible = true + mask_slot_2.get_node(names[masks[1]]).visible = true + for mname in names: + inventory_1.get_node(mname).visible = false + if masks[2] != -1: + inventory_1.get_node(names[masks[2]]).visible = true + inventory_1.mask_type = masks[2] + if masks[3] != -1: + inventory_2.get_node(names[masks[3]]).visible = true + inventory_2.mask_type = masks[3] + if masks[4] != -1: + inventory_3.get_node(names[masks[4]]).visible = true + inventory_3.mask_type = masks[4] + if masks[5] != -1: + inventory_4.get_node(names[masks[5]]).visible = true + inventory_4.mask_type = masks[5] + +func death() -> void: + death_animator.play("death") + +func death_finished() -> void: + get_tree().get_root().get_node("Node2D").restart() + +var was_selecting : bool = false +var prev_selecting_mask : int = -1 +var prev_selecting_index : int = -1 +var prev_selecting_btn : Button + +func _on_inventorybtn_pressed(mask : int, index : int, btn : Button) -> void: + print("pressed there") + # i'm sorry. + var player_inventory : PlayerInventory = get_tree().get_root().get_node("Node2D/Player/PlayerInventory") + + if !was_selecting: + was_selecting = true + prev_selecting_mask = mask + prev_selecting_index = index + prev_selecting_btn = btn + print(prev_selecting_mask, " ", prev_selecting_index) + else: + was_selecting = false + player_inventory.mask_inventory[index] = prev_selecting_mask + player_inventory.mask_inventory[prev_selecting_index] = mask + btn.mask_type = prev_selecting_mask + prev_selecting_btn.mask_type = mask + update_masks(player_inventory.mask_inventory) + prev_selecting_mask = -1 + prev_selecting_index = -1 + prev_selecting_btn = null + +func next_level(level : int) -> void: + level_animator.play("enter") + level_label.text = level_names[level] + level_label_id.text = "Level " + str(level) + +func show_mask_bubble() -> void: + bubble_mask_anim.play("toast") diff --git a/Scripts/UI/UI.gd.uid b/Scripts/UI/UI.gd.uid new file mode 100644 index 0000000..e8fd98f --- /dev/null +++ b/Scripts/UI/UI.gd.uid @@ -0,0 +1 @@ +uid://mauaa0rjx7lo diff --git a/Scripts/UI/UIConnector.gd b/Scripts/UI/UIConnector.gd new file mode 100644 index 0000000..b41e241 --- /dev/null +++ b/Scripts/UI/UIConnector.gd @@ -0,0 +1,32 @@ +extends Node + +var hud : UI + +var is_inv_open : bool = false + +func _ready() -> void: + hud = get_tree().get_root().get_node("Node2D/HUD") + +func display_health(n : int) -> void: + hud.display_health(n) + +func add_machette() -> void: + hud.add_machette() + +func remove_machette() -> void: + hud.remove_machette() + +func switch_tool() -> void: + hud.switch_tool() + +func update_masks(masks : Array[int]) -> void: + hud.update_masks(masks) + +func show_mask_bubble() -> void: + hud.show_mask_bubble() + +func death() -> void: + hud.death() + +func next_level(level : int) -> void: + hud.next_level(level) diff --git a/Scripts/UI/UIConnector.gd.uid b/Scripts/UI/UIConnector.gd.uid new file mode 100644 index 0000000..f5527a1 --- /dev/null +++ b/Scripts/UI/UIConnector.gd.uid @@ -0,0 +1 @@ +uid://brryfq1vrcok3 diff --git a/Scripts/Weapons/Bow.gd b/Scripts/Weapons/Bow.gd new file mode 100644 index 0000000..09ffa3c --- /dev/null +++ b/Scripts/Weapons/Bow.gd @@ -0,0 +1,22 @@ +extends Node2D + +@export var arrow : PackedScene +@export var speed : float + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + +func action() -> void: + var pivot = get_node("../../") + var new = arrow.instantiate() + new.init_vel = Vector2.DOWN.rotated(pivot.rotation) * speed + new.global_position = global_position + var normalised = new.init_vel.normalized() + new.sprite.rotation = atan2(normalised.y, normalised.x) + get_tree().get_root().get_node("Node2D").add_child(new) diff --git a/Scripts/Weapons/Bow.gd.uid b/Scripts/Weapons/Bow.gd.uid new file mode 100644 index 0000000..07daad8 --- /dev/null +++ b/Scripts/Weapons/Bow.gd.uid @@ -0,0 +1 @@ +uid://bfmc8st4ss7om diff --git a/Scripts/Weapons/Melee.gd b/Scripts/Weapons/Melee.gd new file mode 100644 index 0000000..33f2807 --- /dev/null +++ b/Scripts/Weapons/Melee.gd @@ -0,0 +1,35 @@ +extends Node2D + +@export var animator : AnimationPlayer +@export var atk : int +@export var area : Area2D +@export var knock : Vector2 = Vector2(700, -300) +@export_flags_2d_physics var mask +@export var disable_aft_atk : bool = false + +func _ready() -> void: + area.collision_mask = mask + +#func _process(_delta: float) -> void: +# if area.monitoring: +# modulate = Color.GREEN +# else: +# modulate = Color.WHITE + +func action() -> void: + if animator.is_playing(): + return + + area.monitoring = true + + if scale.x < 0: + animator.play("swing_flip") + else: + animator.play("swing") + +func _on_area_2d_body_entered(body:Node2D) -> void: + if body is Entity: + body.damage(atk) + if disable_aft_atk: area.set_deferred("monitoring", false) + if scale.x < 0: body.knockback = Vector2(-knock.x, knock.y) + else: body.knockback = knock diff --git a/Scripts/Weapons/Melee.gd.uid b/Scripts/Weapons/Melee.gd.uid new file mode 100644 index 0000000..7b405a9 --- /dev/null +++ b/Scripts/Weapons/Melee.gd.uid @@ -0,0 +1 @@ +uid://ckd00ra2lp1xo diff --git a/Scripts/Weapons/Projectile.gd b/Scripts/Weapons/Projectile.gd new file mode 100644 index 0000000..fa13c70 --- /dev/null +++ b/Scripts/Weapons/Projectile.gd @@ -0,0 +1,19 @@ +extends RigidBody2D + +@export var init_vel : Vector2 +@export var sprite : Node2D +@export var atk : int + +func _ready() -> void: + linear_velocity = init_vel + print(linear_velocity.normalized()) + +func _process(delta: float) -> void: + var normalised = linear_velocity.normalized() + sprite.rotation = atan2(normalised.y, normalised.x) + +func _on_area_2d_body_entered(body:Node2D) -> void: + print(body) + if body is Entity: + body.damage(atk) + queue_free() diff --git a/Scripts/Weapons/Projectile.gd.uid b/Scripts/Weapons/Projectile.gd.uid new file mode 100644 index 0000000..9bc33ba --- /dev/null +++ b/Scripts/Weapons/Projectile.gd.uid @@ -0,0 +1 @@ +uid://i4wpiugtk5qi diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..d1729ee --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,406 @@ +[preset.0] + +name="Linux" +platform="Linux" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../Developer/Godot Builds/gdwj86/linux/shroud.x86_64" +patches=PackedStringArray() +encryption_include_filters="" +encryption_exclude_filters="" +seed=0 +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +binary_format/architecture="x86_64" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +export DISPLAY=:0 +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +\"{temp_dir}/{exe_name}\" {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" + +[preset.1] + +name="macOS" +platform="macOS" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../Developer/Godot Builds/gdwj86/mac/shroud.dmg" +patches=PackedStringArray() +encryption_include_filters="" +encryption_exclude_filters="" +seed=0 +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.1.options] + +export/distribution_type=1 +binary_format/architecture="universal" +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +application/icon="uid://dryh1vqkaxo8g" +application/icon_interpolation=4 +application/bundle_identifier="com.altafcreator.shroud" +application/signature="" +application/app_category="Games" +application/short_version="" +application/version="" +application/copyright="" +application/copyright_localized={} +application/min_macos_version_x86_64="10.12" +application/min_macos_version_arm64="11.00" +application/export_angle=0 +display/high_res=true +application/additional_plist_content="" +xcode/platform_build="14C18" +xcode/sdk_version="13.1" +xcode/sdk_build="22C55" +xcode/sdk_name="macosx13.1" +xcode/xcode_version="1420" +xcode/xcode_build="14C18" +codesign/codesign=3 +codesign/installer_identity="" +codesign/apple_team_id="" +codesign/identity="" +codesign/entitlements/custom_file="" +codesign/entitlements/allow_jit_code_execution=false +codesign/entitlements/allow_unsigned_executable_memory=false +codesign/entitlements/allow_dyld_environment_variables=false +codesign/entitlements/disable_library_validation=false +codesign/entitlements/audio_input=false +codesign/entitlements/camera=false +codesign/entitlements/location=false +codesign/entitlements/address_book=false +codesign/entitlements/calendars=false +codesign/entitlements/photos_library=false +codesign/entitlements/apple_events=false +codesign/entitlements/debugging=false +codesign/entitlements/app_sandbox/enabled=false +codesign/entitlements/app_sandbox/network_server=false +codesign/entitlements/app_sandbox/network_client=false +codesign/entitlements/app_sandbox/device_usb=false +codesign/entitlements/app_sandbox/device_bluetooth=false +codesign/entitlements/app_sandbox/files_downloads=0 +codesign/entitlements/app_sandbox/files_pictures=0 +codesign/entitlements/app_sandbox/files_music=0 +codesign/entitlements/app_sandbox/files_movies=0 +codesign/entitlements/app_sandbox/files_user_selected=0 +codesign/entitlements/app_sandbox/helper_executables=[] +codesign/entitlements/additional="" +codesign/custom_options=PackedStringArray() +notarization/notarization=0 +privacy/microphone_usage_description="" +privacy/microphone_usage_description_localized={} +privacy/camera_usage_description="" +privacy/camera_usage_description_localized={} +privacy/location_usage_description="" +privacy/location_usage_description_localized={} +privacy/address_book_usage_description="" +privacy/address_book_usage_description_localized={} +privacy/calendar_usage_description="" +privacy/calendar_usage_description_localized={} +privacy/photos_library_usage_description="" +privacy/photos_library_usage_description_localized={} +privacy/desktop_folder_usage_description="" +privacy/desktop_folder_usage_description_localized={} +privacy/documents_folder_usage_description="" +privacy/documents_folder_usage_description_localized={} +privacy/downloads_folder_usage_description="" +privacy/downloads_folder_usage_description_localized={} +privacy/network_volumes_usage_description="" +privacy/network_volumes_usage_description_localized={} +privacy/removable_volumes_usage_description="" +privacy/removable_volumes_usage_description_localized={} +privacy/tracking_enabled=false +privacy/tracking_domains=PackedStringArray() +privacy/collected_data/name/collected=false +privacy/collected_data/name/linked_to_user=false +privacy/collected_data/name/used_for_tracking=false +privacy/collected_data/name/collection_purposes=0 +privacy/collected_data/email_address/collected=false +privacy/collected_data/email_address/linked_to_user=false +privacy/collected_data/email_address/used_for_tracking=false +privacy/collected_data/email_address/collection_purposes=0 +privacy/collected_data/phone_number/collected=false +privacy/collected_data/phone_number/linked_to_user=false +privacy/collected_data/phone_number/used_for_tracking=false +privacy/collected_data/phone_number/collection_purposes=0 +privacy/collected_data/physical_address/collected=false +privacy/collected_data/physical_address/linked_to_user=false +privacy/collected_data/physical_address/used_for_tracking=false +privacy/collected_data/physical_address/collection_purposes=0 +privacy/collected_data/other_contact_info/collected=false +privacy/collected_data/other_contact_info/linked_to_user=false +privacy/collected_data/other_contact_info/used_for_tracking=false +privacy/collected_data/other_contact_info/collection_purposes=0 +privacy/collected_data/health/collected=false +privacy/collected_data/health/linked_to_user=false +privacy/collected_data/health/used_for_tracking=false +privacy/collected_data/health/collection_purposes=0 +privacy/collected_data/fitness/collected=false +privacy/collected_data/fitness/linked_to_user=false +privacy/collected_data/fitness/used_for_tracking=false +privacy/collected_data/fitness/collection_purposes=0 +privacy/collected_data/payment_info/collected=false +privacy/collected_data/payment_info/linked_to_user=false +privacy/collected_data/payment_info/used_for_tracking=false +privacy/collected_data/payment_info/collection_purposes=0 +privacy/collected_data/credit_info/collected=false +privacy/collected_data/credit_info/linked_to_user=false +privacy/collected_data/credit_info/used_for_tracking=false +privacy/collected_data/credit_info/collection_purposes=0 +privacy/collected_data/other_financial_info/collected=false +privacy/collected_data/other_financial_info/linked_to_user=false +privacy/collected_data/other_financial_info/used_for_tracking=false +privacy/collected_data/other_financial_info/collection_purposes=0 +privacy/collected_data/precise_location/collected=false +privacy/collected_data/precise_location/linked_to_user=false +privacy/collected_data/precise_location/used_for_tracking=false +privacy/collected_data/precise_location/collection_purposes=0 +privacy/collected_data/coarse_location/collected=false +privacy/collected_data/coarse_location/linked_to_user=false +privacy/collected_data/coarse_location/used_for_tracking=false +privacy/collected_data/coarse_location/collection_purposes=0 +privacy/collected_data/sensitive_info/collected=false +privacy/collected_data/sensitive_info/linked_to_user=false +privacy/collected_data/sensitive_info/used_for_tracking=false +privacy/collected_data/sensitive_info/collection_purposes=0 +privacy/collected_data/contacts/collected=false +privacy/collected_data/contacts/linked_to_user=false +privacy/collected_data/contacts/used_for_tracking=false +privacy/collected_data/contacts/collection_purposes=0 +privacy/collected_data/emails_or_text_messages/collected=false +privacy/collected_data/emails_or_text_messages/linked_to_user=false +privacy/collected_data/emails_or_text_messages/used_for_tracking=false +privacy/collected_data/emails_or_text_messages/collection_purposes=0 +privacy/collected_data/photos_or_videos/collected=false +privacy/collected_data/photos_or_videos/linked_to_user=false +privacy/collected_data/photos_or_videos/used_for_tracking=false +privacy/collected_data/photos_or_videos/collection_purposes=0 +privacy/collected_data/audio_data/collected=false +privacy/collected_data/audio_data/linked_to_user=false +privacy/collected_data/audio_data/used_for_tracking=false +privacy/collected_data/audio_data/collection_purposes=0 +privacy/collected_data/gameplay_content/collected=false +privacy/collected_data/gameplay_content/linked_to_user=false +privacy/collected_data/gameplay_content/used_for_tracking=false +privacy/collected_data/gameplay_content/collection_purposes=0 +privacy/collected_data/customer_support/collected=false +privacy/collected_data/customer_support/linked_to_user=false +privacy/collected_data/customer_support/used_for_tracking=false +privacy/collected_data/customer_support/collection_purposes=0 +privacy/collected_data/other_user_content/collected=false +privacy/collected_data/other_user_content/linked_to_user=false +privacy/collected_data/other_user_content/used_for_tracking=false +privacy/collected_data/other_user_content/collection_purposes=0 +privacy/collected_data/browsing_history/collected=false +privacy/collected_data/browsing_history/linked_to_user=false +privacy/collected_data/browsing_history/used_for_tracking=false +privacy/collected_data/browsing_history/collection_purposes=0 +privacy/collected_data/search_hhistory/collected=false +privacy/collected_data/search_hhistory/linked_to_user=false +privacy/collected_data/search_hhistory/used_for_tracking=false +privacy/collected_data/search_hhistory/collection_purposes=0 +privacy/collected_data/user_id/collected=false +privacy/collected_data/user_id/linked_to_user=false +privacy/collected_data/user_id/used_for_tracking=false +privacy/collected_data/user_id/collection_purposes=0 +privacy/collected_data/device_id/collected=false +privacy/collected_data/device_id/linked_to_user=false +privacy/collected_data/device_id/used_for_tracking=false +privacy/collected_data/device_id/collection_purposes=0 +privacy/collected_data/purchase_history/collected=false +privacy/collected_data/purchase_history/linked_to_user=false +privacy/collected_data/purchase_history/used_for_tracking=false +privacy/collected_data/purchase_history/collection_purposes=0 +privacy/collected_data/product_interaction/collected=false +privacy/collected_data/product_interaction/linked_to_user=false +privacy/collected_data/product_interaction/used_for_tracking=false +privacy/collected_data/product_interaction/collection_purposes=0 +privacy/collected_data/advertising_data/collected=false +privacy/collected_data/advertising_data/linked_to_user=false +privacy/collected_data/advertising_data/used_for_tracking=false +privacy/collected_data/advertising_data/collection_purposes=0 +privacy/collected_data/other_usage_data/collected=false +privacy/collected_data/other_usage_data/linked_to_user=false +privacy/collected_data/other_usage_data/used_for_tracking=false +privacy/collected_data/other_usage_data/collection_purposes=0 +privacy/collected_data/crash_data/collected=false +privacy/collected_data/crash_data/linked_to_user=false +privacy/collected_data/crash_data/used_for_tracking=false +privacy/collected_data/crash_data/collection_purposes=0 +privacy/collected_data/performance_data/collected=false +privacy/collected_data/performance_data/linked_to_user=false +privacy/collected_data/performance_data/used_for_tracking=false +privacy/collected_data/performance_data/collection_purposes=0 +privacy/collected_data/other_diagnostic_data/collected=false +privacy/collected_data/other_diagnostic_data/linked_to_user=false +privacy/collected_data/other_diagnostic_data/used_for_tracking=false +privacy/collected_data/other_diagnostic_data/collection_purposes=0 +privacy/collected_data/environment_scanning/collected=false +privacy/collected_data/environment_scanning/linked_to_user=false +privacy/collected_data/environment_scanning/used_for_tracking=false +privacy/collected_data/environment_scanning/collection_purposes=0 +privacy/collected_data/hands/collected=false +privacy/collected_data/hands/linked_to_user=false +privacy/collected_data/hands/used_for_tracking=false +privacy/collected_data/hands/collection_purposes=0 +privacy/collected_data/head/collected=false +privacy/collected_data/head/linked_to_user=false +privacy/collected_data/head/used_for_tracking=false +privacy/collected_data/head/collection_purposes=0 +privacy/collected_data/other_data_types/collected=false +privacy/collected_data/other_data_types/linked_to_user=false +privacy/collected_data/other_data_types/used_for_tracking=false +privacy/collected_data/other_data_types/collection_purposes=0 +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" + +[preset.2] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../Developer/Godot Builds/gdwj86/win/shroud.exe" +patches=PackedStringArray() +encryption_include_filters="" +encryption_exclude_filters="" +seed=0 +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.2.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +binary_format/architecture="x86_64" +codesign/enable=false +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PackedStringArray() +application/modify_resources=true +application/icon="" +application/console_wrapper_icon="" +application/icon_interpolation=4 +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="" +application/file_description="" +application/copyright="" +application/trademarks="" +application/export_angle=0 +application/export_d3d12=0 +application/d3d12_agility_sdk_multiarch=true +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' +$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' +$trigger = New-ScheduledTaskTrigger -Once -At 00:00 +$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries +$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings +Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true +Start-ScheduledTask -TaskName godot_remote_debug +while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" +ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue +Remove-Item -Recurse -Force '{temp_dir}'" + +[preset.3] + +name="Web" +platform="Web" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../Developer/Godot Builds/gdwj86/web/index.html" +patches=PackedStringArray() +encryption_include_filters="" +encryption_exclude_filters="" +seed=0 +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.3.options] + +custom_template/debug="" +custom_template/release="" +variant/extensions_support=false +variant/thread_support=false +vram_texture_compression/for_desktop=true +vram_texture_compression/for_mobile=false +html/export_icon=true +html/custom_html_shell="" +html/head_include="" +html/canvas_resize_policy=2 +html/focus_canvas_on_start=true +html/experimental_virtual_keyboard=false +progressive_web_app/enabled=false +progressive_web_app/ensure_cross_origin_isolation_headers=true +progressive_web_app/offline_page="" +progressive_web_app/display=1 +progressive_web_app/orientation=0 +progressive_web_app/icon_144x144="" +progressive_web_app/icon_180x180="" +progressive_web_app/icon_512x512="" +progressive_web_app/background_color=Color(0, 0, 0, 1) diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..9d8b7fa --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..98c9956 --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdxvyty0ai0tt" +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 0000000..1721fe6 --- /dev/null +++ b/project.godot @@ -0,0 +1,85 @@ +; 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="Shroud" +run/main_scene="uid://da028mojbbr5d" +config/features=PackedStringArray("4.4", "GL Compatibility") +config/icon="uid://dryh1vqkaxo8g" + +[autoload] + +UIConnector="*res://Scripts/UI/UIConnector.gd" + +[display] + +window/size/viewport_width=1280 +window/size/viewport_height=720 +window/size/mode=3 +window/stretch/mode="canvas_items" + +[gui] + +theme/custom_font="uid://cxc8sgnrd70s0" + +[input] + +left={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} +right={ +"deadzone": 0.2, +"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) +] +} +jump={ +"deadzone": 0.2, +"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) +] +} +action={ +"deadzone": 0.2, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(975, 33),"global_position":Vector2(994, 129),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) +] +} +switch_tool={ +"deadzone": 0.2, +"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":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null) +] +} +switch_mask={ +"deadzone": 0.2, +"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":81,"key_label":0,"unicode":113,"location":0,"echo":false,"script":null) +] +} +open_bag={ +"deadzone": 0.2, +"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":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +] +} +action_secondary={ +"deadzone": 0.2, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":2,"position":Vector2(787, 17),"global_position":Vector2(806, 113),"factor":1.0,"button_index":2,"canceled":false,"pressed":true,"double_click":false,"script":null) +] +} +dash={ +"deadzone": 0.2, +"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) +] +} + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" +textures/vram_compression/import_etc2_astc=true -- cgit v1.2.3