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
index eee3ae6..1041b86 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,5 @@
+# Normalize EOL for all files that Git considers text files.
+* text=auto eol=lf
*.ogg filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
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/addons/debug_menu/LICENSE.md b/addons/debug_menu/LICENSE.md
new file mode 100644
index 0000000..54fc020
--- /dev/null
+++ b/addons/debug_menu/LICENSE.md
@@ -0,0 +1,21 @@
+# MIT License
+
+Copyright © 2023-present Hugo Locurcio and contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/addons/debug_menu/debug_menu.gd b/addons/debug_menu/debug_menu.gd
new file mode 100644
index 0000000..a1ab064
--- /dev/null
+++ b/addons/debug_menu/debug_menu.gd
@@ -0,0 +1,479 @@
+extends CanvasLayer
+
+@export var fps: Label
+@export var frame_time: Label
+@export var frame_number: Label
+@export var frame_history_total_avg: Label
+@export var frame_history_total_min: Label
+@export var frame_history_total_max: Label
+@export var frame_history_total_last: Label
+@export var frame_history_cpu_avg: Label
+@export var frame_history_cpu_min: Label
+@export var frame_history_cpu_max: Label
+@export var frame_history_cpu_last: Label
+@export var frame_history_gpu_avg: Label
+@export var frame_history_gpu_min: Label
+@export var frame_history_gpu_max: Label
+@export var frame_history_gpu_last: Label
+@export var fps_graph: Panel
+@export var total_graph: Panel
+@export var cpu_graph: Panel
+@export var gpu_graph: Panel
+@export var information: Label
+@export var settings: Label
+
+## The number of frames to keep in history for graph drawing and best/worst calculations.
+## Currently, this also affects how FPS is measured.
+const HISTORY_NUM_FRAMES = 150
+
+const GRAPH_SIZE = Vector2(150, 25)
+const GRAPH_MIN_FPS = 10
+const GRAPH_MAX_FPS = 160
+const GRAPH_MIN_FRAMETIME = 1.0 / GRAPH_MIN_FPS
+const GRAPH_MAX_FRAMETIME = 1.0 / GRAPH_MAX_FPS
+
+## Debug menu display style.
+enum Style {
+ HIDDEN, ## Debug menu is hidden.
+ VISIBLE_COMPACT, ## Debug menu is visible, with only the FPS, FPS cap (if any) and time taken to render the last frame.
+ VISIBLE_DETAILED, ## Debug menu is visible with full information, including graphs.
+ MAX, ## Represents the size of the Style enum.
+}
+
+## The style to use when drawing the debug menu.
+var style := Style.HIDDEN:
+ set(value):
+ style = value
+ match style:
+ Style.HIDDEN:
+ visible = false
+ Style.VISIBLE_COMPACT, Style.VISIBLE_DETAILED:
+ visible = true
+ frame_number.visible = style == Style.VISIBLE_DETAILED
+ $DebugMenu/VBoxContainer/FrameTimeHistory.visible = style == Style.VISIBLE_DETAILED
+ $DebugMenu/VBoxContainer/FPSGraph.visible = style == Style.VISIBLE_DETAILED
+ $DebugMenu/VBoxContainer/TotalGraph.visible = style == Style.VISIBLE_DETAILED
+ $DebugMenu/VBoxContainer/CPUGraph.visible = style == Style.VISIBLE_DETAILED
+ $DebugMenu/VBoxContainer/GPUGraph.visible = style == Style.VISIBLE_DETAILED
+ information.visible = style == Style.VISIBLE_DETAILED
+ settings.visible = style == Style.VISIBLE_DETAILED
+
+# Value of `Time.get_ticks_usec()` on the previous frame.
+var last_tick := 0
+
+var thread := Thread.new()
+
+## Returns the sum of all values of an array (use as a parameter to `Array.reduce()`).
+var sum_func := func avg(accum: float, number: float) -> float: return accum + number
+
+# History of the last `HISTORY_NUM_FRAMES` rendered frames.
+var frame_history_total: Array[float] = []
+var frame_history_cpu: Array[float] = []
+var frame_history_gpu: Array[float] = []
+var fps_history: Array[float] = [] # Only used for graphs.
+
+var frametime_avg := GRAPH_MIN_FRAMETIME
+var frametime_cpu_avg := GRAPH_MAX_FRAMETIME
+var frametime_gpu_avg := GRAPH_MIN_FRAMETIME
+var frames_per_second := float(GRAPH_MIN_FPS)
+var frame_time_gradient := Gradient.new()
+
+func _init() -> void:
+ # This must be done here instead of `_ready()` to avoid having `visibility_changed` be emitted immediately.
+ visible = false
+
+ if not InputMap.has_action("cycle_debug_menu"):
+ # Create default input action if no user-defined override exists.
+ # We can't do it in the editor plugin's activation code as it doesn't seem to work there.
+ InputMap.add_action("cycle_debug_menu")
+ var event := InputEventKey.new()
+ event.keycode = KEY_F3
+ InputMap.action_add_event("cycle_debug_menu", event)
+
+
+func _ready() -> void:
+ fps_graph.draw.connect(_fps_graph_draw)
+ total_graph.draw.connect(_total_graph_draw)
+ cpu_graph.draw.connect(_cpu_graph_draw)
+ gpu_graph.draw.connect(_gpu_graph_draw)
+
+ fps_history.resize(HISTORY_NUM_FRAMES)
+ frame_history_total.resize(HISTORY_NUM_FRAMES)
+ frame_history_cpu.resize(HISTORY_NUM_FRAMES)
+ frame_history_gpu.resize(HISTORY_NUM_FRAMES)
+
+ # NOTE: Both FPS and frametimes are colored following FPS logic
+ # (red = 10 FPS, yellow = 60 FPS, green = 110 FPS, cyan = 160 FPS).
+ # This makes the color gradient non-linear.
+ # Colors are taken from .
+ frame_time_gradient.set_color(0, Color8(239, 68, 68)) # red-500
+ frame_time_gradient.set_color(1, Color8(56, 189, 248)) # light-blue-400
+ frame_time_gradient.add_point(0.3333, Color8(250, 204, 21)) # yellow-400
+ frame_time_gradient.add_point(0.6667, Color8(128, 226, 95)) # 50-50 mix of lime-400 and green-400
+
+ get_viewport().size_changed.connect(update_settings_label)
+
+ # Display loading text while information is being queried,
+ # in case the user toggles the full debug menu just after starting the project.
+ information.text = "Loading hardware information...\n\n "
+ settings.text = "Loading project information..."
+ thread.start(
+ func():
+ # Disable thread safety checks as they interfere with this add-on.
+ # This only affects this particular thread, not other thread instances in the project.
+ # See for details.
+ # Use a Callable so that this can be ignored on Godot 4.0 without causing a script error
+ # (thread safety checks were added in Godot 4.1).
+ if Engine.get_version_info()["hex"] >= 0x040100:
+ Callable(Thread, "set_thread_safety_checks_enabled").call(false)
+
+ # Enable required time measurements to display CPU/GPU frame time information.
+ # These lines are time-consuming operations, so run them in a separate thread.
+ RenderingServer.viewport_set_measure_render_time(get_viewport().get_viewport_rid(), true)
+ update_information_label()
+ update_settings_label()
+ )
+
+
+func _input(event: InputEvent) -> void:
+ if event.is_action_pressed("cycle_debug_menu"):
+ style = wrapi(style + 1, 0, Style.MAX) as Style
+
+
+func _exit_tree() -> void:
+ thread.wait_to_finish()
+
+
+## Update hardware information label (this can change at runtime based on window
+## size and graphics settings). This is only called when the window is resized.
+## To update when graphics settings are changed, the function must be called manually
+## using `DebugMenu.update_settings_label()`.
+func update_settings_label() -> void:
+ settings.text = ""
+ if ProjectSettings.has_setting("application/config/version"):
+ settings.text += "Project Version: %s\n" % ProjectSettings.get_setting("application/config/version")
+
+ var rendering_method := str(ProjectSettings.get_setting_with_override("rendering/renderer/rendering_method"))
+ var rendering_method_string := rendering_method
+ match rendering_method:
+ "forward_plus":
+ rendering_method_string = "Forward+"
+ "mobile":
+ rendering_method_string = "Forward Mobile"
+ "gl_compatibility":
+ rendering_method_string = "Compatibility"
+ settings.text += "Rendering Method: %s\n" % rendering_method_string
+
+ var viewport := get_viewport()
+
+ # The size of the viewport rendering, which determines which resolution 3D is rendered at.
+ var viewport_render_size := Vector2i()
+
+ if viewport.content_scale_mode == Window.CONTENT_SCALE_MODE_VIEWPORT:
+ viewport_render_size = viewport.get_visible_rect().size
+ settings.text += "Viewport: %d×%d, Window: %d×%d\n" % [viewport.get_visible_rect().size.x, viewport.get_visible_rect().size.y, viewport.size.x, viewport.size.y]
+ else:
+ # Window size matches viewport size.
+ viewport_render_size = viewport.size
+ settings.text += "Viewport: %d×%d\n" % [viewport.size.x, viewport.size.y]
+
+ # Display 3D settings only if relevant.
+ if viewport.get_camera_3d():
+ var scaling_3d_mode_string := "(unknown)"
+ match viewport.scaling_3d_mode:
+ Viewport.SCALING_3D_MODE_BILINEAR:
+ scaling_3d_mode_string = "Bilinear"
+ Viewport.SCALING_3D_MODE_FSR:
+ scaling_3d_mode_string = "FSR 1.0"
+ Viewport.SCALING_3D_MODE_FSR2:
+ scaling_3d_mode_string = "FSR 2.2"
+
+ var antialiasing_3d_string := ""
+ if viewport.scaling_3d_mode == Viewport.SCALING_3D_MODE_FSR2:
+ # The FSR2 scaling mode includes its own temporal antialiasing implementation.
+ antialiasing_3d_string += (" + " if not antialiasing_3d_string.is_empty() else "") + "FSR 2.2"
+ if viewport.scaling_3d_mode != Viewport.SCALING_3D_MODE_FSR2 and viewport.use_taa:
+ # Godot's own TAA is ignored when using FSR2 scaling mode, as FSR2 provides its own TAA implementation.
+ antialiasing_3d_string += (" + " if not antialiasing_3d_string.is_empty() else "") + "TAA"
+ if viewport.msaa_3d >= Viewport.MSAA_2X:
+ antialiasing_3d_string += (" + " if not antialiasing_3d_string.is_empty() else "") + "%d× MSAA" % pow(2, viewport.msaa_3d)
+ if viewport.screen_space_aa == Viewport.SCREEN_SPACE_AA_FXAA:
+ antialiasing_3d_string += (" + " if not antialiasing_3d_string.is_empty() else "") + "FXAA"
+
+ settings.text += "3D scale (%s): %d%% = %d×%d" % [
+ scaling_3d_mode_string,
+ viewport.scaling_3d_scale * 100,
+ viewport_render_size.x * viewport.scaling_3d_scale,
+ viewport_render_size.y * viewport.scaling_3d_scale,
+ ]
+
+ if not antialiasing_3d_string.is_empty():
+ settings.text += "\n3D Antialiasing: %s" % antialiasing_3d_string
+
+ var environment := viewport.get_camera_3d().get_world_3d().environment
+ if environment:
+ if environment.ssr_enabled:
+ settings.text += "\nSSR: %d Steps" % environment.ssr_max_steps
+
+ if environment.ssao_enabled:
+ settings.text += "\nSSAO: On"
+ if environment.ssil_enabled:
+ settings.text += "\nSSIL: On"
+
+ if environment.sdfgi_enabled:
+ settings.text += "\nSDFGI: %d Cascades" % environment.sdfgi_cascades
+
+ if environment.glow_enabled:
+ settings.text += "\nGlow: On"
+
+ if environment.volumetric_fog_enabled:
+ settings.text += "\nVolumetric Fog: On"
+ var antialiasing_2d_string := ""
+ if viewport.msaa_2d >= Viewport.MSAA_2X:
+ antialiasing_2d_string = "%d× MSAA" % pow(2, viewport.msaa_2d)
+
+ if not antialiasing_2d_string.is_empty():
+ settings.text += "\n2D Antialiasing: %s" % antialiasing_2d_string
+
+
+## Update hardware/software information label (this never changes at runtime).
+func update_information_label() -> void:
+ var adapter_string := ""
+ # Make "NVIDIA Corporation" and "NVIDIA" be considered identical (required when using OpenGL to avoid redundancy).
+ if RenderingServer.get_video_adapter_vendor().trim_suffix(" Corporation") in RenderingServer.get_video_adapter_name():
+ # Avoid repeating vendor name before adapter name.
+ # Trim redundant suffix sometimes reported by NVIDIA graphics cards when using OpenGL.
+ adapter_string = RenderingServer.get_video_adapter_name().trim_suffix("/PCIe/SSE2")
+ else:
+ adapter_string = RenderingServer.get_video_adapter_vendor() + " - " + RenderingServer.get_video_adapter_name().trim_suffix("/PCIe/SSE2")
+
+ # Graphics driver version information isn't always availble.
+ var driver_info := OS.get_video_adapter_driver_info()
+ var driver_info_string := ""
+ if driver_info.size() >= 2:
+ driver_info_string = driver_info[1]
+ else:
+ driver_info_string = "(unknown)"
+
+ var release_string := ""
+ if OS.has_feature("editor"):
+ # Editor build (implies `debug`).
+ release_string = "editor"
+ elif OS.has_feature("debug"):
+ # Debug export template build.
+ release_string = "debug"
+ else:
+ # Release export template build.
+ release_string = "release"
+
+ var rendering_method := str(ProjectSettings.get_setting_with_override("rendering/renderer/rendering_method"))
+ var rendering_driver := str(ProjectSettings.get_setting_with_override("rendering/rendering_device/driver"))
+ var graphics_api_string := rendering_driver
+ if rendering_method != "gl_compatibility":
+ if rendering_driver == "d3d12":
+ graphics_api_string = "Direct3D 12"
+ elif rendering_driver == "metal":
+ graphics_api_string = "Metal"
+ elif rendering_driver == "vulkan":
+ if OS.has_feature("macos") or OS.has_feature("ios"):
+ graphics_api_string = "Vulkan via MoltenVK"
+ else:
+ graphics_api_string = "Vulkan"
+ else:
+ if rendering_driver == "opengl3_angle":
+ graphics_api_string = "OpenGL via ANGLE"
+ elif OS.has_feature("mobile") or rendering_driver == "opengl3_es":
+ graphics_api_string = "OpenGL ES"
+ elif OS.has_feature("web"):
+ graphics_api_string = "WebGL"
+ elif rendering_driver == "opengl3":
+ graphics_api_string = "OpenGL"
+
+ information.text = (
+ "%s, %d threads\n" % [OS.get_processor_name().replace("(R)", "").replace("(TM)", ""), OS.get_processor_count()]
+ + "%s %s (%s %s), %s %s\n" % [OS.get_name(), "64-bit" if OS.has_feature("64") else "32-bit", release_string, "double" if OS.has_feature("double") else "single", graphics_api_string, RenderingServer.get_video_adapter_api_version()]
+ + "%s, %s" % [adapter_string, driver_info_string]
+ )
+
+
+func _fps_graph_draw() -> void:
+ var fps_polyline := PackedVector2Array()
+ fps_polyline.resize(HISTORY_NUM_FRAMES)
+ for fps_index in fps_history.size():
+ fps_polyline[fps_index] = Vector2(
+ remap(fps_index, 0, fps_history.size(), 0, GRAPH_SIZE.x),
+ remap(clampf(fps_history[fps_index], GRAPH_MIN_FPS, GRAPH_MAX_FPS), GRAPH_MIN_FPS, GRAPH_MAX_FPS, GRAPH_SIZE.y, 0.0)
+ )
+ # Don't use antialiasing to speed up line drawing, but use a width that scales with
+ # viewport scale to keep the line easily readable on hiDPI displays.
+ fps_graph.draw_polyline(fps_polyline, frame_time_gradient.sample(remap(frames_per_second, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0)), 1.0)
+
+
+func _total_graph_draw() -> void:
+ var total_polyline := PackedVector2Array()
+ total_polyline.resize(HISTORY_NUM_FRAMES)
+ for total_index in frame_history_total.size():
+ total_polyline[total_index] = Vector2(
+ remap(total_index, 0, frame_history_total.size(), 0, GRAPH_SIZE.x),
+ remap(clampf(frame_history_total[total_index], GRAPH_MIN_FPS, GRAPH_MAX_FPS), GRAPH_MIN_FPS, GRAPH_MAX_FPS, GRAPH_SIZE.y, 0.0)
+ )
+ # Don't use antialiasing to speed up line drawing, but use a width that scales with
+ # viewport scale to keep the line easily readable on hiDPI displays.
+ total_graph.draw_polyline(total_polyline, frame_time_gradient.sample(remap(1000.0 / frametime_avg, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0)), 1.0)
+
+
+func _cpu_graph_draw() -> void:
+ var cpu_polyline := PackedVector2Array()
+ cpu_polyline.resize(HISTORY_NUM_FRAMES)
+ for cpu_index in frame_history_cpu.size():
+ cpu_polyline[cpu_index] = Vector2(
+ remap(cpu_index, 0, frame_history_cpu.size(), 0, GRAPH_SIZE.x),
+ remap(clampf(frame_history_cpu[cpu_index], GRAPH_MIN_FPS, GRAPH_MAX_FPS), GRAPH_MIN_FPS, GRAPH_MAX_FPS, GRAPH_SIZE.y, 0.0)
+ )
+ # Don't use antialiasing to speed up line drawing, but use a width that scales with
+ # viewport scale to keep the line easily readable on hiDPI displays.
+ cpu_graph.draw_polyline(cpu_polyline, frame_time_gradient.sample(remap(1000.0 / frametime_cpu_avg, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0)), 1.0)
+
+
+func _gpu_graph_draw() -> void:
+ var gpu_polyline := PackedVector2Array()
+ gpu_polyline.resize(HISTORY_NUM_FRAMES)
+ for gpu_index in frame_history_gpu.size():
+ gpu_polyline[gpu_index] = Vector2(
+ remap(gpu_index, 0, frame_history_gpu.size(), 0, GRAPH_SIZE.x),
+ remap(clampf(frame_history_gpu[gpu_index], GRAPH_MIN_FPS, GRAPH_MAX_FPS), GRAPH_MIN_FPS, GRAPH_MAX_FPS, GRAPH_SIZE.y, 0.0)
+ )
+ # Don't use antialiasing to speed up line drawing, but use a width that scales with
+ # viewport scale to keep the line easily readable on hiDPI displays.
+ gpu_graph.draw_polyline(gpu_polyline, frame_time_gradient.sample(remap(1000.0 / frametime_gpu_avg, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0)), 1.0)
+
+
+func _process(_delta: float) -> void:
+ if visible:
+ fps_graph.queue_redraw()
+ total_graph.queue_redraw()
+ cpu_graph.queue_redraw()
+ gpu_graph.queue_redraw()
+
+ # Difference between the last two rendered frames in milliseconds.
+ var frametime := (Time.get_ticks_usec() - last_tick) * 0.001
+
+ frame_history_total.push_back(frametime)
+ if frame_history_total.size() > HISTORY_NUM_FRAMES:
+ frame_history_total.pop_front()
+
+ # Frametimes are colored following FPS logic (red = 10 FPS, yellow = 60 FPS, green = 110 FPS, cyan = 160 FPS).
+ # This makes the color gradient non-linear.
+ frametime_avg = frame_history_total.reduce(sum_func) / frame_history_total.size()
+ frame_history_total_avg.text = str(frametime_avg).pad_decimals(2)
+ frame_history_total_avg.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_avg, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ var frametime_min: float = frame_history_total.min()
+ frame_history_total_min.text = str(frametime_min).pad_decimals(2)
+ frame_history_total_min.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_min, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ var frametime_max: float = frame_history_total.max()
+ frame_history_total_max.text = str(frametime_max).pad_decimals(2)
+ frame_history_total_max.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_max, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ frame_history_total_last.text = str(frametime).pad_decimals(2)
+ frame_history_total_last.modulate = frame_time_gradient.sample(remap(1000.0 / frametime, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ var viewport_rid := get_viewport().get_viewport_rid()
+ var frametime_cpu := RenderingServer.viewport_get_measured_render_time_cpu(viewport_rid) + RenderingServer.get_frame_setup_time_cpu()
+ frame_history_cpu.push_back(frametime_cpu)
+ if frame_history_cpu.size() > HISTORY_NUM_FRAMES:
+ frame_history_cpu.pop_front()
+
+ frametime_cpu_avg = frame_history_cpu.reduce(sum_func) / frame_history_cpu.size()
+ frame_history_cpu_avg.text = str(frametime_cpu_avg).pad_decimals(2)
+ frame_history_cpu_avg.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_cpu_avg, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ var frametime_cpu_min: float = frame_history_cpu.min()
+ frame_history_cpu_min.text = str(frametime_cpu_min).pad_decimals(2)
+ frame_history_cpu_min.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_cpu_min, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ var frametime_cpu_max: float = frame_history_cpu.max()
+ frame_history_cpu_max.text = str(frametime_cpu_max).pad_decimals(2)
+ frame_history_cpu_max.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_cpu_max, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ frame_history_cpu_last.text = str(frametime_cpu).pad_decimals(2)
+ frame_history_cpu_last.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_cpu, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ var frametime_gpu := RenderingServer.viewport_get_measured_render_time_gpu(viewport_rid)
+ frame_history_gpu.push_back(frametime_gpu)
+ if frame_history_gpu.size() > HISTORY_NUM_FRAMES:
+ frame_history_gpu.pop_front()
+
+ frametime_gpu_avg = frame_history_gpu.reduce(sum_func) / frame_history_gpu.size()
+ frame_history_gpu_avg.text = str(frametime_gpu_avg).pad_decimals(2)
+ frame_history_gpu_avg.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_gpu_avg, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ var frametime_gpu_min: float = frame_history_gpu.min()
+ frame_history_gpu_min.text = str(frametime_gpu_min).pad_decimals(2)
+ frame_history_gpu_min.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_gpu_min, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ var frametime_gpu_max: float = frame_history_gpu.max()
+ frame_history_gpu_max.text = str(frametime_gpu_max).pad_decimals(2)
+ frame_history_gpu_max.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_gpu_max, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ frame_history_gpu_last.text = str(frametime_gpu).pad_decimals(2)
+ frame_history_gpu_last.modulate = frame_time_gradient.sample(remap(1000.0 / frametime_gpu, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+
+ frames_per_second = 1000.0 / frametime_avg
+ fps_history.push_back(frames_per_second)
+ if fps_history.size() > HISTORY_NUM_FRAMES:
+ fps_history.pop_front()
+
+ fps.text = str(floor(frames_per_second)) + " FPS"
+ var frame_time_color := frame_time_gradient.sample(remap(frames_per_second, GRAPH_MIN_FPS, GRAPH_MAX_FPS, 0.0, 1.0))
+ fps.modulate = frame_time_color
+
+ frame_time.text = str(frametime).pad_decimals(2) + " mspf"
+ frame_time.modulate = frame_time_color
+
+ var vsync_string := ""
+ match DisplayServer.window_get_vsync_mode():
+ DisplayServer.VSYNC_ENABLED:
+ vsync_string = "V-Sync"
+ DisplayServer.VSYNC_ADAPTIVE:
+ vsync_string = "Adaptive V-Sync"
+ DisplayServer.VSYNC_MAILBOX:
+ vsync_string = "Mailbox V-Sync"
+
+ if Engine.max_fps > 0 or OS.low_processor_usage_mode:
+ # Display FPS cap determined by `Engine.max_fps` or low-processor usage mode sleep duration
+ # (the lowest FPS cap is used).
+ var low_processor_max_fps := roundi(1000000.0 / OS.low_processor_usage_mode_sleep_usec)
+ var fps_cap := low_processor_max_fps
+ if Engine.max_fps > 0:
+ fps_cap = mini(Engine.max_fps, low_processor_max_fps)
+ frame_time.text += " (cap: " + str(fps_cap) + " FPS"
+
+ if not vsync_string.is_empty():
+ frame_time.text += " + " + vsync_string
+
+ frame_time.text += ")"
+ else:
+ if not vsync_string.is_empty():
+ frame_time.text += " (" + vsync_string + ")"
+
+ frame_number.text = "Frame: " + str(Engine.get_frames_drawn())
+
+ last_tick = Time.get_ticks_usec()
+
+
+func _on_visibility_changed() -> void:
+ if visible:
+ # Reset graphs to prevent them from looking strange before `HISTORY_NUM_FRAMES` frames
+ # have been drawn.
+ var frametime_last := (Time.get_ticks_usec() - last_tick) * 0.001
+ fps_history.resize(HISTORY_NUM_FRAMES)
+ fps_history.fill(1000.0 / frametime_last)
+ frame_history_total.resize(HISTORY_NUM_FRAMES)
+ frame_history_total.fill(frametime_last)
+ frame_history_cpu.resize(HISTORY_NUM_FRAMES)
+ var viewport_rid := get_viewport().get_viewport_rid()
+ frame_history_cpu.fill(RenderingServer.viewport_get_measured_render_time_cpu(viewport_rid) + RenderingServer.get_frame_setup_time_cpu())
+ frame_history_gpu.resize(HISTORY_NUM_FRAMES)
+ frame_history_gpu.fill(RenderingServer.viewport_get_measured_render_time_gpu(viewport_rid))
diff --git a/addons/debug_menu/debug_menu.gd.uid b/addons/debug_menu/debug_menu.gd.uid
new file mode 100644
index 0000000..eab1cc6
--- /dev/null
+++ b/addons/debug_menu/debug_menu.gd.uid
@@ -0,0 +1 @@
+uid://dpeqyx00y40f6
diff --git a/addons/debug_menu/debug_menu.tscn b/addons/debug_menu/debug_menu.tscn
new file mode 100644
index 0000000..9bfc9d6
--- /dev/null
+++ b/addons/debug_menu/debug_menu.tscn
@@ -0,0 +1,401 @@
+[gd_scene load_steps=3 format=3 uid="uid://cggqb75a8w8r"]
+
+[ext_resource type="Script" path="res://addons/debug_menu/debug_menu.gd" id="1_p440y"]
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ki0n8"]
+bg_color = Color(0, 0, 0, 0.25098)
+
+[node name="CanvasLayer" type="CanvasLayer" node_paths=PackedStringArray("fps", "frame_time", "frame_number", "frame_history_total_avg", "frame_history_total_min", "frame_history_total_max", "frame_history_total_last", "frame_history_cpu_avg", "frame_history_cpu_min", "frame_history_cpu_max", "frame_history_cpu_last", "frame_history_gpu_avg", "frame_history_gpu_min", "frame_history_gpu_max", "frame_history_gpu_last", "fps_graph", "total_graph", "cpu_graph", "gpu_graph", "information", "settings")]
+layer = 128
+script = ExtResource("1_p440y")
+fps = NodePath("DebugMenu/VBoxContainer/FPS")
+frame_time = NodePath("DebugMenu/VBoxContainer/FrameTime")
+frame_number = NodePath("DebugMenu/VBoxContainer/FrameNumber")
+frame_history_total_avg = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/TotalAvg")
+frame_history_total_min = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/TotalMin")
+frame_history_total_max = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/TotalMax")
+frame_history_total_last = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/TotalLast")
+frame_history_cpu_avg = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/CPUAvg")
+frame_history_cpu_min = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/CPUMin")
+frame_history_cpu_max = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/CPUMax")
+frame_history_cpu_last = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/CPULast")
+frame_history_gpu_avg = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/GPUAvg")
+frame_history_gpu_min = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/GPUMin")
+frame_history_gpu_max = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/GPUMax")
+frame_history_gpu_last = NodePath("DebugMenu/VBoxContainer/FrameTimeHistory/GPULast")
+fps_graph = NodePath("DebugMenu/VBoxContainer/FPSGraph/Graph")
+total_graph = NodePath("DebugMenu/VBoxContainer/TotalGraph/Graph")
+cpu_graph = NodePath("DebugMenu/VBoxContainer/CPUGraph/Graph")
+gpu_graph = NodePath("DebugMenu/VBoxContainer/GPUGraph/Graph")
+information = NodePath("DebugMenu/VBoxContainer/Information")
+settings = NodePath("DebugMenu/VBoxContainer/Settings")
+
+[node name="DebugMenu" type="Control" parent="."]
+custom_minimum_size = Vector2(400, 400)
+layout_mode = 3
+anchors_preset = 1
+anchor_left = 1.0
+anchor_right = 1.0
+offset_left = -416.0
+offset_top = 8.0
+offset_right = -16.0
+offset_bottom = 408.0
+grow_horizontal = 0
+size_flags_horizontal = 8
+size_flags_vertical = 4
+mouse_filter = 2
+
+[node name="VBoxContainer" type="VBoxContainer" parent="DebugMenu"]
+layout_mode = 1
+anchors_preset = 1
+anchor_left = 1.0
+anchor_right = 1.0
+offset_left = -300.0
+offset_bottom = 374.0
+grow_horizontal = 0
+mouse_filter = 2
+theme_override_constants/separation = 0
+
+[node name="FPS" type="Label" parent="DebugMenu/VBoxContainer"]
+modulate = Color(0, 1, 0, 1)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 5
+theme_override_constants/line_spacing = 0
+theme_override_font_sizes/font_size = 18
+text = "60 FPS"
+horizontal_alignment = 2
+
+[node name="FrameTime" type="Label" parent="DebugMenu/VBoxContainer"]
+modulate = Color(0, 1, 0, 1)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "16.67 mspf (cap: 123 FPS + Adaptive V-Sync)"
+horizontal_alignment = 2
+
+[node name="FrameNumber" type="Label" parent="DebugMenu/VBoxContainer"]
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "Frame: 1234"
+horizontal_alignment = 2
+
+[node name="FrameTimeHistory" type="GridContainer" parent="DebugMenu/VBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 8
+mouse_filter = 2
+theme_override_constants/h_separation = 0
+theme_override_constants/v_separation = 0
+columns = 5
+
+[node name="Spacer" type="Control" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+custom_minimum_size = Vector2(60, 0)
+layout_mode = 2
+mouse_filter = 2
+
+[node name="AvgHeader" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "Average"
+horizontal_alignment = 2
+
+[node name="MinHeader" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "Best"
+horizontal_alignment = 2
+
+[node name="MaxHeader" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "Worst"
+horizontal_alignment = 2
+
+[node name="LastHeader" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "Last"
+horizontal_alignment = 2
+
+[node name="TotalHeader" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "Total:"
+horizontal_alignment = 2
+
+[node name="TotalAvg" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "123.45"
+horizontal_alignment = 2
+
+[node name="TotalMin" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "123.45"
+horizontal_alignment = 2
+
+[node name="TotalMax" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "123.45"
+horizontal_alignment = 2
+
+[node name="TotalLast" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "123.45"
+horizontal_alignment = 2
+
+[node name="CPUHeader" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "CPU:"
+horizontal_alignment = 2
+
+[node name="CPUAvg" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "123.45"
+horizontal_alignment = 2
+
+[node name="CPUMin" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "12.34"
+horizontal_alignment = 2
+
+[node name="CPUMax" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "123.45"
+horizontal_alignment = 2
+
+[node name="CPULast" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "123.45"
+horizontal_alignment = 2
+
+[node name="GPUHeader" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "GPU:"
+horizontal_alignment = 2
+
+[node name="GPUAvg" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "123.45"
+horizontal_alignment = 2
+
+[node name="GPUMin" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "1.23"
+horizontal_alignment = 2
+
+[node name="GPUMax" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "123.45"
+horizontal_alignment = 2
+
+[node name="GPULast" type="Label" parent="DebugMenu/VBoxContainer/FrameTimeHistory"]
+modulate = Color(0, 1, 0, 1)
+custom_minimum_size = Vector2(50, 0)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "123.45"
+horizontal_alignment = 2
+
+[node name="FPSGraph" type="HBoxContainer" parent="DebugMenu/VBoxContainer"]
+layout_mode = 2
+mouse_filter = 2
+alignment = 2
+
+[node name="Title" type="Label" parent="DebugMenu/VBoxContainer/FPSGraph"]
+custom_minimum_size = Vector2(0, 27)
+layout_mode = 2
+size_flags_horizontal = 8
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "FPS: ↑"
+vertical_alignment = 1
+
+[node name="Graph" type="Panel" parent="DebugMenu/VBoxContainer/FPSGraph"]
+custom_minimum_size = Vector2(150, 25)
+layout_mode = 2
+size_flags_vertical = 0
+mouse_filter = 2
+theme_override_styles/panel = SubResource("StyleBoxFlat_ki0n8")
+
+[node name="TotalGraph" type="HBoxContainer" parent="DebugMenu/VBoxContainer"]
+layout_mode = 2
+mouse_filter = 2
+alignment = 2
+
+[node name="Title" type="Label" parent="DebugMenu/VBoxContainer/TotalGraph"]
+custom_minimum_size = Vector2(0, 27)
+layout_mode = 2
+size_flags_horizontal = 8
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "Total: ↓"
+vertical_alignment = 1
+
+[node name="Graph" type="Panel" parent="DebugMenu/VBoxContainer/TotalGraph"]
+custom_minimum_size = Vector2(150, 25)
+layout_mode = 2
+size_flags_vertical = 0
+mouse_filter = 2
+theme_override_styles/panel = SubResource("StyleBoxFlat_ki0n8")
+
+[node name="CPUGraph" type="HBoxContainer" parent="DebugMenu/VBoxContainer"]
+layout_mode = 2
+mouse_filter = 2
+alignment = 2
+
+[node name="Title" type="Label" parent="DebugMenu/VBoxContainer/CPUGraph"]
+custom_minimum_size = Vector2(0, 27)
+layout_mode = 2
+size_flags_horizontal = 8
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "CPU: ↓"
+vertical_alignment = 1
+
+[node name="Graph" type="Panel" parent="DebugMenu/VBoxContainer/CPUGraph"]
+custom_minimum_size = Vector2(150, 25)
+layout_mode = 2
+size_flags_vertical = 0
+mouse_filter = 2
+theme_override_styles/panel = SubResource("StyleBoxFlat_ki0n8")
+
+[node name="GPUGraph" type="HBoxContainer" parent="DebugMenu/VBoxContainer"]
+layout_mode = 2
+mouse_filter = 2
+alignment = 2
+
+[node name="Title" type="Label" parent="DebugMenu/VBoxContainer/GPUGraph"]
+custom_minimum_size = Vector2(0, 27)
+layout_mode = 2
+size_flags_horizontal = 8
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "GPU: ↓"
+vertical_alignment = 1
+
+[node name="Graph" type="Panel" parent="DebugMenu/VBoxContainer/GPUGraph"]
+custom_minimum_size = Vector2(150, 25)
+layout_mode = 2
+size_flags_vertical = 0
+mouse_filter = 2
+theme_override_styles/panel = SubResource("StyleBoxFlat_ki0n8")
+
+[node name="Information" type="Label" parent="DebugMenu/VBoxContainer"]
+modulate = Color(1, 1, 1, 0.752941)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "12th Gen Intel(R) Core(TM) i0-1234K
+Windows 12 64-bit (double precision), Vulkan 1.2.34
+NVIDIA GeForce RTX 1234, 123.45.67"
+horizontal_alignment = 2
+
+[node name="Settings" type="Label" parent="DebugMenu/VBoxContainer"]
+modulate = Color(0.8, 0.84, 1, 0.752941)
+layout_mode = 2
+theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
+theme_override_constants/outline_size = 3
+theme_override_font_sizes/font_size = 12
+text = "Project Version: 1.2.3
+Rendering Method: Forward+
+Window: 1234×567, Viewport: 1234×567
+3D Scale (FSR 1.0): 100% = 1234×567
+3D Antialiasing: TAA + 2× MSAA + FXAA
+SSR: 123 Steps
+SSAO: On
+SSIL: On
+SDFGI: 1 Cascades
+Glow: On
+Volumetric Fog: On
+2D Antialiasing: 2× MSAA"
+horizontal_alignment = 2
+
+[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]
diff --git a/addons/debug_menu/plugin.cfg b/addons/debug_menu/plugin.cfg
new file mode 100644
index 0000000..54100f7
--- /dev/null
+++ b/addons/debug_menu/plugin.cfg
@@ -0,0 +1,7 @@
+[plugin]
+
+name="Debug Menu"
+description="In-game debug menu displaying performance metrics and hardware information"
+author="Calinou"
+version="1.2.0"
+script="plugin.gd"
diff --git a/addons/debug_menu/plugin.gd b/addons/debug_menu/plugin.gd
new file mode 100644
index 0000000..5ec132e
--- /dev/null
+++ b/addons/debug_menu/plugin.gd
@@ -0,0 +1,29 @@
+@tool
+extends EditorPlugin
+
+func _enter_tree() -> void:
+ add_autoload_singleton("DebugMenu", "res://addons/debug_menu/debug_menu.tscn")
+
+ # FIXME: This appears to do nothing.
+# if not ProjectSettings.has_setting("application/config/version"):
+# ProjectSettings.set_setting("application/config/version", "1.0.0")
+#
+# ProjectSettings.set_initial_value("application/config/version", "1.0.0")
+# ProjectSettings.add_property_info({
+# name = "application/config/version",
+# type = TYPE_STRING,
+# })
+#
+# if not InputMap.has_action("cycle_debug_menu"):
+# InputMap.add_action("cycle_debug_menu")
+# var event := InputEventKey.new()
+# event.keycode = KEY_F3
+# InputMap.action_add_event("cycle_debug_menu", event)
+#
+# ProjectSettings.save()
+
+
+func _exit_tree() -> void:
+ remove_autoload_singleton("DebugMenu")
+ # Don't remove the project setting's value and input map action,
+ # as the plugin may be re-enabled in the future.
diff --git a/addons/debug_menu/plugin.gd.uid b/addons/debug_menu/plugin.gd.uid
new file mode 100644
index 0000000..779da63
--- /dev/null
+++ b/addons/debug_menu/plugin.gd.uid
@@ -0,0 +1 @@
+uid://cdct5p0xa3k1r
diff --git a/addons/log/LICENSE b/addons/log/LICENSE
new file mode 100644
index 0000000..d4d4ceb
--- /dev/null
+++ b/addons/log/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Russell Matney
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/addons/log/color_theme_dark.tres b/addons/log/color_theme_dark.tres
new file mode 100644
index 0000000..b9ec6ea
--- /dev/null
+++ b/addons/log/color_theme_dark.tres
@@ -0,0 +1,33 @@
+[gd_resource type="Resource" script_class="LogColorTheme" load_steps=2 format=3 uid="uid://c2tfr7nw4y7ll"]
+
+[ext_resource type="Script" uid="uid://br8socgd1vvih" path="res://addons/log/log_color_theme.gd" id="1_6x53w"]
+
+[resource]
+script = ExtResource("1_6x53w")
+color_src_prefix = Color(0.498039, 1, 0.831373, 1)
+color_addons_prefix = Color(0.803922, 0.521569, 0.247059, 1)
+color_test_prefix = Color(0.678431, 1, 0.184314, 1)
+color_comma = Color(1, 0.411765, 0.705882, 1)
+color_ampersand = Color(1, 0.498039, 0.313726, 1)
+color_pipe = Color(1, 0.498039, 0.313726, 1)
+color_carrot = Color(1, 0.498039, 0.313726, 1)
+colors_rainbow_delims = Array[Color]([Color(0.862745, 0.0784314, 0.235294, 1), Color(0.392157, 0.584314, 0.929412, 1), Color(1, 0.498039, 0.313726, 1), Color(1, 0.752941, 0.796078, 1), Color(0.803922, 0.521569, 0.247059, 1)])
+color_nil = Color(1, 0.498039, 0.313726, 1)
+color_bool = Color(1, 0.752941, 0.796078, 1)
+color_int = Color(0.392157, 0.584314, 0.929412, 1)
+color_float = Color(0.392157, 0.584314, 0.929412, 1)
+color_vectors = Color(0.392157, 0.584314, 0.929412, 1)
+color_rects = Color(0.392157, 0.584314, 0.929412, 1)
+color_class_name = Color(0.372549, 0.619608, 0.627451, 1)
+color_string = Color(0.662745, 0.662745, 0.662745, 1)
+color_string_name = Color(1, 0.752941, 0.796078, 1)
+color_node_path = Color(1, 0.752941, 0.796078, 1)
+color_type_color = Color(1, 0.752941, 0.796078, 1)
+color_rid = Color(1, 0.752941, 0.796078, 1)
+color_object = Color(1, 0.752941, 0.796078, 1)
+color_callable = Color(1, 0.752941, 0.796078, 1)
+color_signal = Color(1, 0.752941, 0.796078, 1)
+color_array = Color(1, 0.752941, 0.796078, 1)
+color_dictionary = Color(1, 0.752941, 0.796078, 1)
+color_packed_array = Color(1, 0.752941, 0.796078, 1)
+color_type_max = Color(1, 0.752941, 0.796078, 1)
diff --git a/addons/log/color_theme_light.tres b/addons/log/color_theme_light.tres
new file mode 100644
index 0000000..c4c0f1f
--- /dev/null
+++ b/addons/log/color_theme_light.tres
@@ -0,0 +1,33 @@
+[gd_resource type="Resource" script_class="LogColorTheme" load_steps=2 format=3 uid="uid://biby87a3dypvn"]
+
+[ext_resource type="Script" uid="uid://br8socgd1vvih" path="res://addons/log/log_color_theme.gd" id="1_kcklq"]
+
+[resource]
+script = ExtResource("1_kcklq")
+color_src_prefix = Color(0, 0.545098, 0.545098, 1)
+color_addons_prefix = Color(0.545098, 0, 0, 1)
+color_test_prefix = Color(0, 0.392157, 0, 1)
+color_comma = Color(0.862745, 0.0784314, 0.235294, 1)
+color_ampersand = Color(1, 0.498039, 0.313726, 1)
+color_pipe = Color(1, 0.498039, 0.313726, 1)
+color_carrot = Color(1, 0.498039, 0.313726, 1)
+colors_rainbow_delims = Array[Color]([Color(0.862745, 0.0784314, 0.235294, 1), Color(0, 0, 0.545098, 1), Color(0.294118, 0, 0.509804, 1), Color(0.501961, 0.501961, 0, 1), Color(0.545098, 0.270588, 0.0745098, 1)])
+color_nil = Color(1, 0.498039, 0.313726, 1)
+color_bool = Color(0.545098, 0, 0, 1)
+color_int = Color(0.6, 0.196078, 0.8, 1)
+color_float = Color(0.6, 0.196078, 0.8, 1)
+color_vectors = Color(0.392157, 0.584314, 0.929412, 1)
+color_rects = Color(0.392157, 0.584314, 0.929412, 1)
+color_class_name = Color(0.372549, 0.619608, 0.627451, 1)
+color_string = Color(0.545098, 0, 0, 1)
+color_string_name = Color(0.545098, 0, 0, 1)
+color_node_path = Color(0.545098, 0, 0, 1)
+color_type_color = Color(0.545098, 0, 0, 1)
+color_rid = Color(0.545098, 0, 0, 1)
+color_object = Color(0.545098, 0, 0, 1)
+color_callable = Color(0.545098, 0, 0, 1)
+color_signal = Color(0.545098, 0, 0, 1)
+color_array = Color(0.545098, 0, 0, 1)
+color_dictionary = Color(0.545098, 0, 0, 1)
+color_packed_array = Color(0.545098, 0, 0, 1)
+color_type_max = Color(0.545098, 0, 0, 1)
diff --git a/addons/log/log.gd b/addons/log/log.gd
new file mode 100644
index 0000000..03c2402
--- /dev/null
+++ b/addons/log/log.gd
@@ -0,0 +1,767 @@
+## Log.gd - colorized pretty printing functions
+##
+## [code]Log.pr(...)[/code] and [code]Log.prn(...)[/code] are drop-in replacements for [code]print(...)[/code].
+##
+## [br][br]
+## You can also [code]Log.warn(...)[/code] or [code]Log.error(...)[/code] to both print and push_warn/push_error.
+##
+## [br][br]
+## Custom object output is supported by implementing [code]to_pretty()[/code] on the object.
+##
+## [br][br]
+## For objects you don't own (built-ins or addons you don't want to edit),
+## there is a [code]register_type_overwrite(key, handler)[/code] helper.
+##
+## [br][br]
+## You can find up-to-date docs and examples in the Log.gd repo and docs site:
+## [br]
+## - https://github.com/russmatney/log.gd
+## [br]
+## - https://russmatney.github.io/log.gd
+##
+
+@tool
+extends Object
+class_name Log
+
+# helpers ####################################
+
+static func assoc(opts: Dictionary, key: String, val: Variant) -> Dictionary:
+ var _opts: Dictionary = opts.duplicate(true)
+ _opts[key] = val
+ return _opts
+
+# settings helpers ####################################
+
+static func initialize_setting(key: String, default_value: Variant, type: int, hint: int = PROPERTY_HINT_NONE, hint_string: String = "") -> void:
+ if not ProjectSettings.has_setting(key):
+ ProjectSettings.set(key, default_value)
+ ProjectSettings.set_initial_value(key, default_value)
+ ProjectSettings.add_property_info({name=key, type=type, hint=hint, hint_string=hint_string})
+
+# settings keys and default ####################################
+
+const KEY_PREFIX: String = "log_gd/config"
+static var is_config_setup: bool = false
+
+# TODO drop this key
+const KEY_COLOR_THEME_DICT: String = "log_color_theme_dict"
+const KEY_COLOR_THEME: String = "log_color_theme"
+const KEY_COLOR_THEME_RESOURCE_PATH: String = "%s/color_resource_path" % KEY_PREFIX
+const KEY_DISABLE_COLORS: String = "%s/disable_colors" % KEY_PREFIX
+const KEY_MAX_ARRAY_SIZE: String = "%s/max_array_size" % KEY_PREFIX
+const KEY_SKIP_KEYS: String = "%s/dictionary_skip_keys" % KEY_PREFIX
+const KEY_USE_NEWLINES: String = "%s/use_newlines" % KEY_PREFIX
+const KEY_NEWLINE_MAX_DEPTH: String = "%s/newline_max_depth" % KEY_PREFIX
+const KEY_LOG_LEVEL: String = "%s/log_level" % KEY_PREFIX
+const KEY_WARN_TODO: String = "%s/warn_todo" % KEY_PREFIX
+const KEY_SHOW_LOG_LEVEL_SELECTOR: String = "%s/show_log_level_selector" % KEY_PREFIX
+const KEY_SHOW_TIMESTAMPS: String = "%s/show_timestamps" % KEY_PREFIX
+const KEY_TIMESTAMP_TYPE: String = "%s/timestamp_type" % KEY_PREFIX
+const KEY_HUMAN_READABLE_TIMESTAMP_FORMAT: String = "%s/human_readable_timestamp_format" % KEY_PREFIX
+
+enum Levels {
+ DEBUG,
+ INFO,
+ WARN,
+ ERROR
+ }
+
+enum TimestampTypes {
+ UNIX,
+ TICKS_MSEC,
+ TICKS_USEC,
+ HUMAN_12HR,
+ HUMAN_24HR
+ }
+
+const CONFIG_DEFAULTS := {
+ KEY_COLOR_THEME_RESOURCE_PATH: "res://addons/log/color_theme_dark.tres",
+ KEY_DISABLE_COLORS: false,
+ KEY_MAX_ARRAY_SIZE: 20,
+ KEY_SKIP_KEYS: ["layer_0/tile_data"],
+ KEY_USE_NEWLINES: false,
+ KEY_NEWLINE_MAX_DEPTH: -1,
+ KEY_LOG_LEVEL: Levels.INFO,
+ KEY_WARN_TODO: true,
+ KEY_SHOW_LOG_LEVEL_SELECTOR: false,
+ KEY_SHOW_TIMESTAMPS: false,
+ KEY_TIMESTAMP_TYPE: TimestampTypes.HUMAN_12HR,
+ KEY_HUMAN_READABLE_TIMESTAMP_FORMAT: "{hour}:{minute}:{second}",
+ }
+
+# settings setup ####################################
+
+static func setup_settings(opts: Dictionary = {}) -> void:
+ initialize_setting(KEY_COLOR_THEME_RESOURCE_PATH, CONFIG_DEFAULTS[KEY_COLOR_THEME_RESOURCE_PATH], TYPE_STRING, PROPERTY_HINT_FILE)
+ initialize_setting(KEY_DISABLE_COLORS, CONFIG_DEFAULTS[KEY_DISABLE_COLORS], TYPE_BOOL)
+ initialize_setting(KEY_MAX_ARRAY_SIZE, CONFIG_DEFAULTS[KEY_MAX_ARRAY_SIZE], TYPE_INT)
+ initialize_setting(KEY_SKIP_KEYS, CONFIG_DEFAULTS[KEY_SKIP_KEYS], TYPE_PACKED_STRING_ARRAY)
+ initialize_setting(KEY_USE_NEWLINES, CONFIG_DEFAULTS[KEY_USE_NEWLINES], TYPE_BOOL)
+ initialize_setting(KEY_NEWLINE_MAX_DEPTH, CONFIG_DEFAULTS[KEY_NEWLINE_MAX_DEPTH], TYPE_INT)
+ initialize_setting(KEY_LOG_LEVEL, CONFIG_DEFAULTS[KEY_LOG_LEVEL], TYPE_INT, PROPERTY_HINT_ENUM, "DEBUG,INFO,WARN,ERROR")
+ initialize_setting(KEY_WARN_TODO, CONFIG_DEFAULTS[KEY_WARN_TODO], TYPE_BOOL)
+ initialize_setting(KEY_SHOW_LOG_LEVEL_SELECTOR, CONFIG_DEFAULTS[KEY_SHOW_LOG_LEVEL_SELECTOR], TYPE_BOOL)
+ initialize_setting(KEY_SHOW_TIMESTAMPS, CONFIG_DEFAULTS[KEY_SHOW_TIMESTAMPS], TYPE_BOOL)
+ initialize_setting(KEY_TIMESTAMP_TYPE, CONFIG_DEFAULTS[KEY_TIMESTAMP_TYPE], TYPE_INT, PROPERTY_HINT_ENUM, "UNIX,TICKS_MSEC,TICKS_USEC,HUMAN_12HR,HUMAN_24HR")
+ initialize_setting(KEY_HUMAN_READABLE_TIMESTAMP_FORMAT, CONFIG_DEFAULTS[KEY_HUMAN_READABLE_TIMESTAMP_FORMAT], TYPE_STRING)
+
+# config setup ####################################
+
+static var config: Dictionary = {}
+static func rebuild_config(opts: Dictionary = {}) -> void:
+ for key: String in CONFIG_DEFAULTS.keys():
+ # Keep config set in code before to_printable() is called for the first time
+ var val: Variant = Log.config.get(key, ProjectSettings.get_setting(key, CONFIG_DEFAULTS[key]))
+
+ Log.config[key] = val
+
+ # hardcoding a resource-load b/c it seems like custom-resources can't be loaded by the project settings
+ # https://github.com/godotengine/godot/issues/96219
+ if val != null and key == KEY_COLOR_THEME_RESOURCE_PATH:
+ Log.config[KEY_COLOR_THEME] = load(val)
+ Log.config[KEY_COLOR_THEME_DICT] = Log.config[KEY_COLOR_THEME].to_color_dict()
+
+ Log.is_config_setup = true
+
+# config getters ###################################################################
+
+static func get_max_array_size() -> int:
+ return Log.config.get(KEY_MAX_ARRAY_SIZE, CONFIG_DEFAULTS[KEY_MAX_ARRAY_SIZE])
+
+static func get_dictionary_skip_keys() -> Array:
+ return Log.config.get(KEY_SKIP_KEYS, CONFIG_DEFAULTS[KEY_SKIP_KEYS])
+
+static func get_disable_colors() -> bool:
+ return Log.config.get(KEY_DISABLE_COLORS, CONFIG_DEFAULTS[KEY_DISABLE_COLORS])
+
+# TODO refactor away from the dict, create a termsafe LogColorTheme fallback
+static var warned_about_termsafe_fallback := false
+static func get_config_color_theme_dict() -> Dictionary:
+ var color_theme = Log.config.get(KEY_COLOR_THEME)
+ var color_dict = Log.config.get(KEY_COLOR_THEME_DICT)
+ if color_dict != null:
+ return color_dict
+ if not warned_about_termsafe_fallback:
+ print("Falling back to TERM_SAFE colors")
+ warned_about_termsafe_fallback = true
+ return LogColorTheme.COLORS_TERM_SAFE
+
+static func get_config_color_theme() -> LogColorTheme:
+ var color_theme = Log.config.get(KEY_COLOR_THEME)
+ # TODO better warnings, fallbacks
+ return color_theme
+
+static func get_use_newlines() -> bool:
+ return Log.config.get(KEY_USE_NEWLINES, CONFIG_DEFAULTS[KEY_USE_NEWLINES])
+
+static func get_newline_max_depth() -> int:
+ return Log.config.get(KEY_NEWLINE_MAX_DEPTH, CONFIG_DEFAULTS[KEY_NEWLINE_MAX_DEPTH])
+
+static func get_log_level() -> int:
+ return Log.config.get(KEY_LOG_LEVEL, CONFIG_DEFAULTS[KEY_LOG_LEVEL])
+
+static func get_warn_todo() -> int:
+ return Log.config.get(KEY_WARN_TODO, CONFIG_DEFAULTS[KEY_WARN_TODO])
+
+static func get_show_timestamps() -> bool:
+ return Log.config.get(KEY_SHOW_TIMESTAMPS, CONFIG_DEFAULTS[KEY_SHOW_TIMESTAMPS])
+
+static func get_timestamp_type() -> TimestampTypes:
+ return Log.config.get(KEY_TIMESTAMP_TYPE, CONFIG_DEFAULTS[KEY_TIMESTAMP_TYPE])
+
+static func get_timestamp_format() -> String:
+ return Log.config.get(KEY_HUMAN_READABLE_TIMESTAMP_FORMAT, CONFIG_DEFAULTS[KEY_HUMAN_READABLE_TIMESTAMP_FORMAT])
+
+
+## config setters ###################################################################
+
+## Disable color-wrapping output.
+##
+## [br][br]
+## Useful to declutter the output if the environment does not support colors.
+## Note that some environments support only a subset of colors - you may prefer
+## [code]set_colors_termsafe()[/code].
+static func disable_colors() -> void:
+ Log.config[KEY_DISABLE_COLORS] = true
+
+## Re-enable color-wrapping output.
+static func enable_colors() -> void:
+ Log.config[KEY_DISABLE_COLORS] = false
+
+## Disable newlines in pretty-print output.
+##
+## [br][br]
+## Useful if you want your log output on a single line, typically for use with
+## log aggregation tools.
+static func disable_newlines() -> void:
+ Log.config[KEY_USE_NEWLINES] = false
+
+## Re-enable newlines in pretty-print output.
+static func enable_newlines() -> void:
+ Log.config[KEY_USE_NEWLINES] = true
+
+## Disable warning on Log.todo().
+static func disable_warn_todo() -> void:
+ Log.config[KEY_WARN_TODO] = false
+
+## Re-enable warning on Log.todo().
+static func enable_warn_todo() -> void:
+ Log.config[KEY_WARN_TODO] = true
+
+## Set the maximum depth of an object that will get its own newline.
+##
+## [br][br]
+## Useful if you have deeply nested objects where you're primarly interested
+## in easily parsing the information near the root of the object.
+static func set_newline_max_depth(new_depth: int) -> void:
+ Log.config[KEY_NEWLINE_MAX_DEPTH] = new_depth
+
+## Resets the maximum object depth for newlines to the default.
+static func reset_newline_max_depth() -> void:
+ Log.config[KEY_USE_NEWLINES] = CONFIG_DEFAULTS[KEY_NEWLINE_MAX_DEPTH]
+
+## Set the minimum level of logs that get printed
+static func set_log_level(new_log_level: int) -> void:
+ Log.config[KEY_LOG_LEVEL] = new_log_level
+
+## Show timestamps in log lines
+static func show_timestamps() -> void:
+ Log.config[KEY_SHOW_TIMESTAMPS] = true
+
+## Don't timestamps in log lines
+static func hide_timestamps() -> void:
+ Log.config[KEY_SHOW_TIMESTAMPS] = false
+
+## Use the given timestamp type
+static func use_timestamp_type(timestamp_type: Log.TimestampTypes) -> void:
+ Log.config[KEY_TIMESTAMP_TYPE] = timestamp_type
+
+## Use the given timestamp format
+static func use_timestamp_format(timestamp_format: String) -> void:
+ Log.config[KEY_HUMAN_READABLE_TIMESTAMP_FORMAT] = timestamp_format
+
+## set color theme ####################################
+
+## Use the terminal safe color scheme, which should support colors in most tty-like environments.
+static func set_colors_termsafe() -> void:
+ Log.config[KEY_COLOR_THEME_DICT] = LogColorTheme.COLORS_TERM_SAFE
+
+## Use prettier colors - i.e. whatever LogColorTheme is configured.
+static func set_colors_pretty() -> void:
+ var theme_path: Variant = Log.config.get(KEY_COLOR_THEME_RESOURCE_PATH)
+ # TODO proper string, file, resource load check here
+ if theme_path != null:
+ Log.config[KEY_COLOR_THEME] = load(theme_path)
+ Log.config[KEY_COLOR_THEME_DICT] = Log.config[KEY_COLOR_THEME].to_color_dict()
+ else:
+ print("WARNING no color theme resource path to load!")
+
+## applying colors ####################################
+
+static func should_use_color(opts: Dictionary = {}) -> bool:
+ if OS.has_feature("ios") or OS.has_feature("web"):
+ # ios and web (and likely others) don't handle colors well
+ return false
+ if Log.get_disable_colors():
+ return false
+ # supports per-print color skipping
+ if opts.get("disable_colors", false):
+ return false
+ return true
+
+static func color_wrap(s: Variant, opts: Dictionary = {}) -> String:
+ # TODO refactor to use the color theme directly
+ var colors: Dictionary = get_config_color_theme_dict()
+ var color_theme: LogColorTheme = get_config_color_theme()
+
+ if not should_use_color(opts):
+ return str(s)
+
+ var color: Variant = opts.get("color", "")
+ if color == null or (color is String and color == ""):
+ var s_type: Variant = opts.get("typeof", typeof(s))
+ if s_type is String:
+ # type overwrites
+ color = colors.get(s_type)
+ elif s_type is int and s_type == TYPE_STRING:
+ # specific strings/punctuation
+ var s_trimmed: String = str(s).strip_edges()
+ if s_trimmed in colors:
+ color = colors.get(s_trimmed)
+ else:
+ # fallback string color
+ color = colors.get(s_type)
+ else:
+ # all other types
+ color = colors.get(s_type)
+
+ if color is String and color == "" or color == null:
+ print("Log.gd could not determine color for object: %s type: (%s)" % [str(s), typeof(s)])
+
+ if color is Array:
+ # support rainbow delimiters
+ if opts.get("typeof", "") in ["dict_key"]:
+ # subtract 1 for dict_keys
+ # we the keys are 'down' a nesting level, but we want the curly + dict keys to match
+ color = color[opts.get("newline_depth", 0) - 1 % len(color)]
+ else:
+ color = color[opts.get("newline_depth", 0) % len(color)]
+
+ if color is Color:
+ # get the colors back to something bb_code can handle
+ color = color.to_html(false)
+
+ if color_theme and color_theme.has_bg():
+ var bg_color: String = color_theme.get_bg_color(opts.get("newline_depth", 0)).to_html(false)
+ return "[bgcolor=%s][color=%s]%s[/color][/bgcolor]" % [bg_color, color, s]
+ return "[color=%s]%s[/color]" % [color, s]
+
+## overwrites ###########################################################################
+
+static var type_overwrites: Dictionary = {}
+
+## Register a single type overwrite.
+##
+## [br][br]
+## The key should be either obj.get_class() or typeof(var). (Note that using typeof(var) may overwrite more broadly than expected).
+##
+## [br][br]
+## The handler is called with the object and an options dict.
+## [code]func(obj): return {name=obj.name}[/code]
+static func register_type_overwrite(key: String, handler: Callable) -> void:
+ # TODO warning on key exists? support multiple handlers for same type?
+ # validate the key/handler somehow?
+ type_overwrites[key] = handler
+
+## Register a dictionary of type overwrite.
+##
+## [br][br]
+## Expects a Dictionary like [code]{obj.get_class(): func(obj): return {key=obj.get_key()}}[/code].
+##
+## [br][br]
+## It depends on [code]obj.get_class()[/code] then [code]typeof(obj)[/code] for the key.
+## The handler is called with the object as the only argument. (e.g. [code]func(obj): return {name=obj.name}[/code]).
+static func register_type_overwrites(overwrites: Dictionary) -> void:
+ type_overwrites.merge(overwrites, true)
+
+static func clear_type_overwrites() -> void:
+ type_overwrites = {}
+
+## to_pretty ###########################################################################
+
+## Returns the passed object as a bb-colorized string.
+##
+## [br][br]
+## The core of Log.gd's functionality.
+##
+## [br][br]
+## Can be useful to feed directly into a RichTextLabel.
+##
+static func to_pretty(msg: Variant, opts: Dictionary = {}) -> String:
+ var newlines: bool = opts.get("newlines", Log.get_use_newlines())
+ var newline_depth: int = opts.get("newline_depth", 0)
+ var newline_max_depth: int = opts.get("newline_max_depth", Log.get_newline_max_depth())
+ var indent_level: int = opts.get("indent_level", 0)
+
+ if not newlines:
+ newline_max_depth = 0
+ elif newline_max_depth == 0:
+ newlines = false
+
+ # If newline_max_depth is negative, don't limit the depth
+ if newline_max_depth > 0 and newline_depth >= newline_max_depth:
+ newlines = false
+
+ if not "newline_depth" in opts:
+ opts["newline_depth"] = newline_depth
+
+ if not "indent_level" in opts:
+ opts["indent_level"] = indent_level
+
+ if not is_instance_valid(msg) and typeof(msg) == TYPE_OBJECT:
+ return str("invalid instance: ", msg)
+
+ if msg == null:
+ return Log.color_wrap(msg, opts)
+
+ if msg is Object and (msg as Object).get_class() in type_overwrites:
+ var fn: Callable = type_overwrites.get((msg as Object).get_class())
+ return Log.to_pretty(fn.call(msg), opts)
+ elif typeof(msg) in type_overwrites:
+ var fn: Callable = type_overwrites.get(typeof(msg))
+ return Log.to_pretty(fn.call(msg), opts)
+
+ # objects
+ if msg is Object and (msg as Object).has_method("to_pretty"):
+ # using a cast and `call.("blah")` here it's "type safe"
+ return Log.to_pretty((msg as Object).call("to_pretty"), opts)
+ if msg is Object and (msg as Object).has_method("data"):
+ return Log.to_pretty((msg as Object).call("data"), opts)
+ # DEPRECATED
+ if msg is Object and (msg as Object).has_method("to_printable"):
+ return Log.to_pretty((msg as Object).call("to_printable"), opts)
+
+ # arrays
+ if msg is Array or msg is PackedStringArray:
+ var msg_array: Array = msg
+ if len(msg) > Log.get_max_array_size():
+ pr("[DEBUG]: truncating large array. total:", len(msg))
+ msg_array = msg_array.slice(0, Log.get_max_array_size() - 1)
+ if newlines:
+ msg_array.append("...")
+
+ # shouldn't we be incrementing index_level here?
+ var tmp: String = Log.color_wrap("[ ", opts)
+ opts["newline_depth"] += 1
+ var last: int = len(msg) - 1
+ for i: int in range(len(msg)):
+ if newlines and last > 1:
+ tmp += Log.color_wrap("\n\t", opts)
+ tmp += Log.to_pretty(msg[i],
+ # duplicate here to prevent indenting-per-msg
+ # e.g. when printing an array of dictionaries
+ opts.duplicate(true))
+ if i != last:
+ tmp += Log.color_wrap(", ", opts)
+ opts["newline_depth"] -= 1
+ tmp += Log.color_wrap(" ]", opts)
+ return tmp
+
+ # dictionary
+ elif msg is Dictionary:
+ var tmp: String = Log.color_wrap("{ ", opts)
+ opts["newline_depth"] += 1
+ var ct: int = len(msg)
+ var last: Variant
+ if len(msg) > 0:
+ last = (msg as Dictionary).keys()[-1]
+ var indent_updated = false
+ for k: Variant in (msg as Dictionary).keys():
+ var val: Variant
+ if k in Log.get_dictionary_skip_keys():
+ val = "..."
+ else:
+ if not indent_updated:
+ indent_updated = true
+ opts["indent_level"] += 1
+ val = Log.to_pretty(msg[k], opts)
+ if newlines and ct > 1:
+ tmp += Log.color_wrap("\n\t", opts) \
+ + Log.color_wrap(range(indent_level)\
+ .map(func(_i: int) -> String: return "\t")\
+ .reduce(func(a: String, b: Variant) -> String: return str(a, b), ""), opts)
+ var key: String = Log.color_wrap('"%s"' % k, Log.assoc(opts, "typeof", "dict_key"))
+ tmp += "%s%s%s" % [key, Log.color_wrap(": ", opts), val]
+ if last and str(k) != str(last):
+ tmp += Log.color_wrap(", ", opts)
+ opts["newline_depth"] -= 1
+ tmp += Log.color_wrap(" }", opts)
+ opts["indent_level"] -= 1 # ugh! updating the dict in-place
+ return tmp
+
+ # strings
+ elif msg is String:
+ if msg == "":
+ return '""'
+ if "[color=" in msg and "[/color]" in msg:
+ # passes through strings that might already be colorized?
+ # can't remember this use-case
+ # perhaps should use a regex and unit tests for something more robust
+ return msg
+ return Log.color_wrap(msg, opts)
+ elif msg is StringName:
+ return str(Log.color_wrap("&", opts), '"%s"' % msg)
+ elif msg is NodePath:
+ return str(Log.color_wrap("^", opts), '"%s"' % msg)
+
+ elif msg is Color:
+ # probably too opinionated, but seeing 4 floats for color is noisey
+ return Log.color_wrap(msg.to_html(false), Log.assoc(opts, "typeof", TYPE_COLOR))
+
+ # vectors
+ elif msg is Vector2 or msg is Vector2i:
+ return '%s%s%s%s%s' % [
+ Log.color_wrap("(", opts),
+ Log.color_wrap(msg.x, Log.assoc(opts, "typeof", "vector_value")),
+ Log.color_wrap(",", opts),
+ Log.color_wrap(msg.y, Log.assoc(opts, "typeof", "vector_value")),
+ Log.color_wrap(")", opts),
+ ]
+
+ elif msg is Vector3 or msg is Vector3i:
+ return '%s%s%s%s%s%s%s' % [
+ Log.color_wrap("(", opts),
+ Log.color_wrap(msg.x, Log.assoc(opts, "typeof", "vector_value")),
+ Log.color_wrap(",", opts),
+ Log.color_wrap(msg.y, Log.assoc(opts, "typeof", "vector_value")),
+ Log.color_wrap(",", opts),
+ Log.color_wrap(msg.z, Log.assoc(opts, "typeof", "vector_value")),
+ Log.color_wrap(")", opts),
+ ]
+ elif msg is Vector4 or msg is Vector4i:
+ return '%s%s%s%s%s%s%s%s%s' % [
+ Log.color_wrap("(", opts),
+ Log.color_wrap(msg.x, Log.assoc(opts, "typeof", "vector_value")),
+ Log.color_wrap(",", opts),
+ Log.color_wrap(msg.y, Log.assoc(opts, "typeof", "vector_value")),
+ Log.color_wrap(",", opts),
+ Log.color_wrap(msg.z, Log.assoc(opts, "typeof", "vector_value")),
+ Log.color_wrap(",", opts),
+ Log.color_wrap(msg.w, Log.assoc(opts, "typeof", "vector_value")),
+ Log.color_wrap(")", opts),
+ ]
+
+ # packed scene
+ elif msg is PackedScene:
+ var msg_ps: PackedScene = msg
+ if msg_ps.resource_path != "":
+ return str(Log.color_wrap("PackedScene:", opts), '%s' % msg_ps.resource_path.get_file())
+ elif msg_ps.get_script() != null and msg_ps.get_script().resource_path != "":
+ var path: String = msg_ps.get_script().resource_path
+ return Log.color_wrap(path.get_file(), Log.assoc(opts, "typeof", "class_name"))
+ else:
+ return Log.color_wrap(msg_ps, opts)
+
+ # resource
+ elif msg is Resource:
+ var msg_res: Resource = msg
+ if msg_res.get_script() != null and msg_res.get_script().resource_path != "":
+ var path: String = msg_res.get_script().resource_path
+ return Log.color_wrap(path.get_file(), Log.assoc(opts, "typeof", "class_name"))
+ elif msg_res.resource_path != "":
+ var path: String = msg_res.resource_path
+ return str(Log.color_wrap("Resource:", opts), '%s' % path.get_file())
+ else:
+ return Log.color_wrap(msg_res, opts)
+
+ # refcounted
+ elif msg is RefCounted:
+ var msg_ref: RefCounted = msg
+ if msg_ref.get_script() != null and msg_ref.get_script().resource_path != "":
+ var path: String = msg_ref.get_script().resource_path
+ return Log.color_wrap(path.get_file(), Log.assoc(opts, "typeof", "class_name"))
+ else:
+ return Log.color_wrap(msg_ref.get_class(), Log.assoc(opts, "typeof", "class_name"))
+
+ # fallback to primitive-type lookup
+ else:
+ return Log.color_wrap(msg, opts)
+
+## to_printable ###########################################################################
+
+static func log_prefix(stack: Array) -> String:
+ if len(stack) > 1:
+ var call_site: Dictionary = stack[1]
+ var call_site_source: String = call_site.get("source", "")
+ var basename: String = call_site_source.get_file().get_basename()
+ var line_num: String = str(call_site.get("line", 0))
+ if call_site_source.match("*/test/*"):
+ return "{" + basename + ":" + line_num + "}: "
+ elif call_site_source.match("*/addons/*"):
+ return "<" + basename + ":" + line_num + ">: "
+ else:
+ return "[" + basename + ":" + line_num + "]: "
+ return ""
+
+static func to_printable(msgs: Array, opts: Dictionary = {}) -> String:
+ if not Log.is_config_setup:
+ rebuild_config()
+
+ if not msgs is Array:
+ msgs = [msgs]
+ var stack: Array = opts.get("stack", [])
+ var pretty: bool = opts.get("pretty", true)
+ var m: String = ""
+ if get_show_timestamps():
+ m = "[%s]" % Log.timestamp()
+ if len(stack) > 0:
+ var prefix: String = Log.log_prefix(stack)
+ var prefix_type: String
+ if prefix != null and prefix[0] == "[":
+ prefix_type = "SRC"
+ elif prefix != null and prefix[0] == "{":
+ prefix_type = "TEST"
+ elif prefix != null and prefix[0] == "<":
+ prefix_type = "ADDONS"
+ if pretty:
+ m += Log.color_wrap(prefix, Log.assoc(opts, "typeof", prefix_type))
+ else:
+ m += prefix
+ for msg: Variant in msgs:
+ # add a space between msgs
+ if pretty:
+ m += "%s " % Log.to_pretty(msg, opts)
+ else:
+ m += "%s " % str(msg)
+ return m.trim_suffix(" ")
+
+static func timestamp() -> String:
+ match Log.get_timestamp_type():
+ Log.TimestampTypes.UNIX:
+ return "%d" % Time.get_unix_time_from_system()
+ Log.TimestampTypes.TICKS_MSEC:
+ return "%d" % Time.get_ticks_msec()
+ Log.TimestampTypes.TICKS_USEC:
+ return "%d" % Time.get_ticks_usec()
+ Log.TimestampTypes.HUMAN_12HR:
+ var time: Dictionary = Time.get_datetime_dict_from_system()
+ var hour: int = time.hour % 12
+ if hour == 0:
+ hour = 12
+ var meridiem: String = "AM" if time.hour < 12 else "PM"
+ return Log.get_timestamp_format().format({
+ "year": time.year,
+ "month": "%02d" % time.month,
+ "day": "%02d" % time.day,
+ "hour": hour,
+ "minute": "%02d" % time.minute,
+ "second": "%02d" % time.second,
+ "meridiem": meridiem,
+ "dst": time.dst
+ })
+ Log.TimestampTypes.HUMAN_24HR:
+ var time: Dictionary = Time.get_datetime_dict_from_system()
+ return Log.get_timestamp_format().format({
+ "year": time.year,
+ "month": "%02d" % time.month,
+ "day": "%02d" % time.day,
+ "hour": "%02d" % time.hour,
+ "minute": "%02d" % time.minute,
+ "second": "%02d" % time.second,
+ "dst": time.dst
+ })
+ return "%d" % Time.get_unix_time_from_system()
+
+## public print fns ###########################################################################
+
+static func is_not_default(v: Variant) -> bool:
+ return not v is String or (v is String and v != "ZZZDEF")
+
+## Pretty-print the passed arguments in a single line.
+static func pr(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ var m: String = Log.to_printable(msgs, {stack=get_stack()})
+ print_rich(m)
+
+## Pretty-print the passed arguments, expanding dictionaries and arrays with a newline and indentation.
+static func prn(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ var m: String = Log.to_printable(msgs, {stack=get_stack(), newlines=true, newline_max_depth=1})
+ print_rich(m)
+
+## Pretty-print the passed arguments, expanding dictionaries and arrays with two newlines and indentation.
+static func prnn(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ var m: String = Log.to_printable(msgs, {stack=get_stack(), newlines=true, newline_max_depth=2})
+ print_rich(m)
+
+## Pretty-print the passed arguments, expanding dictionaries and arrays with three newlines and indentation.
+static func prnnn(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ var m: String = Log.to_printable(msgs, {stack=get_stack(), newlines=true, newline_max_depth=3})
+ print_rich(m)
+
+## Pretty-print the passed arguments in a single line.
+static func log(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ var m: String = Log.to_printable(msgs, {stack=get_stack()})
+ print_rich(m)
+
+## Pretty-print the passed arguments in a single line.
+static func debug(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ if get_log_level() > Log.Levels.DEBUG:
+ return
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ msgs.push_front("[DEBUG]")
+ var m: String = Log.to_printable(msgs, {stack=get_stack()})
+ print_rich(m)
+
+## Pretty-print the passed arguments in a single line.
+static func info(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ if get_log_level() > Log.Levels.INFO:
+ return
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ msgs.push_front("[INFO]")
+ var m: String = Log.to_printable(msgs, {stack=get_stack()})
+ print_rich(m)
+
+## Like [code]Log.pr()[/code], but also calls push_warning() with the pretty string.
+static func warn(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ if get_log_level() > Log.Levels.WARN:
+ return
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ var rich_msgs: Array = msgs.duplicate()
+ rich_msgs.push_front("[color=yellow][WARN][/color]")
+ print_rich(Log.to_printable(rich_msgs, {stack=get_stack()}))
+ # skip the 'color' features in warnings to keep them readable in the debugger
+ var m: String = Log.to_printable(msgs, {stack=get_stack(), disable_colors=true})
+ push_warning(m)
+
+## Like [code]Log.pr()[/code], but prepends a "[TODO]" and calls push_warning() with the pretty string.
+static func todo(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ if get_warn_todo() and get_log_level() > Log.Levels.WARN:
+ return
+ elif not get_warn_todo() and get_log_level() > Log.Levels.INFO:
+ return
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ msgs.push_front("[TODO]")
+ var rich_msgs: Array = msgs.duplicate()
+ if get_warn_todo():
+ rich_msgs.push_front("[color=yellow][WARN][/color]")
+ print_rich(Log.to_printable(rich_msgs, {stack=get_stack()}))
+ if get_warn_todo():
+ var m: String = Log.to_printable(msgs, {stack=get_stack(), disable_colors=true})
+ push_warning(m)
+
+## Like [code]Log.pr()[/code], but also calls push_error() with the pretty string.
+static func err(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ var rich_msgs: Array = msgs.duplicate()
+ rich_msgs.push_front("[color=red][ERR][/color]")
+ print_rich(Log.to_printable(rich_msgs, {stack=get_stack()}))
+ # skip the 'color' features in errors to keep them readable in the debugger
+ var m: String = Log.to_printable(msgs, {stack=get_stack(), disable_colors=true})
+ push_error(m)
+
+## Like [code]Log.pr()[/code], but also calls push_error() with the pretty string.
+static func error(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ var rich_msgs: Array = msgs.duplicate()
+ rich_msgs.push_front("[color=red][ERR][/color]")
+ print_rich(Log.to_printable(rich_msgs, {stack=get_stack()}))
+ # skip the 'color' features in errors to keep them readable in the debugger
+ var m: String = Log.to_printable(msgs, {stack=get_stack(), disable_colors=true})
+ push_error(m)
+
+static func blank() -> void:
+ print()
+
+
+## Helper that will both print() and print_rich() the enriched string
+static func _internal_debug(msg: Variant, msg2: Variant = "ZZZDEF", msg3: Variant = "ZZZDEF", msg4: Variant = "ZZZDEF", msg5: Variant = "ZZZDEF", msg6: Variant = "ZZZDEF", msg7: Variant = "ZZZDEF") -> void:
+ var msgs: Array = [msg, msg2, msg3, msg4, msg5, msg6, msg7]
+ msgs = msgs.filter(Log.is_not_default)
+ var m: String = Log.to_printable(msgs, {stack=get_stack()})
+ print("_internal_debug: ", m)
+ print_rich(m)
+
+
+## DEPRECATED
+static func merge_theme_overwrites(_opts = {}) -> void:
+ pass
+
+## DEPRECATED
+static func clear_theme_overwrites() -> void:
+ pass
diff --git a/addons/log/log.gd.uid b/addons/log/log.gd.uid
new file mode 100644
index 0000000..127bb42
--- /dev/null
+++ b/addons/log/log.gd.uid
@@ -0,0 +1 @@
+uid://bjhtrex267w1y
diff --git a/addons/log/log_color_theme.gd b/addons/log/log_color_theme.gd
new file mode 100644
index 0000000..c38c966
--- /dev/null
+++ b/addons/log/log_color_theme.gd
@@ -0,0 +1,225 @@
+## LogColorTheme - Bring Your Own Color Theme to Log.gd!
+## [br][br]
+## Create a new resource of this type, and assign this via the Project Settings.
+## [br][br]
+## Be sure to enable Log.gd via Project > Plugins to see this type in the editor!
+##
+@tool
+extends Resource
+class_name LogColorTheme
+
+## cycles ########################################
+
+@export var bg_colors: Array[Color] = []
+
+@export var colors_rainbow_delims: Array[Color] = ["crimson", "cornflower_blue", "coral", "pink", "peru"]
+
+## delimiters ########################################
+
+@export var color_comma: Color = "crimson"
+@export var color_ampersand: Color = "coral"
+@export var color_pipe: Color = "coral"
+@export var color_carrot: Color = "coral"
+
+# @export var colors_dict_keys: Array[Color] = ["coral", "cadet_blue", "pink", "peru"]
+
+## prefixes ########################################
+
+@export var color_src_prefix: Color = "aquamarine"
+@export var color_addons_prefix: Color = "peru"
+@export var color_test_prefix: Color = "green_yellow"
+
+## types ############################################
+
+@export var color_nil: Color = "coral"
+@export var color_bool: Color = "pink"
+@export var color_int: Color = "cornflower_blue"
+@export var color_float: Color = "cornflower_blue"
+
+@export var color_vectors: Color = "cornflower_blue"
+@export var color_rects: Color = "cornflower_blue"
+
+@export var color_class_name: Color = "cadet_blue"
+@export var color_string: Color = "dark_gray"
+@export var color_string_name: Color = "pink"
+@export var color_node_path: Color = "pink"
+
+@export var color_type_color: Color = "pink"
+@export var color_rid: Color = "pink"
+@export var color_object: Color = "pink"
+@export var color_callable: Color = "pink"
+@export var color_signal: Color = "pink"
+
+@export var color_array: Color = "pink"
+@export var color_dictionary: Color = "pink"
+@export var color_packed_array: Color = "pink"
+@export var color_type_max: Color = "pink"
+
+## to_color_dict ############################################
+
+func to_color_dict() -> Dictionary:
+ var color_dict = {}
+
+ color_dict["SRC"] = color_src_prefix
+ color_dict["ADDONS"] = color_addons_prefix
+ color_dict["TEST"] = color_test_prefix
+
+ color_dict["|"] = color_pipe
+ color_dict["&"] = color_ampersand
+ color_dict["^"] = color_carrot
+
+ # consider rainbow for commas too
+ # color_dict[","] = colors_rainbow_delims
+ color_dict[","] = color_comma
+
+ color_dict["("] = colors_rainbow_delims
+ color_dict[")"] = colors_rainbow_delims
+ color_dict["["] = colors_rainbow_delims
+ color_dict["]"] = colors_rainbow_delims
+ color_dict["{"] = colors_rainbow_delims
+ color_dict["}"] = colors_rainbow_delims
+ color_dict["<"] = colors_rainbow_delims
+ color_dict[">"] = colors_rainbow_delims
+
+ color_dict["dict_key"] = colors_rainbow_delims
+ color_dict["vector_value"] = color_float
+ color_dict["class_name"] = color_class_name
+
+ color_dict[TYPE_NIL] = color_nil
+ color_dict[TYPE_BOOL] = color_bool
+ color_dict[TYPE_INT] = color_int
+ color_dict[TYPE_FLOAT] = color_float
+
+ color_dict[TYPE_VECTOR2] = color_vectors
+ color_dict[TYPE_VECTOR2I] = color_vectors
+ color_dict[TYPE_RECT2] = color_rects
+ color_dict[TYPE_RECT2I] = color_rects
+ color_dict[TYPE_VECTOR3] = color_vectors
+ color_dict[TYPE_VECTOR3I] = color_vectors
+ color_dict[TYPE_TRANSFORM2D] = color_rects
+ color_dict[TYPE_VECTOR4] = color_vectors
+ color_dict[TYPE_VECTOR4I] = color_vectors
+ color_dict[TYPE_PLANE] = color_rects
+ color_dict[TYPE_QUATERNION] = color_rects
+ color_dict[TYPE_AABB] = color_rects
+ color_dict[TYPE_BASIS] = color_rects
+ color_dict[TYPE_TRANSFORM3D] = color_rects
+ color_dict[TYPE_PROJECTION] = color_rects
+
+ color_dict[TYPE_STRING] = color_string
+ color_dict[TYPE_STRING_NAME] = color_string_name
+ color_dict[TYPE_NODE_PATH] = color_node_path
+
+ color_dict[TYPE_COLOR] = color_type_color
+ color_dict[TYPE_RID] = color_rid
+ color_dict[TYPE_OBJECT] = color_object
+ color_dict[TYPE_CALLABLE] = color_callable
+ color_dict[TYPE_SIGNAL] = color_signal
+
+ # Do these ever get through if we're walking these ourselves?
+ color_dict[TYPE_DICTIONARY] = color_dictionary
+ color_dict[TYPE_ARRAY] = color_array
+
+ # Maybe want a hint/label before array openers?
+ color_dict[TYPE_PACKED_BYTE_ARRAY] = color_packed_array
+ color_dict[TYPE_PACKED_INT32_ARRAY] = color_packed_array
+ color_dict[TYPE_PACKED_INT64_ARRAY] = color_packed_array
+ color_dict[TYPE_PACKED_FLOAT32_ARRAY] = color_packed_array
+ color_dict[TYPE_PACKED_FLOAT64_ARRAY] = color_packed_array
+ color_dict[TYPE_PACKED_STRING_ARRAY] = color_packed_array
+ color_dict[TYPE_PACKED_VECTOR2_ARRAY] = color_packed_array
+ color_dict[TYPE_PACKED_VECTOR3_ARRAY] = color_packed_array
+ color_dict[TYPE_PACKED_COLOR_ARRAY] = color_packed_array
+
+ color_dict[TYPE_MAX] = color_type_max
+
+
+ return color_dict
+
+## bg color
+
+func has_bg() -> bool:
+ if bg_colors == null:
+ return false
+ return len(bg_colors) > 0
+
+func get_bg_color(i: int = 0) -> Color:
+ return bg_colors[i % len(bg_colors)]
+
+### static term safe helpers
+
+# terminal safe colors:
+# - black
+# - red
+# - green
+# - yellow
+# - blue
+# - magenta
+# - pink
+# - purple
+# - cyan
+# - white
+# - orange
+# - gray
+
+static var TERMSAFE_RAINBOW: Array = ["red", "blue", "green", "pink", "orange"]
+
+static var COLORS_TERM_SAFE: Dictionary = {
+ "SRC": "cyan",
+ "ADDONS": "red",
+ "TEST": "green",
+ ",": "red",
+ "(": TERMSAFE_RAINBOW,
+ ")": TERMSAFE_RAINBOW,
+ "[": TERMSAFE_RAINBOW,
+ "]": TERMSAFE_RAINBOW,
+ "{": TERMSAFE_RAINBOW,
+ "}": TERMSAFE_RAINBOW,
+ "<": TERMSAFE_RAINBOW,
+ ">": TERMSAFE_RAINBOW,
+ "|": TERMSAFE_RAINBOW,
+ "&": "orange",
+ "^": "orange",
+ "dict_key": TERMSAFE_RAINBOW,
+ "vector_value": "green",
+ "class_name": "magenta",
+ TYPE_NIL: "pink",
+ TYPE_BOOL: "pink",
+ TYPE_INT: "green",
+ TYPE_FLOAT: "green",
+ TYPE_STRING: "pink",
+ TYPE_VECTOR2: "green",
+ TYPE_VECTOR2I: "green",
+ TYPE_RECT2: "green",
+ TYPE_RECT2I: "green",
+ TYPE_VECTOR3: "green",
+ TYPE_VECTOR3I: "green",
+ TYPE_TRANSFORM2D: "pink",
+ TYPE_VECTOR4: "green",
+ TYPE_VECTOR4I: "green",
+ TYPE_PLANE: "pink",
+ TYPE_QUATERNION: "pink",
+ TYPE_AABB: "pink",
+ TYPE_BASIS: "pink",
+ TYPE_TRANSFORM3D: "pink",
+ TYPE_PROJECTION: "pink",
+ TYPE_COLOR: "pink",
+ TYPE_STRING_NAME: "pink",
+ TYPE_NODE_PATH: "pink",
+ TYPE_RID: "pink",
+ TYPE_OBJECT: "pink",
+ TYPE_CALLABLE: "pink",
+ TYPE_SIGNAL: "pink",
+ TYPE_DICTIONARY: "pink",
+ TYPE_ARRAY: "pink",
+ TYPE_PACKED_BYTE_ARRAY: "pink",
+ TYPE_PACKED_INT32_ARRAY: "pink",
+ TYPE_PACKED_INT64_ARRAY: "pink",
+ TYPE_PACKED_FLOAT32_ARRAY: "pink",
+ TYPE_PACKED_FLOAT64_ARRAY: "pink",
+ TYPE_PACKED_STRING_ARRAY: "pink",
+ TYPE_PACKED_VECTOR2_ARRAY: "pink",
+ TYPE_PACKED_VECTOR3_ARRAY: "pink",
+ TYPE_PACKED_COLOR_ARRAY: "pink",
+ TYPE_MAX: "pink",
+ }
diff --git a/addons/log/log_color_theme.gd.uid b/addons/log/log_color_theme.gd.uid
new file mode 100644
index 0000000..184fe91
--- /dev/null
+++ b/addons/log/log_color_theme.gd.uid
@@ -0,0 +1 @@
+uid://br8socgd1vvih
diff --git a/addons/log/plugin.cfg b/addons/log/plugin.cfg
new file mode 100644
index 0000000..42128e6
--- /dev/null
+++ b/addons/log/plugin.cfg
@@ -0,0 +1,14 @@
+[plugin]
+
+name="Log.gd"
+description="A pretty-printing debug logger.
+
+Log.pr(\"some str\", some_object)
+
+- Colorizes printed data based on datatype
+- Recurses through nested data structures (Arrays and Dictionaries)
+- Prefixes logs with the callsite's source file and line_number
+"
+author="Russell Matney"
+version="v0.2.0"
+script="plugin.gd"
diff --git a/addons/log/plugin.gd b/addons/log/plugin.gd
new file mode 100644
index 0000000..f0c5a09
--- /dev/null
+++ b/addons/log/plugin.gd
@@ -0,0 +1,43 @@
+@tool
+extends EditorPlugin
+
+
+var override_log_level_option_button: OptionButton = OptionButton.new()
+
+var icon_debug: Texture2D = EditorInterface.get_editor_theme().get_icon("Debug", "EditorIcons")
+var icon_info: Texture2D = EditorInterface.get_editor_theme().get_icon("NodeInfo", "EditorIcons")
+var icon_warn: Texture2D = EditorInterface.get_editor_theme().get_icon("NodeWarning", "EditorIcons")
+var icon_err: Texture2D = EditorInterface.get_editor_theme().get_icon("StatusError", "EditorIcons")
+
+
+func _enter_tree() -> void:
+ override_log_level_option_button.visible = ProjectSettings.get_setting("log_gd/config/show_log_level_selector", false)
+ override_log_level_option_button.add_icon_item(icon_debug, "DEBUG")
+ override_log_level_option_button.add_icon_item(icon_info, "INFO")
+ override_log_level_option_button.add_icon_item(icon_warn, "WARN")
+ override_log_level_option_button.add_icon_item(icon_err, "ERROR")
+ override_log_level_option_button.select(Log.get_log_level())
+ override_log_level_option_button.item_selected.connect(override_log_level)
+ add_control_to_container(CONTAINER_TOOLBAR, override_log_level_option_button)
+ override_log_level_option_button.get_parent().move_child(override_log_level_option_button, override_log_level_option_button.get_index() - 2)
+
+ Log.setup_settings()
+ Log.rebuild_config()
+ # TODO only run if some log-specific setting has changed
+ ProjectSettings.settings_changed.connect(on_settings_changed)
+
+
+func _exit_tree() -> void:
+ remove_control_from_container(CONTAINER_TOOLBAR, override_log_level_option_button)
+
+
+func on_settings_changed() -> void:
+ override_log_level_option_button.select(ProjectSettings.get_setting("log_gd/config/log_level"))
+ override_log_level_option_button.visible = ProjectSettings.get_setting("log_gd/config/show_log_level_selector")
+ Log.rebuild_config()
+
+
+func override_log_level(value: Log.Levels) -> void:
+ Log.set_log_level(value)
+ ProjectSettings.set_setting("log_gd/config/log_level", value)
+ ProjectSettings.save()
diff --git a/addons/log/plugin.gd.uid b/addons/log/plugin.gd.uid
new file mode 100644
index 0000000..02aa551
--- /dev/null
+++ b/addons/log/plugin.gd.uid
@@ -0,0 +1 @@
+uid://dc3akmw7hy6ok
diff --git a/addons/reload_current_scene/plugin.cfg b/addons/reload_current_scene/plugin.cfg
new file mode 100644
index 0000000..40d6dc1
--- /dev/null
+++ b/addons/reload_current_scene/plugin.cfg
@@ -0,0 +1,7 @@
+[plugin]
+
+name="Reload Current Scene"
+description="Helper button to reload the current scene."
+author="Russell Matney"
+version="v0.1.0"
+script="plugin.gd"
diff --git a/addons/reload_current_scene/plugin.gd b/addons/reload_current_scene/plugin.gd
new file mode 100644
index 0000000..cdfcda9
--- /dev/null
+++ b/addons/reload_current_scene/plugin.gd
@@ -0,0 +1,25 @@
+@tool
+extends EditorPlugin
+
+
+var reload_scene_btn: Button = Button.new()
+
+
+func _enter_tree() -> void:
+ reload_scene_btn.pressed.connect(reload_scene)
+ reload_scene_btn.text = "Reload Scene"
+ reload_scene_btn.icon = EditorInterface.get_editor_theme().get_icon("Reload", "EditorIcons")
+ add_control_to_container(CONTAINER_TOOLBAR, reload_scene_btn)
+ reload_scene_btn.get_parent().move_child(reload_scene_btn, reload_scene_btn.get_index() - 2)
+
+
+func _exit_tree() -> void:
+ remove_control_from_container(CONTAINER_TOOLBAR, reload_scene_btn)
+
+
+func reload_scene() -> void:
+ Log.info("[ReloadScene] Reload initialized", Time.get_time_string_from_system())
+ var edited_scene: Node = EditorInterface.get_edited_scene_root()
+ Log.info("[ReloadScene] Edited scene", "%s.scene_file_path" % edited_scene, edited_scene.scene_file_path)
+ EditorInterface.reload_scene_from_path(edited_scene.scene_file_path)
+ Log.info("[ReloadScene] Scene reloaded", Time.get_time_string_from_system())
diff --git a/addons/reload_current_scene/plugin.gd.uid b/addons/reload_current_scene/plugin.gd.uid
new file mode 100644
index 0000000..42a7adb
--- /dev/null
+++ b/addons/reload_current_scene/plugin.gd.uid
@@ -0,0 +1 @@
+uid://df3sf44c3b64a
diff --git a/assets/GandalfHardcore Background layers.gif b/assets/GandalfHardcore Background layers.gif
new file mode 100644
index 0000000..9622033
Binary files /dev/null and b/assets/GandalfHardcore Background layers.gif differ
diff --git a/assets/audio/OGG/.DS_Store b/assets/audio/OGG/.DS_Store
new file mode 100644
index 0000000..ae20e0a
Binary files /dev/null and b/assets/audio/OGG/.DS_Store differ
diff --git a/assets/audio/OGG/BGS Loops/.DS_Store b/assets/audio/OGG/BGS Loops/.DS_Store
new file mode 100644
index 0000000..46e869f
Binary files /dev/null and b/assets/audio/OGG/BGS Loops/.DS_Store differ
diff --git a/assets/audio/OGG/BGS Loops/Beach/Beach Rain.ogg b/assets/audio/OGG/BGS Loops/Beach/Beach Rain.ogg
new file mode 100644
index 0000000..3b7236e
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Beach/Beach Rain.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a450a07a0377581c6a6a5d0aea55b0573e420f7d61e5bab8c9cb537a98e7d702
+size 3902838
diff --git a/assets/audio/OGG/BGS Loops/Beach/Beach Rain.ogg.import b/assets/audio/OGG/BGS Loops/Beach/Beach Rain.ogg.import
new file mode 100644
index 0000000..59ab6cc
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Beach/Beach Rain.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b2p065yn3fkmr"
+path="res://.godot/imported/Beach Rain.ogg-3cf3d2bdaf0006b574b2382b35f099b1.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Beach/Beach Rain.ogg"
+dest_files=["res://.godot/imported/Beach Rain.ogg-3cf3d2bdaf0006b574b2382b35f099b1.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Beach/Beach Storm.ogg b/assets/audio/OGG/BGS Loops/Beach/Beach Storm.ogg
new file mode 100644
index 0000000..fd2f8e2
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Beach/Beach Storm.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c1592a094af4cd83ff3a8b00ed5cb56b86771c0eb2db575b6416a8dbc80c56f4
+size 3894012
diff --git a/assets/audio/OGG/BGS Loops/Beach/Beach Storm.ogg.import b/assets/audio/OGG/BGS Loops/Beach/Beach Storm.ogg.import
new file mode 100644
index 0000000..8b9c7f5
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Beach/Beach Storm.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cx7c627trpbkn"
+path="res://.godot/imported/Beach Storm.ogg-2fdb485982ff8c57097c232bb37d4cfd.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Beach/Beach Storm.ogg"
+dest_files=["res://.godot/imported/Beach Storm.ogg-2fdb485982ff8c57097c232bb37d4cfd.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Beach/Beach.ogg b/assets/audio/OGG/BGS Loops/Beach/Beach.ogg
new file mode 100644
index 0000000..12cf916
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Beach/Beach.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:415f18577213bb89c0371ee384ef94a17be46aa72966baca38ec257263823714
+size 3384984
diff --git a/assets/audio/OGG/BGS Loops/Beach/Beach.ogg.import b/assets/audio/OGG/BGS Loops/Beach/Beach.ogg.import
new file mode 100644
index 0000000..de10fcc
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Beach/Beach.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bijfvt28virsw"
+path="res://.godot/imported/Beach.ogg-f2dcd786f77ce9a9578991b83b60178f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Beach/Beach.ogg"
+dest_files=["res://.godot/imported/Beach.ogg-f2dcd786f77ce9a9578991b83b60178f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Cave/Cave Rain.ogg b/assets/audio/OGG/BGS Loops/Cave/Cave Rain.ogg
new file mode 100644
index 0000000..2197092
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Cave/Cave Rain.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:001ca52537bd2c201bee36e8db88e95e9887ba52b3237f5a3bc53eae5c4c4058
+size 3280736
diff --git a/assets/audio/OGG/BGS Loops/Cave/Cave Rain.ogg.import b/assets/audio/OGG/BGS Loops/Cave/Cave Rain.ogg.import
new file mode 100644
index 0000000..f95e91b
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Cave/Cave Rain.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://mca3roqkbxtm"
+path="res://.godot/imported/Cave Rain.ogg-7de26e9b92079c104b598e40099d4944.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Cave/Cave Rain.ogg"
+dest_files=["res://.godot/imported/Cave Rain.ogg-7de26e9b92079c104b598e40099d4944.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Cave/Cave Storm.ogg b/assets/audio/OGG/BGS Loops/Cave/Cave Storm.ogg
new file mode 100644
index 0000000..c20621d
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Cave/Cave Storm.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fbc213dc4f219e85eb9de4d106c7f932b8c66cae696a87e87b4f4087168d536f
+size 3271491
diff --git a/assets/audio/OGG/BGS Loops/Cave/Cave Storm.ogg.import b/assets/audio/OGG/BGS Loops/Cave/Cave Storm.ogg.import
new file mode 100644
index 0000000..f20eba2
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Cave/Cave Storm.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dtnx4hcisp70a"
+path="res://.godot/imported/Cave Storm.ogg-560a3a93a977971b3a617b7c44e9ebf5.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Cave/Cave Storm.ogg"
+dest_files=["res://.godot/imported/Cave Storm.ogg-560a3a93a977971b3a617b7c44e9ebf5.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Cave/Cave.ogg b/assets/audio/OGG/BGS Loops/Cave/Cave.ogg
new file mode 100644
index 0000000..952228a
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Cave/Cave.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a03cd7cb1ec2de5d55cd55fb365dc4a3b6ed1373c069d4e2f6277e3b38764afd
+size 3266684
diff --git a/assets/audio/OGG/BGS Loops/Cave/Cave.ogg.import b/assets/audio/OGG/BGS Loops/Cave/Cave.ogg.import
new file mode 100644
index 0000000..7c85e2a
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Cave/Cave.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bvm0enafi4lid"
+path="res://.godot/imported/Cave.ogg-ed24212a08ff0a145ad3a0f800f84462.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Cave/Cave.ogg"
+dest_files=["res://.godot/imported/Cave.ogg-ed24212a08ff0a145ad3a0f800f84462.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Rain.ogg b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Rain.ogg
new file mode 100644
index 0000000..837def6
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Rain.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4984427563ec241d7fc8b8fb659476d0eaf8e1482229f3f3d12eefd0255a3541
+size 4309791
diff --git a/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Rain.ogg.import b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Rain.ogg.import
new file mode 100644
index 0000000..3be0f69
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Rain.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bchjcw8ad4j1l"
+path="res://.godot/imported/Forest Day Rain.ogg-b97d927820281ac58a1dede8f943ea87.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Forest Day/Forest Day Rain.ogg"
+dest_files=["res://.godot/imported/Forest Day Rain.ogg-b97d927820281ac58a1dede8f943ea87.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Storm.ogg b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Storm.ogg
new file mode 100644
index 0000000..681ff2b
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Storm.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:13b8de262284ddcea849d7729619e8feb2d7e620c62567d47415d5a8a821e21a
+size 4280252
diff --git a/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Storm.ogg.import b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Storm.ogg.import
new file mode 100644
index 0000000..077fc2a
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day Storm.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://jwky8uulu0lq"
+path="res://.godot/imported/Forest Day Storm.ogg-9a27d5227196ae6da4d7634c836182bf.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Forest Day/Forest Day Storm.ogg"
+dest_files=["res://.godot/imported/Forest Day Storm.ogg-9a27d5227196ae6da4d7634c836182bf.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Forest Day/Forest Day.ogg b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day.ogg
new file mode 100644
index 0000000..fada86b
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6863e5d54bae219a864411483525366a7a2fd597b9989f4343f9d80bb5fcfc11
+size 3507282
diff --git a/assets/audio/OGG/BGS Loops/Forest Day/Forest Day.ogg.import b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day.ogg.import
new file mode 100644
index 0000000..9cfcc2f
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Day/Forest Day.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://qm25npqyo8kf"
+path="res://.godot/imported/Forest Day.ogg-b4002b595fbe507830a5252141d8e24f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Forest Day/Forest Day.ogg"
+dest_files=["res://.godot/imported/Forest Day.ogg-b4002b595fbe507830a5252141d8e24f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Rain.ogg b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Rain.ogg
new file mode 100644
index 0000000..0d6e1e7
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Rain.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:909e5dc159ffdd850b5500d67a1f71278d9b456db82b272790eef91f1f4e6221
+size 4018361
diff --git a/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Rain.ogg.import b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Rain.ogg.import
new file mode 100644
index 0000000..8f9f08a
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Rain.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bx64pv2382ffj"
+path="res://.godot/imported/Forest Night Rain.ogg-3a6b589e255a5faf0c4c9a2d16b8deff.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Forest Night/Forest Night Rain.ogg"
+dest_files=["res://.godot/imported/Forest Night Rain.ogg-3a6b589e255a5faf0c4c9a2d16b8deff.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Storm.ogg b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Storm.ogg
new file mode 100644
index 0000000..991ec40
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Storm.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7bd9022eb4a19b09b03ed8969a1c2714f1dd1d083b00ac8aad0ebffa361d2a83
+size 4002071
diff --git a/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Storm.ogg.import b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Storm.ogg.import
new file mode 100644
index 0000000..82dd967
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night Storm.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://jse6gk4ude5h"
+path="res://.godot/imported/Forest Night Storm.ogg-4beb0cffaf29ba3669f719811075c821.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Forest Night/Forest Night Storm.ogg"
+dest_files=["res://.godot/imported/Forest Night Storm.ogg-4beb0cffaf29ba3669f719811075c821.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Forest Night/Forest Night.ogg b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night.ogg
new file mode 100644
index 0000000..f46620b
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd81628c98eecfbc99bdbf74f7bd9d78fec5015e7b0bc01139ac932765280978
+size 3733602
diff --git a/assets/audio/OGG/BGS Loops/Forest Night/Forest Night.ogg.import b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night.ogg.import
new file mode 100644
index 0000000..63ec8b8
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Forest Night/Forest Night.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://btnkhrkfyrud0"
+path="res://.godot/imported/Forest Night.ogg-ef10081668908103a1046b8872995b12.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Forest Night/Forest Night.ogg"
+dest_files=["res://.godot/imported/Forest Night.ogg-ef10081668908103a1046b8872995b12.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Rain.ogg b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Rain.ogg
new file mode 100644
index 0000000..c57159f
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Rain.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:24f312a28c8520a3318f4b7e800558880971c95e619923aa49956f7d1908852a
+size 3548606
diff --git a/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Rain.ogg.import b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Rain.ogg.import
new file mode 100644
index 0000000..6f711b4
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Rain.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ct5njaa82imlk"
+path="res://.godot/imported/Inside Day Rain.ogg-7e6acc06231cac5a8bcecea10b3dd300.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Interior Day/Inside Day Rain.ogg"
+dest_files=["res://.godot/imported/Inside Day Rain.ogg-7e6acc06231cac5a8bcecea10b3dd300.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Storm.ogg b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Storm.ogg
new file mode 100644
index 0000000..60c8cde
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Storm.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d3a01af1bf52ae7212748ef1f71671b40ab0bb05e9d07c6a29400a37c3b659ce
+size 3496576
diff --git a/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Storm.ogg.import b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Storm.ogg.import
new file mode 100644
index 0000000..2acc2b3
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day Storm.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://gown1k3nl6rg"
+path="res://.godot/imported/Inside Day Storm.ogg-0faca45ef8edd5ea1ece0e8c4406ac5e.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Interior Day/Inside Day Storm.ogg"
+dest_files=["res://.godot/imported/Inside Day Storm.ogg-0faca45ef8edd5ea1ece0e8c4406ac5e.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Interior Day/Inside Day.ogg b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day.ogg
new file mode 100644
index 0000000..73cbd4a
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:09cd1ee43b4bd33591f761e2b3f21ca06578a2dabe59dcd54a06844de4ceec6d
+size 3086816
diff --git a/assets/audio/OGG/BGS Loops/Interior Day/Inside Day.ogg.import b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day.ogg.import
new file mode 100644
index 0000000..1f2fc36
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Day/Inside Day.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://32etm4omspbu"
+path="res://.godot/imported/Inside Day.ogg-0e94bb354b2ce3a130f7273115a09d6d.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Interior Day/Inside Day.ogg"
+dest_files=["res://.godot/imported/Inside Day.ogg-0e94bb354b2ce3a130f7273115a09d6d.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Rain.ogg b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Rain.ogg
new file mode 100644
index 0000000..b07ceda
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Rain.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8ef7adfb2fcfd5736738d4ba737c15797e557bcbfc9cb4872bff5fad69bb5a2d
+size 3505085
diff --git a/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Rain.ogg.import b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Rain.ogg.import
new file mode 100644
index 0000000..4773857
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Rain.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://f25kmpjr5tve"
+path="res://.godot/imported/Inside Night Rain.ogg-e5809f01347b726e6555330c059d8ed1.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Interior Night/Inside Night Rain.ogg"
+dest_files=["res://.godot/imported/Inside Night Rain.ogg-e5809f01347b726e6555330c059d8ed1.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Storm.ogg b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Storm.ogg
new file mode 100644
index 0000000..9dbe0cd
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Storm.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:41f6679d445459524c1fb26ff754a8ccb9d73c2e7faae3c98f11951dbc7eaa05
+size 3462454
diff --git a/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Storm.ogg.import b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Storm.ogg.import
new file mode 100644
index 0000000..72791f5
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night Storm.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ckwyc2py0wajp"
+path="res://.godot/imported/Inside Night Storm.ogg-c58f36c3031d57ca8002b2d7c843a355.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Interior Night/Inside Night Storm.ogg"
+dest_files=["res://.godot/imported/Inside Night Storm.ogg-c58f36c3031d57ca8002b2d7c843a355.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Interior Night/Inside Night.ogg b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night.ogg
new file mode 100644
index 0000000..b6e83fb
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8ecedb3e31c3c737d5633074ea498ae2f26df8ed6c20355a8b34aaed709effb6
+size 3416445
diff --git a/assets/audio/OGG/BGS Loops/Interior Night/Inside Night.ogg.import b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night.ogg.import
new file mode 100644
index 0000000..0bc1ca3
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Interior Night/Inside Night.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://pbnj4s0grd11"
+path="res://.godot/imported/Inside Night.ogg-21401659a3d868ed60a5105f4a6c6ec5.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Interior Night/Inside Night.ogg"
+dest_files=["res://.godot/imported/Inside Night.ogg-21401659a3d868ed60a5105f4a6c6ec5.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Sea/Sea Rain.ogg b/assets/audio/OGG/BGS Loops/Sea/Sea Rain.ogg
new file mode 100644
index 0000000..1a3c132
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Sea/Sea Rain.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:59b5837c7ae53e66399a121d2a8f2f1e46f35bd9d6ff7b5b658f73c483487794
+size 4111484
diff --git a/assets/audio/OGG/BGS Loops/Sea/Sea Rain.ogg.import b/assets/audio/OGG/BGS Loops/Sea/Sea Rain.ogg.import
new file mode 100644
index 0000000..cc17535
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Sea/Sea Rain.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ir0yr6rxnqd2"
+path="res://.godot/imported/Sea Rain.ogg-cf01fe03108d2a570a90b3017f1b736d.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Sea/Sea Rain.ogg"
+dest_files=["res://.godot/imported/Sea Rain.ogg-cf01fe03108d2a570a90b3017f1b736d.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Sea/Sea Storm.ogg b/assets/audio/OGG/BGS Loops/Sea/Sea Storm.ogg
new file mode 100644
index 0000000..2ddafd8
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Sea/Sea Storm.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b42ff980baddc9c79c9ebbee36e897a86a38e6f5b81cea856d30203dc56873f
+size 4091053
diff --git a/assets/audio/OGG/BGS Loops/Sea/Sea Storm.ogg.import b/assets/audio/OGG/BGS Loops/Sea/Sea Storm.ogg.import
new file mode 100644
index 0000000..2f41707
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Sea/Sea Storm.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bsx1fnbb7yjwd"
+path="res://.godot/imported/Sea Storm.ogg-aeaf55b766dc15a0d76c70ecfc82aa66.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Sea/Sea Storm.ogg"
+dest_files=["res://.godot/imported/Sea Storm.ogg-aeaf55b766dc15a0d76c70ecfc82aa66.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/BGS Loops/Sea/Sea.ogg b/assets/audio/OGG/BGS Loops/Sea/Sea.ogg
new file mode 100644
index 0000000..13a5661
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Sea/Sea.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d82b62029aab242e41dd453b9050a8efc4cfd1ba0d85af13b35efe1d1cc15ba4
+size 3318621
diff --git a/assets/audio/OGG/BGS Loops/Sea/Sea.ogg.import b/assets/audio/OGG/BGS Loops/Sea/Sea.ogg.import
new file mode 100644
index 0000000..912b3d9
--- /dev/null
+++ b/assets/audio/OGG/BGS Loops/Sea/Sea.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ds1q1p8xkec0"
+path="res://.godot/imported/Sea.ogg-c2c1aef5e5d5edecf3e9e360abb85a05.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/BGS Loops/Sea/Sea.ogg"
+dest_files=["res://.godot/imported/Sea.ogg-c2c1aef5e5d5edecf3e9e360abb85a05.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/.DS_Store b/assets/audio/OGG/SFX/.DS_Store
new file mode 100644
index 0000000..fe82285
Binary files /dev/null and b/assets/audio/OGG/SFX/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Attacks/.DS_Store b/assets/audio/OGG/SFX/Attacks/.DS_Store
new file mode 100644
index 0000000..96bdab5
Binary files /dev/null and b/assets/audio/OGG/SFX/Attacks/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/.DS_Store b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 1.ogg b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 1.ogg
new file mode 100644
index 0000000..51c6575
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:626d2d6da17c117336a324070160b51f77189e63e347887e441cc71d6fd50eb6
+size 45633
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 1.ogg.import
new file mode 100644
index 0000000..592b1ee
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cqvdj22y1e8qe"
+path="res://.godot/imported/Bow Attack 1.ogg-30c2ef29302dd593362401767d2cc30e.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 1.ogg"
+dest_files=["res://.godot/imported/Bow Attack 1.ogg-30c2ef29302dd593362401767d2cc30e.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 2.ogg b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 2.ogg
new file mode 100644
index 0000000..3e85cba
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d2ecb917432cd15e3d364fe59658074fc2acd4895c3489e173b6c09430fbbe0f
+size 47071
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 2.ogg.import b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 2.ogg.import
new file mode 100644
index 0000000..a611ab6
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cuw77vfqgqs3t"
+path="res://.godot/imported/Bow Attack 2.ogg-2bcef4511736c9103ec70eca41c10872.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Attack 2.ogg"
+dest_files=["res://.godot/imported/Bow Attack 2.ogg-2bcef4511736c9103ec70eca41c10872.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 1.ogg b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 1.ogg
new file mode 100644
index 0000000..ff84e85
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be5739620e0bfe7e2bdb855a2d8f83be38bc95d2492690b86d4510d524855c1a
+size 58877
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 1.ogg.import
new file mode 100644
index 0000000..6da7210
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b3fyiasfaf2ca"
+path="res://.godot/imported/Bow Blocked 1.ogg-e7d8067879ff1e24a62dc07513cb8abb.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 1.ogg"
+dest_files=["res://.godot/imported/Bow Blocked 1.ogg-e7d8067879ff1e24a62dc07513cb8abb.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 2.ogg b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 2.ogg
new file mode 100644
index 0000000..544459a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a1d50e89ed8da641d3055b4100022575dfb71869e3b6a180b7b5c778f0bbc35a
+size 59368
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 2.ogg.import b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 2.ogg.import
new file mode 100644
index 0000000..11c2694
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cfi0gobi3mv82"
+path="res://.godot/imported/Bow Blocked 2.ogg-fbfffd28664a082ea8a12373d0f323c3.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 2.ogg"
+dest_files=["res://.godot/imported/Bow Blocked 2.ogg-fbfffd28664a082ea8a12373d0f323c3.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 3.ogg b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 3.ogg
new file mode 100644
index 0000000..1ef021b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a38762611a7e7b43335c9a69ef5579bfcbd1843d443ac1fb539d2b97d649b187
+size 60281
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 3.ogg.import b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 3.ogg.import
new file mode 100644
index 0000000..8e424fc
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ta64r403fgxu"
+path="res://.godot/imported/Bow Blocked 3.ogg-717c068ad661e3475b00f6e2af572fd1.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Blocked 3.ogg"
+dest_files=["res://.godot/imported/Bow Blocked 3.ogg-717c068ad661e3475b00f6e2af572fd1.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 1.ogg b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 1.ogg
new file mode 100644
index 0000000..50669e6
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:55f358d88bbf0532c28c981aeafc1724cd50e4bd6b792ad42b8cd08a075d29e5
+size 67440
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 1.ogg.import
new file mode 100644
index 0000000..7a645a7
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cplwxhs3heg31"
+path="res://.godot/imported/Bow Impact Hit 1.ogg-e3166ff877eee1941f6f4093e5ffdd30.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 1.ogg"
+dest_files=["res://.godot/imported/Bow Impact Hit 1.ogg-e3166ff877eee1941f6f4093e5ffdd30.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 2.ogg b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 2.ogg
new file mode 100644
index 0000000..46b50bd
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1a2b059ad74c29b9a6feb4289dead349fe0f6f089de07ecdbe54712e885877ee
+size 59950
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 2.ogg.import b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 2.ogg.import
new file mode 100644
index 0000000..7b27883
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://vhb3tkswixqy"
+path="res://.godot/imported/Bow Impact Hit 2.ogg-047a45aaa2f443dafc3be4438f151e37.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 2.ogg"
+dest_files=["res://.godot/imported/Bow Impact Hit 2.ogg-047a45aaa2f443dafc3be4438f151e37.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 3.ogg b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 3.ogg
new file mode 100644
index 0000000..6844ce8
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:67cb714b8bfee3eca26c705d3315cb074afdfde113010bf653ea6110cd4e54c1
+size 63800
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 3.ogg.import b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 3.ogg.import
new file mode 100644
index 0000000..0ae27d2
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bdsjref72mr21"
+path="res://.godot/imported/Bow Impact Hit 3.ogg-e276f35f6375f095cb29d88724c9a97f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Impact Hit 3.ogg"
+dest_files=["res://.godot/imported/Bow Impact Hit 3.ogg-e276f35f6375f095cb29d88724c9a97f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Put Away 1.ogg b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Put Away 1.ogg
new file mode 100644
index 0000000..d8212ad
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Put Away 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b6753a550a858241de57a46f38ba3eb2b5f075080ca3bc6249ee77ea69b6ed81
+size 71680
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Put Away 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Put Away 1.ogg.import
new file mode 100644
index 0000000..95fa51b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Put Away 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bmllds5yc0lws"
+path="res://.godot/imported/Bow Put Away 1.ogg-6d27ab8ee92c69a4c2f2725a05f073bc.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Put Away 1.ogg"
+dest_files=["res://.godot/imported/Bow Put Away 1.ogg-6d27ab8ee92c69a4c2f2725a05f073bc.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Take Out 1.ogg b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Take Out 1.ogg
new file mode 100644
index 0000000..3c6ca58
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Take Out 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:65146f0edb0eb706c2a96e1a2d5fda62fcbbe99016c3a8efa50e39d7b0e3207f
+size 63560
diff --git a/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Take Out 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Take Out 1.ogg.import
new file mode 100644
index 0000000..7daa95b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Take Out 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://xsbxiuyqb1rb"
+path="res://.godot/imported/Bow Take Out 1.ogg-49aff99072c8ad8906469b3f597b5aa5.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Bow Attacks Hits and Blocks/Bow Take Out 1.ogg"
+dest_files=["res://.godot/imported/Bow Take Out 1.ogg-49aff99072c8ad8906469b3f597b5aa5.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/.DS_Store b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 1.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 1.ogg
new file mode 100644
index 0000000..436266f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:30f752c8bbaac9ee4f575a5e34612a8c87ea393371b482059ca7fe1909d30efb
+size 34423
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 1.ogg.import
new file mode 100644
index 0000000..b6d8a8d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bnd3hvnnson2n"
+path="res://.godot/imported/Sword Attack 1.ogg-76298e91efc61232abd1f569f58c5f81.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 1.ogg"
+dest_files=["res://.godot/imported/Sword Attack 1.ogg-76298e91efc61232abd1f569f58c5f81.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 2.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 2.ogg
new file mode 100644
index 0000000..b425ea5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1e6f03e1cd618b7d466392c8612cc09043b04ff07be694a7cf4a7b7b38f9bd48
+size 33848
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 2.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 2.ogg.import
new file mode 100644
index 0000000..59ccdfe
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cs4xa8pl62ogr"
+path="res://.godot/imported/Sword Attack 2.ogg-10586723473cffdb577100dbdac33f49.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 2.ogg"
+dest_files=["res://.godot/imported/Sword Attack 2.ogg-10586723473cffdb577100dbdac33f49.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 3.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 3.ogg
new file mode 100644
index 0000000..879e40b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e14f7e745e05d16a81949ef04b82074f8ba9d02b3885e2225d0ac48e53c6fa1a
+size 35348
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 3.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 3.ogg.import
new file mode 100644
index 0000000..7b54f2e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b68dk4apixo08"
+path="res://.godot/imported/Sword Attack 3.ogg-6f841ad3f64f5c2169b3e27af670cb88.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Attack 3.ogg"
+dest_files=["res://.godot/imported/Sword Attack 3.ogg-6f841ad3f64f5c2169b3e27af670cb88.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 1.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 1.ogg
new file mode 100644
index 0000000..56ff6a1
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6a4bbb4556c922dfd98d2356c924b8635dbbd3a88e9c21a8e94591141ee69c64
+size 34398
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 1.ogg.import
new file mode 100644
index 0000000..38b189a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dq0ae0fs0ytpq"
+path="res://.godot/imported/Sword Blocked 1.ogg-0398820db91f9b8d0ffe935136fa6299.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 1.ogg"
+dest_files=["res://.godot/imported/Sword Blocked 1.ogg-0398820db91f9b8d0ffe935136fa6299.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 2.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 2.ogg
new file mode 100644
index 0000000..5b0baf7
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f762a9c8cdc0fc2d3e985f8408203069250baae6a38b4f6038cac5feffddfd36
+size 35911
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 2.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 2.ogg.import
new file mode 100644
index 0000000..5ed745f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c0rhr03etvd4p"
+path="res://.godot/imported/Sword Blocked 2.ogg-0e99aa80f1627876d9f957c80b409bb7.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 2.ogg"
+dest_files=["res://.godot/imported/Sword Blocked 2.ogg-0e99aa80f1627876d9f957c80b409bb7.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 3.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 3.ogg
new file mode 100644
index 0000000..5357ba8
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:729738b3a6fa9bfeff0efc28751e692a94f24e17426598e64404f5ed517aa50a
+size 33232
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 3.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 3.ogg.import
new file mode 100644
index 0000000..72f386e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c7vh1n73ot231"
+path="res://.godot/imported/Sword Blocked 3.ogg-e29b7af3303d082fc9ef233459a25288.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Blocked 3.ogg"
+dest_files=["res://.godot/imported/Sword Blocked 3.ogg-e29b7af3303d082fc9ef233459a25288.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 1.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 1.ogg
new file mode 100644
index 0000000..36f7405
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3f3bdd7f3637e9bfe7d14a4cabed00f0e195eda95bdeb260233705e7e012d9c3
+size 38714
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 1.ogg.import
new file mode 100644
index 0000000..b18c6cc
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://clrseu3puqvoa"
+path="res://.godot/imported/Sword Impact Hit 1.ogg-3ac79a833f59eb0fed0a60b72192ea06.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 1.ogg"
+dest_files=["res://.godot/imported/Sword Impact Hit 1.ogg-3ac79a833f59eb0fed0a60b72192ea06.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 2.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 2.ogg
new file mode 100644
index 0000000..c92f185
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ff6d72fa1a32ac5352ee65ff1945fa30951d6d1eb69e3f223b9a4cd69c825147
+size 37598
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 2.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 2.ogg.import
new file mode 100644
index 0000000..a5597e9
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dlg8vm3lqxehd"
+path="res://.godot/imported/Sword Impact Hit 2.ogg-b27168373fc429c18f13373cb898f445.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 2.ogg"
+dest_files=["res://.godot/imported/Sword Impact Hit 2.ogg-b27168373fc429c18f13373cb898f445.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 3.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 3.ogg
new file mode 100644
index 0000000..30be462
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:71d335075366cb76373c04e3c4718b1b79c209e00f8e5a4cb8ec0214f2618b4f
+size 39569
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 3.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 3.ogg.import
new file mode 100644
index 0000000..2cb8e7b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cqjurdj5n557k"
+path="res://.godot/imported/Sword Impact Hit 3.ogg-b8533871bfe1ab79a029a31265feeb1f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Impact Hit 3.ogg"
+dest_files=["res://.godot/imported/Sword Impact Hit 3.ogg-b8533871bfe1ab79a029a31265feeb1f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 1.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 1.ogg
new file mode 100644
index 0000000..0e06d89
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:89f6b2d93b20d0c32bc719f83d4a17d5ae13923c28ab0e9c0e814950fe6eed94
+size 18810
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 1.ogg.import
new file mode 100644
index 0000000..783ae42
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://2s08p477hh5p"
+path="res://.godot/imported/Sword Parry 1.ogg-13099b48d705ce8665e1907ea628af61.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 1.ogg"
+dest_files=["res://.godot/imported/Sword Parry 1.ogg-13099b48d705ce8665e1907ea628af61.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 2.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 2.ogg
new file mode 100644
index 0000000..e2c4fb5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cbcff38aaf39271a3beaa223dc5170d0d74d251f1a795d83f6394075c4a1344b
+size 19295
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 2.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 2.ogg.import
new file mode 100644
index 0000000..54117ee
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://d2m3jow0q3fy4"
+path="res://.godot/imported/Sword Parry 2.ogg-86c3711c1a5f288b50daf5631c33d6d7.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 2.ogg"
+dest_files=["res://.godot/imported/Sword Parry 2.ogg-86c3711c1a5f288b50daf5631c33d6d7.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 3.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 3.ogg
new file mode 100644
index 0000000..01cba62
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a7b0ffd68a72bd78740d6604b049699e0d4cd18a893982d473035178f6e6793e
+size 18909
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 3.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 3.ogg.import
new file mode 100644
index 0000000..43f01b0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bsomhoob1v4h8"
+path="res://.godot/imported/Sword Parry 3.ogg-f78b59821fb53664681bcd89518bebeb.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Parry 3.ogg"
+dest_files=["res://.godot/imported/Sword Parry 3.ogg-f78b59821fb53664681bcd89518bebeb.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 1.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 1.ogg
new file mode 100644
index 0000000..a63e3c0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df2575e32a774cc7a8e334c93a421819b079437f30f67ce4f54cd6956580c060
+size 62841
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 1.ogg.import
new file mode 100644
index 0000000..69f8747
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cb8hnwyw2skiy"
+path="res://.godot/imported/Sword Sheath 1.ogg-cc884f97bdcc37fb68409adb6b09dc2a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 1.ogg"
+dest_files=["res://.godot/imported/Sword Sheath 1.ogg-cc884f97bdcc37fb68409adb6b09dc2a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 2.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 2.ogg
new file mode 100644
index 0000000..db7bce3
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd7b7546ccacca22f1cc4c55ffea7b6ea85b59bee3312622e82c25c88eb7a54b
+size 62533
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 2.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 2.ogg.import
new file mode 100644
index 0000000..22ce262
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cy5cn7jacq73y"
+path="res://.godot/imported/Sword Sheath 2.ogg-9f0a4a9ea8037e23d686881e801984de.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Sheath 2.ogg"
+dest_files=["res://.godot/imported/Sword Sheath 2.ogg-9f0a4a9ea8037e23d686881e801984de.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 1.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 1.ogg
new file mode 100644
index 0000000..0d1d73b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dfd8e426a9ee2615d63e36d93dbb7e5beb4bb396566d8b61582f64fa426b7707
+size 48092
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 1.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 1.ogg.import
new file mode 100644
index 0000000..ed10d60
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://blqxqo1orl12a"
+path="res://.godot/imported/Sword Unsheath 1.ogg-f22f44bf80c3aafd693e674a93484ab9.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 1.ogg"
+dest_files=["res://.godot/imported/Sword Unsheath 1.ogg-f22f44bf80c3aafd693e674a93484ab9.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 2.ogg b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 2.ogg
new file mode 100644
index 0000000..4456587
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e633f888c454551300567d492ce494eadd09e2a36ecc69014e2a58115e28387b
+size 45439
diff --git a/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 2.ogg.import b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 2.ogg.import
new file mode 100644
index 0000000..df089e2
--- /dev/null
+++ b/assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cxvjqlp3767ks"
+path="res://.godot/imported/Sword Unsheath 2.ogg-9e88489fdcd497dcc6e3d4120731d41f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Attacks/Sword Attacks Hits and Blocks/Sword Unsheath 2.ogg"
+dest_files=["res://.godot/imported/Sword Unsheath 2.ogg-9e88489fdcd497dcc6e3d4120731d41f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/.DS_Store b/assets/audio/OGG/SFX/Chopping and Mining/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Chopping and Mining/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg b/assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg
new file mode 100644
index 0000000..d4aeec1
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6728d588d269b370cb6adab1702ce4b00f5bd66979bedb260821d15dc32cd061
+size 39376
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg.import
new file mode 100644
index 0000000..c64d022
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dk4uuqs15ke73"
+path="res://.godot/imported/chop 1.ogg-b69af87df03a0c5fe070f85eb271d215.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg"
+dest_files=["res://.godot/imported/chop 1.ogg-b69af87df03a0c5fe070f85eb271d215.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg b/assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg
new file mode 100644
index 0000000..5b9cacb
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7867c5b34c33ff12fb46f9e4dd2b23a521252e16ba33d4fb3b8b195c5ceb98d9
+size 28203
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg.import
new file mode 100644
index 0000000..bed697e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cu0or87uh4tnx"
+path="res://.godot/imported/chop 2.ogg-3c1aa9e3d1bef67928f70428ba3baf67.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg"
+dest_files=["res://.godot/imported/chop 2.ogg-3c1aa9e3d1bef67928f70428ba3baf67.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg b/assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg
new file mode 100644
index 0000000..886f89f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e8421ae9049a5bb4e9e90339f357fbefe4e54fb647a89d3bf9521ff9fc7d403b
+size 38348
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg.import
new file mode 100644
index 0000000..88cc4fa
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dyeihn6rpcexy"
+path="res://.godot/imported/chop 3.ogg-cbdf52dc00aee6e6fc66cc6cdf1d505c.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg"
+dest_files=["res://.godot/imported/chop 3.ogg-cbdf52dc00aee6e6fc66cc6cdf1d505c.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg b/assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg
new file mode 100644
index 0000000..73d8f1c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e10887b39a6e70a193662553ad06938d6cd26f3d472b5d411ab7061599625d3c
+size 27431
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg.import
new file mode 100644
index 0000000..7b485b1
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dtv1te54cfra1"
+path="res://.godot/imported/chop 4.ogg-3b75c4df4d131e29f8d9237341d5fdc8.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg"
+dest_files=["res://.godot/imported/chop 4.ogg-3b75c4df4d131e29f8d9237341d5fdc8.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg b/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg
new file mode 100644
index 0000000..af0347c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7a482bc0dd0336b678e7bb2ee0485df6dc2cdd649ea6136f015984ee686b69b9
+size 33072
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg.import
new file mode 100644
index 0000000..5c7afd5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ciigu6xv4een2"
+path="res://.godot/imported/mine 1.ogg-7d18662074fe361b38d431c8b05adfef.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg"
+dest_files=["res://.godot/imported/mine 1.ogg-7d18662074fe361b38d431c8b05adfef.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg b/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg
new file mode 100644
index 0000000..8c7d489
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:efb291c33b90172234cb2c96b9cb0733d712f3663998a394ce653017ece6a0b2
+size 30937
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg.import
new file mode 100644
index 0000000..2b591f0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dvymfro1mgu26"
+path="res://.godot/imported/mine 2.ogg-ddfea9d88f0eaa481725560e89c016d4.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg"
+dest_files=["res://.godot/imported/mine 2.ogg-ddfea9d88f0eaa481725560e89c016d4.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg b/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg
new file mode 100644
index 0000000..c73fb16
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4d0181feb17087d62da7cb2eba216cc1362567c48e086ef7e8757561b20350fd
+size 26080
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg.import
new file mode 100644
index 0000000..8cbcf32
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://df271xfcx0a7b"
+path="res://.godot/imported/mine 3.ogg-217d1add25379185f600351d973c4748.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg"
+dest_files=["res://.godot/imported/mine 3.ogg-217d1add25379185f600351d973c4748.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg b/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg
new file mode 100644
index 0000000..44a511e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e9f7d0b76e8fc9d0ff70e819208763698fca099a657f147ad33cbc48abfb15cb
+size 32489
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg.import
new file mode 100644
index 0000000..27d769d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bqdbaorkkkg8o"
+path="res://.godot/imported/mine 4.ogg-9f72de7d0c734b4128ba92bef9b7b50f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg"
+dest_files=["res://.godot/imported/mine 4.ogg-9f72de7d0c734b4128ba92bef9b7b50f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg b/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg
new file mode 100644
index 0000000..f652787
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1a0f02a72aafb81b01eb971391bb3d348d0a8676334b8926f477f2b8873425a2
+size 31572
diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg.import
new file mode 100644
index 0000000..6e155fc
--- /dev/null
+++ b/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dpbdn7vgrkbvg"
+path="res://.godot/imported/mine 5.ogg-fefc870733e0b64c3ccf27b6e4d44e3f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg"
+dest_files=["res://.godot/imported/mine 5.ogg-fefc870733e0b64c3ccf27b6e4d44e3f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/.DS_Store b/assets/audio/OGG/SFX/Doors Gates and Chests/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Doors Gates and Chests/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 1.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 1.ogg
new file mode 100644
index 0000000..589b806
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ad5d4f3309ba472db3d2cddfc8e53037c6cd5452f2a98cfdd0bc4f99ecc242db
+size 51306
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 1.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 1.ogg.import
new file mode 100644
index 0000000..a2983fd
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dcbrk66ouh08w"
+path="res://.godot/imported/Chest Close 1.ogg-481ef22b1fbf95f35dab4e6ef2473788.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 1.ogg"
+dest_files=["res://.godot/imported/Chest Close 1.ogg-481ef22b1fbf95f35dab4e6ef2473788.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 2.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 2.ogg
new file mode 100644
index 0000000..8da8071
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:458ab8e53ee3c0baa4a5e3739b222c59046decfb2e2578d1263051722f119eea
+size 55431
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 2.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 2.ogg.import
new file mode 100644
index 0000000..133c0b0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dsbuga61dtksr"
+path="res://.godot/imported/Chest Close 2.ogg-b9519b17185522e7fcf713d161d8cf79.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Chest Close 2.ogg"
+dest_files=["res://.godot/imported/Chest Close 2.ogg-b9519b17185522e7fcf713d161d8cf79.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 1.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 1.ogg
new file mode 100644
index 0000000..47167a1
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1ec2fdc0b4b430e25cd48bbc7b1fb7d6cf65f3a00418190578a54b7da5a22eaf
+size 79411
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 1.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 1.ogg.import
new file mode 100644
index 0000000..f1738f0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://csfi45jwnld8j"
+path="res://.godot/imported/Chest Open 1.ogg-38109f9d1bea49b4cec2000dbb5a9e90.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 1.ogg"
+dest_files=["res://.godot/imported/Chest Open 1.ogg-38109f9d1bea49b4cec2000dbb5a9e90.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 2.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 2.ogg
new file mode 100644
index 0000000..e180565
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f12ab7e53b38c3ea80cb6498b4f6effa23232e5c7da96e1af875fc3a65e10ea7
+size 87866
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 2.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 2.ogg.import
new file mode 100644
index 0000000..f597111
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dy7fgeh8ietdg"
+path="res://.godot/imported/Chest Open 2.ogg-69e78f5268d515e8bfcc9b7330b55e57.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Chest Open 2.ogg"
+dest_files=["res://.godot/imported/Chest Open 2.ogg-69e78f5268d515e8bfcc9b7330b55e57.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 1.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 1.ogg
new file mode 100644
index 0000000..71d0be7
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5c10da5958f9c742a80b8505a7dc616ec7270615f4bb9f2822267f76fb2a5c8b
+size 61586
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 1.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 1.ogg.import
new file mode 100644
index 0000000..92f0d66
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ccctkc8dbgpu6"
+path="res://.godot/imported/Door Close 1.ogg-52f1f06e0c73ea072e6f2c35283fff7a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 1.ogg"
+dest_files=["res://.godot/imported/Door Close 1.ogg-52f1f06e0c73ea072e6f2c35283fff7a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 2.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 2.ogg
new file mode 100644
index 0000000..20f46ab
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1840069c5643b724d5b52189c6702ab96054de47755d4799944eeb7eba298cf7
+size 65142
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 2.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 2.ogg.import
new file mode 100644
index 0000000..10f5748
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ciygbhnu67qsc"
+path="res://.godot/imported/Door Close 2.ogg-96230c6a12b79d9379d22cc2e6d89fbf.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Door Close 2.ogg"
+dest_files=["res://.godot/imported/Door Close 2.ogg-96230c6a12b79d9379d22cc2e6d89fbf.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 1.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 1.ogg
new file mode 100644
index 0000000..b5bfe50
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d2ff6b9cfeb590722a9a17909bae5421bd8fe31a54746f98a47495c7e4adfc11
+size 78709
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 1.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 1.ogg.import
new file mode 100644
index 0000000..c6236a6
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b2c8ycf6j8rxu"
+path="res://.godot/imported/Door Open 1.ogg-5a42df0d93b1b6d36fac75fbf1ec977d.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 1.ogg"
+dest_files=["res://.godot/imported/Door Open 1.ogg-5a42df0d93b1b6d36fac75fbf1ec977d.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 2.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 2.ogg
new file mode 100644
index 0000000..e8bd0ca
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8879649bec44de7659b5e20aef3906a912d675428fcc3f59ba5e7966ca89232
+size 72397
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 2.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 2.ogg.import
new file mode 100644
index 0000000..a3fd6dc
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ceky0t5arakjv"
+path="res://.godot/imported/Door Open 2.ogg-e51577d38daf725664d997ca11115039.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Door Open 2.ogg"
+dest_files=["res://.godot/imported/Door Open 2.ogg-e51577d38daf725664d997ca11115039.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Close.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Close.ogg
new file mode 100644
index 0000000..7e1e81c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Close.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0cc62105ee76fc9ef3cb117c0c4e797996607e54ab75af9f748ce3bda6ef0338
+size 82877
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Close.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Close.ogg.import
new file mode 100644
index 0000000..be6ce05
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Close.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://biu5emll2k1bx"
+path="res://.godot/imported/Gate Close.ogg-d54934844feef4075df62da421f93e13.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Gate Close.ogg"
+dest_files=["res://.godot/imported/Gate Close.ogg-d54934844feef4075df62da421f93e13.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Open.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Open.ogg
new file mode 100644
index 0000000..282a6fc
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Open.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:433c7b30cee6c2f49676c04d6d99d5dde24655aec6d9e8dce51a757db3ca5bc3
+size 84854
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Open.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Open.ogg.import
new file mode 100644
index 0000000..b45fae8
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Gate Open.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cr5fgfrls0m44"
+path="res://.godot/imported/Gate Open.ogg-5d42a498c55914f97546fd5147cf3cc3.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Gate Open.ogg"
+dest_files=["res://.godot/imported/Gate Open.ogg-5d42a498c55914f97546fd5147cf3cc3.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Lock Unlock.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Lock Unlock.ogg
new file mode 100644
index 0000000..dd5db4a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Lock Unlock.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:668ce971fb0f26ea6bea13e4c61cb4bacae1f49618e2e6fa8b3dcae9d1ba0af9
+size 67114
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Lock Unlock.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Lock Unlock.ogg.import
new file mode 100644
index 0000000..3416c5d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Lock Unlock.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ceu0b1fabs6ov"
+path="res://.godot/imported/Lock Unlock.ogg-04fc9045d96411b91843884d37e57f67.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Lock Unlock.ogg"
+dest_files=["res://.godot/imported/Lock Unlock.ogg-04fc9045d96411b91843884d37e57f67.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Portcullis Gate.ogg b/assets/audio/OGG/SFX/Doors Gates and Chests/Portcullis Gate.ogg
new file mode 100644
index 0000000..3932941
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Portcullis Gate.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eed0ae868cbc09b129e9c4cd5250287888ae3cf96290b1bfc0665167d33b2c6a
+size 737596
diff --git a/assets/audio/OGG/SFX/Doors Gates and Chests/Portcullis Gate.ogg.import b/assets/audio/OGG/SFX/Doors Gates and Chests/Portcullis Gate.ogg.import
new file mode 100644
index 0000000..1fa9370
--- /dev/null
+++ b/assets/audio/OGG/SFX/Doors Gates and Chests/Portcullis Gate.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://5s0do4hlopwg"
+path="res://.godot/imported/Portcullis Gate.ogg-0821e20db5da8db54ab27d0c1ef0cce3.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Doors Gates and Chests/Portcullis Gate.ogg"
+dest_files=["res://.godot/imported/Portcullis Gate.ogg-0821e20db5da8db54ab27d0c1ef0cce3.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/.DS_Store b/assets/audio/OGG/SFX/Footsteps/.DS_Store
new file mode 100644
index 0000000..a28a306
Binary files /dev/null and b/assets/audio/OGG/SFX/Footsteps/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/.DS_Store b/assets/audio/OGG/SFX/Footsteps/Dirt/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Footsteps/Dirt/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Jump.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Jump.ogg
new file mode 100644
index 0000000..91b8ab2
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Jump.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a3b472e224eb0fb3b0a6bae88a6c12c15c5db714cf1c13653479acca3ae0fb96
+size 27056
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Jump.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Jump.ogg.import
new file mode 100644
index 0000000..aaffd02
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Jump.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://f0567d1ebdjt"
+path="res://.godot/imported/Dirt Chain Jump.ogg-309c4c01a2130bde52af5623935caded.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Jump.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Jump.ogg-309c4c01a2130bde52af5623935caded.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Land.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Land.ogg
new file mode 100644
index 0000000..c45604b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Land.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7f965bcda90bd3133304f4cc4fcc043769a6312a9c2aadf55b1bbe78757dbcf2
+size 32231
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Land.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Land.ogg.import
new file mode 100644
index 0000000..c11db05
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Land.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bwq5rd2f8qtlk"
+path="res://.godot/imported/Dirt Chain Land.ogg-f7cc0b6459dfb0a28d3a18f95d795c6a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Land.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Land.ogg-f7cc0b6459dfb0a28d3a18f95d795c6a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 1.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 1.ogg
new file mode 100644
index 0000000..2a6bbfb
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:56b3ff406147b5cc2ecad2452b0ffcaebebe7e2716e08d2c9281f8608dd0e8b4
+size 35753
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 1.ogg.import
new file mode 100644
index 0000000..9180dbc
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c4xk8opppu6tv"
+path="res://.godot/imported/Dirt Chain Run 1.ogg-fb7c7b4fb91b333ff9b14f9e45394645.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 1.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Run 1.ogg-fb7c7b4fb91b333ff9b14f9e45394645.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 2.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 2.ogg
new file mode 100644
index 0000000..743d6ec
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:163cf6e8b5ce377ccbb171062d1c9f0eb6b7145b11fad410cc695bc6495134d8
+size 33926
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 2.ogg.import
new file mode 100644
index 0000000..996ce00
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://d1mrg2dxy0djg"
+path="res://.godot/imported/Dirt Chain Run 2.ogg-349841ce9738679793895d1b1406d7af.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 2.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Run 2.ogg-349841ce9738679793895d1b1406d7af.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 3.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 3.ogg
new file mode 100644
index 0000000..41d73d8
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c77ba7bcddbe6fbfe42bd12f5be8f9f02cff401c6ed4484b2b0c5ca4dd165071
+size 34435
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 3.ogg.import
new file mode 100644
index 0000000..3455c82
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dm45yghafnmi7"
+path="res://.godot/imported/Dirt Chain Run 3.ogg-3b345fbe28bcc5dc436e760fc114bae1.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 3.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Run 3.ogg-3b345fbe28bcc5dc436e760fc114bae1.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 4.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 4.ogg
new file mode 100644
index 0000000..9b0d5be
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:924c84bb055e7563c19685c5b7f71e9501cd24d464a1005a2dc525ba846169a7
+size 33475
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 4.ogg.import
new file mode 100644
index 0000000..84dd33c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://comi5csycejpa"
+path="res://.godot/imported/Dirt Chain Run 4.ogg-59fdc7da3df0aa8fdfddc35859522382.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 4.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Run 4.ogg-59fdc7da3df0aa8fdfddc35859522382.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 5.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 5.ogg
new file mode 100644
index 0000000..26720aa
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:51b8a655fcd8323a5440791f0b3c3d75f3a40cdd6824ef7d1d9b32821b550d3d
+size 30613
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 5.ogg.import
new file mode 100644
index 0000000..1553a5f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bqrsy7jmgh4wp"
+path="res://.godot/imported/Dirt Chain Run 5.ogg-59edfb6af61394653d3816130424c5fe.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Run 5.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Run 5.ogg-59edfb6af61394653d3816130424c5fe.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 1.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 1.ogg
new file mode 100644
index 0000000..6b7034a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2462f1752e9c3f4d64b62ac2929eb402390cdc1ce82141cb868b387ff20850dd
+size 35405
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 1.ogg.import
new file mode 100644
index 0000000..15f0070
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b35lwj8vdy1dm"
+path="res://.godot/imported/Dirt Chain Walk 1.ogg-47fcd78ffb229b7d1a5d75301827125e.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 1.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Walk 1.ogg-47fcd78ffb229b7d1a5d75301827125e.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 2.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 2.ogg
new file mode 100644
index 0000000..5eb098e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:30f0d7b013227c6a1355e5721f77a43f0e5df43cd045361d29b73ddb6020a3c0
+size 34578
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 2.ogg.import
new file mode 100644
index 0000000..62005b0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ckarrktfv4coa"
+path="res://.godot/imported/Dirt Chain Walk 2.ogg-f74d501342a0ef234ab9700db7dedeed.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 2.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Walk 2.ogg-f74d501342a0ef234ab9700db7dedeed.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 3.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 3.ogg
new file mode 100644
index 0000000..321c63a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:28e00a7d84f5b0e0a5c21a6a0cd427b139001b189d235a9a2817a2359f429b8b
+size 35980
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 3.ogg.import
new file mode 100644
index 0000000..35d655c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://7nbf20m8kcxt"
+path="res://.godot/imported/Dirt Chain Walk 3.ogg-f03d5e2fd54cd70384d061fe3b24b03b.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 3.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Walk 3.ogg-f03d5e2fd54cd70384d061fe3b24b03b.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 4.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 4.ogg
new file mode 100644
index 0000000..bc79808
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6564f8d822a916f57bcecaa395c5010c5bf33499bd1c07ff3edf1cf1957af6f9
+size 34268
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 4.ogg.import
new file mode 100644
index 0000000..0771596
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://mk7716lmvy2v"
+path="res://.godot/imported/Dirt Chain Walk 4.ogg-0958d2f790031fd675286165aaa433bd.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 4.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Walk 4.ogg-0958d2f790031fd675286165aaa433bd.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 5.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 5.ogg
new file mode 100644
index 0000000..3dfe9fe
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a19a92cc5ed7079ec2955aa72a3743eb693990b1531e9b0136d84cd8325dd686
+size 32804
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 5.ogg.import
new file mode 100644
index 0000000..cce4a4c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dsihog2c4y5yv"
+path="res://.godot/imported/Dirt Chain Walk 5.ogg-3f791f281df561b460be74f1e1c5c0f9.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Chain Walk 5.ogg"
+dest_files=["res://.godot/imported/Dirt Chain Walk 5.ogg-3f791f281df561b460be74f1e1c5c0f9.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Jump.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Jump.ogg
new file mode 100644
index 0000000..34b3b45
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Jump.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e706fade307a5333b5fe8c3f9650a282a69923076b66167168d2d4f602bbb1ac
+size 34020
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Jump.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Jump.ogg.import
new file mode 100644
index 0000000..118abd1
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Jump.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bny1w3cti7byt"
+path="res://.godot/imported/Dirt Jump.ogg-749e7f612a0942f709fd8812af00accc.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Jump.ogg"
+dest_files=["res://.godot/imported/Dirt Jump.ogg-749e7f612a0942f709fd8812af00accc.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Land.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Land.ogg
new file mode 100644
index 0000000..59721cd
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Land.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:04486df89c305c6d9aba33523f5eccba41c54bd879adb1ba1a3207c561310ca9
+size 31735
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Land.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Land.ogg.import
new file mode 100644
index 0000000..b6f4d8f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Land.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dgteuudrcqce7"
+path="res://.godot/imported/Dirt Land.ogg-c0810ac341d43a3f7b92659fd255fea5.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Land.ogg"
+dest_files=["res://.godot/imported/Dirt Land.ogg-c0810ac341d43a3f7b92659fd255fea5.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 1.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 1.ogg
new file mode 100644
index 0000000..519d582
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5e67b05130458e7d97bbe108ad976d3c770da9e3add1d7d9ebd422342e62214e
+size 32432
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 1.ogg.import
new file mode 100644
index 0000000..edea24c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cbmmwegcaeqse"
+path="res://.godot/imported/Dirt Run 1.ogg-109bd56bf60576e2cbc6440d70f93552.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 1.ogg"
+dest_files=["res://.godot/imported/Dirt Run 1.ogg-109bd56bf60576e2cbc6440d70f93552.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 2.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 2.ogg
new file mode 100644
index 0000000..61296b7
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4e215fa4a5af5f34e22a19dac502740c02734e4d7238f2d79c4579bbfdc85b5c
+size 31598
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 2.ogg.import
new file mode 100644
index 0000000..02e5e58
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://t06g84ohj2yq"
+path="res://.godot/imported/Dirt Run 2.ogg-3ae162252101c9628d6d1cd100c2eeef.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 2.ogg"
+dest_files=["res://.godot/imported/Dirt Run 2.ogg-3ae162252101c9628d6d1cd100c2eeef.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 3.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 3.ogg
new file mode 100644
index 0000000..78ed28f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:79491d76eea7c4fa570624029e206aed1aeac1c958eb429706f9db89991d5dd6
+size 32495
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 3.ogg.import
new file mode 100644
index 0000000..95a1ec7
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://mk2bt4xgbsto"
+path="res://.godot/imported/Dirt Run 3.ogg-66f5e718757adb8a6fd5423f6d4dea1d.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 3.ogg"
+dest_files=["res://.godot/imported/Dirt Run 3.ogg-66f5e718757adb8a6fd5423f6d4dea1d.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 4.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 4.ogg
new file mode 100644
index 0000000..f0564a5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a0f7f416029a9794c818950e09646d840f4f2f7688a62099d8a2570c5ea61ffa
+size 32148
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 4.ogg.import
new file mode 100644
index 0000000..4ad5a86
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://v6hfvsdemnfu"
+path="res://.godot/imported/Dirt Run 4.ogg-104153d343e45e89d187758b7669c7f3.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 4.ogg"
+dest_files=["res://.godot/imported/Dirt Run 4.ogg-104153d343e45e89d187758b7669c7f3.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 5.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 5.ogg
new file mode 100644
index 0000000..0df56bd
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:92ced17a9e4ce0482a8952b17c5dfb7086f39930f1af45d3c63397d74e3e4eb6
+size 30807
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 5.ogg.import
new file mode 100644
index 0000000..cfa3105
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dcbntoubtq6gh"
+path="res://.godot/imported/Dirt Run 5.ogg-8cf16790c092dd25e80a0df9f747a74e.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Run 5.ogg"
+dest_files=["res://.godot/imported/Dirt Run 5.ogg-8cf16790c092dd25e80a0df9f747a74e.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 1.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 1.ogg
new file mode 100644
index 0000000..daf0573
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:849c2653b3b050fe03f6bc74aa4c5b2b2fa4789382727ef5f6287b36a5e336b9
+size 32690
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 1.ogg.import
new file mode 100644
index 0000000..4492b6a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://holjiymndnnx"
+path="res://.godot/imported/Dirt Walk 1.ogg-390fb000b940b2b767fd2c983db85cbd.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 1.ogg"
+dest_files=["res://.godot/imported/Dirt Walk 1.ogg-390fb000b940b2b767fd2c983db85cbd.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 2.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 2.ogg
new file mode 100644
index 0000000..7471b2d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e9e1ef39fbb25c65e2786e5447f19e4d69fecaf5e371fcad3b71b2bbccc0c1df
+size 33264
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 2.ogg.import
new file mode 100644
index 0000000..4cdc47d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cjn5cq70113o5"
+path="res://.godot/imported/Dirt Walk 2.ogg-b20cf585aedbdac786bbeb51cf85320d.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 2.ogg"
+dest_files=["res://.godot/imported/Dirt Walk 2.ogg-b20cf585aedbdac786bbeb51cf85320d.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 3.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 3.ogg
new file mode 100644
index 0000000..5dd7c34
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:71d757dfce7cf6522cae93b85017ae543ef0fd2b5ac2a6c8d73e59dafa165f37
+size 33912
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 3.ogg.import
new file mode 100644
index 0000000..98acd89
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cltgtohuvjo73"
+path="res://.godot/imported/Dirt Walk 3.ogg-2d01d7147730251926d961f7cd86f32a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 3.ogg"
+dest_files=["res://.godot/imported/Dirt Walk 3.ogg-2d01d7147730251926d961f7cd86f32a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 4.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 4.ogg
new file mode 100644
index 0000000..6b910d9
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:60c09de0f8e5a81479dac382f689351fc3ddc0a35bde2cf60bb15e711d8195a0
+size 32382
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 4.ogg.import
new file mode 100644
index 0000000..50b4638
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://chuh8gjyug4q4"
+path="res://.godot/imported/Dirt Walk 4.ogg-084daaa5ad4b77d9685aa6d60ac415d6.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 4.ogg"
+dest_files=["res://.godot/imported/Dirt Walk 4.ogg-084daaa5ad4b77d9685aa6d60ac415d6.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 5.ogg b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 5.ogg
new file mode 100644
index 0000000..e151a77
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b58bbad082ecd48707811cdfa64e809541897f1d6af99a4a342bf31d21f262a6
+size 33168
diff --git a/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 5.ogg.import
new file mode 100644
index 0000000..eb7367c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c5hftu6xiakse"
+path="res://.godot/imported/Dirt Walk 5.ogg-2bf89124132180b0bf7028fd05063ca2.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Dirt/Dirt Walk 5.ogg"
+dest_files=["res://.godot/imported/Dirt Walk 5.ogg-2bf89124132180b0bf7028fd05063ca2.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/.DS_Store b/assets/audio/OGG/SFX/Footsteps/Stone/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Footsteps/Stone/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Jump.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Jump.ogg
new file mode 100644
index 0000000..ebccf14
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Jump.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:efca5a8ca225867868686a46f8338fe30b8188491dab9a1c3f22f3a39b764682
+size 34183
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Jump.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Jump.ogg.import
new file mode 100644
index 0000000..c353691
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Jump.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cfekodm7fm1lu"
+path="res://.godot/imported/Stone Chain Jump.ogg-c97c667183cfa52983112f5117b0f6a7.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Jump.ogg"
+dest_files=["res://.godot/imported/Stone Chain Jump.ogg-c97c667183cfa52983112f5117b0f6a7.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Land.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Land.ogg
new file mode 100644
index 0000000..0dae5cd
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Land.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f3506f16eb5a78840820828dfe2f7c7adc246b4c101f6bccacabcc18569730b6
+size 29747
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Land.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Land.ogg.import
new file mode 100644
index 0000000..3f97a87
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Land.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b1hgs3y6aw5kc"
+path="res://.godot/imported/Stone Chain Land.ogg-b6425256795208bc3686b8977f463417.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Land.ogg"
+dest_files=["res://.godot/imported/Stone Chain Land.ogg-b6425256795208bc3686b8977f463417.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 1.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 1.ogg
new file mode 100644
index 0000000..f6c5322
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8fb169a005ff40fcc9cc7f56bfc3080b288a65baab33844d577c9521bc4eda01
+size 36014
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 1.ogg.import
new file mode 100644
index 0000000..f28d300
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cepphmyhn2a6q"
+path="res://.godot/imported/Stone Chain Run 1.ogg-d8cfecd62eb074b7bffdcbeaab6d1c99.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 1.ogg"
+dest_files=["res://.godot/imported/Stone Chain Run 1.ogg-d8cfecd62eb074b7bffdcbeaab6d1c99.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 2.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 2.ogg
new file mode 100644
index 0000000..e4e16c9
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5963b07a6654c1b6c2159399bc1ccfa39299b5c82876b3b4ea9272342df7a757
+size 33926
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 2.ogg.import
new file mode 100644
index 0000000..026a3d3
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://j8nw85l4vuxs"
+path="res://.godot/imported/Stone Chain Run 2.ogg-05012bcfa8d3cc9f12a2dbe88784d935.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 2.ogg"
+dest_files=["res://.godot/imported/Stone Chain Run 2.ogg-05012bcfa8d3cc9f12a2dbe88784d935.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 3.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 3.ogg
new file mode 100644
index 0000000..da983c5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:284b2964fbf398c35335efbe1182b354dcda68ff6df6f1398b5b7b2bd8f008f6
+size 35061
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 3.ogg.import
new file mode 100644
index 0000000..c6aba5c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://hra0lrp55tn2"
+path="res://.godot/imported/Stone Chain Run 3.ogg-663a622e16e3152bb4bca50e2e44ad17.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 3.ogg"
+dest_files=["res://.godot/imported/Stone Chain Run 3.ogg-663a622e16e3152bb4bca50e2e44ad17.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 4.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 4.ogg
new file mode 100644
index 0000000..a9b44d4
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7cfd915930ff2a927e0ffa13281c2988b921d8515dc8ffff65b7a37c10b26043
+size 33081
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 4.ogg.import
new file mode 100644
index 0000000..21375dd
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://chwwbfa6yg5vg"
+path="res://.godot/imported/Stone Chain Run 4.ogg-2670e355a6225688a7e5d23b91ecf58e.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 4.ogg"
+dest_files=["res://.godot/imported/Stone Chain Run 4.ogg-2670e355a6225688a7e5d23b91ecf58e.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 5.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 5.ogg
new file mode 100644
index 0000000..33edcd0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fafc122e02a69521fcb39f3114cde87c4cb454a2f4bae216d1c56e81c374aabb
+size 32017
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 5.ogg.import
new file mode 100644
index 0000000..b29c338
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://0x28mno6u6v1"
+path="res://.godot/imported/Stone Chain Run 5.ogg-3e2c1fe47e6e7f6f62c19c5ca49faa04.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Run 5.ogg"
+dest_files=["res://.godot/imported/Stone Chain Run 5.ogg-3e2c1fe47e6e7f6f62c19c5ca49faa04.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 1.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 1.ogg
new file mode 100644
index 0000000..5cb250b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:74622f94b4ff53aa7373b5da0bcb98f7bc36fced397d3b7eeabaa33f5792fe4d
+size 35613
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 1.ogg.import
new file mode 100644
index 0000000..b4a48e9
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dluw1d3tbb3mo"
+path="res://.godot/imported/Stone Chain Walk 1.ogg-d204f95c346c05a8610289d7030c6aa7.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 1.ogg"
+dest_files=["res://.godot/imported/Stone Chain Walk 1.ogg-d204f95c346c05a8610289d7030c6aa7.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 2.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 2.ogg
new file mode 100644
index 0000000..716387b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:686020dff0638a2c02b284742ac67892405221297e6bfee8f69f65180673acb9
+size 33493
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 2.ogg.import
new file mode 100644
index 0000000..0ed569a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://h2eer3y7vbd8"
+path="res://.godot/imported/Stone Chain Walk 2.ogg-a09a37d8ba776f30a415172112ca1244.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 2.ogg"
+dest_files=["res://.godot/imported/Stone Chain Walk 2.ogg-a09a37d8ba776f30a415172112ca1244.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 3.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 3.ogg
new file mode 100644
index 0000000..ba115f2
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4dfa32735daecc245612e26a0fffadf378fffd553f097368dc53d6222f3294b4
+size 34495
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 3.ogg.import
new file mode 100644
index 0000000..d3d89f5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b56ngx0rdom4r"
+path="res://.godot/imported/Stone Chain Walk 3.ogg-308daf319452f0ff099036218f3f0484.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 3.ogg"
+dest_files=["res://.godot/imported/Stone Chain Walk 3.ogg-308daf319452f0ff099036218f3f0484.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 4.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 4.ogg
new file mode 100644
index 0000000..41c2b5a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b49b93d080942046794b53fc81546b3d075f4a2be6ee0cee1556ea97ec37b60b
+size 33396
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 4.ogg.import
new file mode 100644
index 0000000..fc40b5d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dxf5dealqi4ya"
+path="res://.godot/imported/Stone Chain Walk 4.ogg-6842d5f02734df4b43af853e91d51574.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 4.ogg"
+dest_files=["res://.godot/imported/Stone Chain Walk 4.ogg-6842d5f02734df4b43af853e91d51574.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 5.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 5.ogg
new file mode 100644
index 0000000..55cac35
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6af82c41822fe1b689524162b685b41f7502fefa52cfea7350575f24d321c19d
+size 31650
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 5.ogg.import
new file mode 100644
index 0000000..de51148
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dk5ofpuxkbfvj"
+path="res://.godot/imported/Stone Chain Walk 5.ogg-d535b3e23680f3164ba16213c6ad9ca2.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Chain Walk 5.ogg"
+dest_files=["res://.godot/imported/Stone Chain Walk 5.ogg-d535b3e23680f3164ba16213c6ad9ca2.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Jump.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Jump.ogg
new file mode 100644
index 0000000..8fbd58a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Jump.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dfcf89328673277e13b58209af070c857a1375c6adb9aead94f0a34ade512fe8
+size 33765
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Jump.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Jump.ogg.import
new file mode 100644
index 0000000..2e2701c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Jump.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c1fc5v2to4soe"
+path="res://.godot/imported/Stone Jump.ogg-12311cab6906383cf984473cc50814a8.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Jump.ogg"
+dest_files=["res://.godot/imported/Stone Jump.ogg-12311cab6906383cf984473cc50814a8.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Land.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Land.ogg
new file mode 100644
index 0000000..2326e18
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Land.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:14453d210088ee13988e86c1d3d6721e726e97f9c471a4ac3607de012cb7cd88
+size 30535
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Land.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Land.ogg.import
new file mode 100644
index 0000000..b3186a0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Land.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dcoblpenas6e6"
+path="res://.godot/imported/Stone Land.ogg-281aa277d952b08d825807746915ae2a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Land.ogg"
+dest_files=["res://.godot/imported/Stone Land.ogg-281aa277d952b08d825807746915ae2a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 1.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 1.ogg
new file mode 100644
index 0000000..89efc34
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1d855d620989f0bb7aa331b1e8ca997fe1ab27be7cdff2e4c26938c1a9d2868e
+size 32300
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 1.ogg.import
new file mode 100644
index 0000000..5126969
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bmik1u461b8eq"
+path="res://.godot/imported/Stone Run 1.ogg-e3daa4ba50dba17338c5c4464d9a8cb2.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 1.ogg"
+dest_files=["res://.godot/imported/Stone Run 1.ogg-e3daa4ba50dba17338c5c4464d9a8cb2.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 2.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 2.ogg
new file mode 100644
index 0000000..ad0e37a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a2fb21b5a95c00da2499b82259bb47efb30d31bcf5f1c82fa81f904bc3d3159
+size 31577
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 2.ogg.import
new file mode 100644
index 0000000..8e2bde3
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bmx51tgamgnkd"
+path="res://.godot/imported/Stone Run 2.ogg-6f5bfead19ffd202767161d24e23158c.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 2.ogg"
+dest_files=["res://.godot/imported/Stone Run 2.ogg-6f5bfead19ffd202767161d24e23158c.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 3.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 3.ogg
new file mode 100644
index 0000000..8f7a3e5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3967718ec3cfe513f08a519649200d9354b8f68a5a125bf0f0beaaa57ad0c31b
+size 31983
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 3.ogg.import
new file mode 100644
index 0000000..775b909
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://derbtjs7ifx57"
+path="res://.godot/imported/Stone Run 3.ogg-284e5e3d790efaa3c4ffe73c37f21c91.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 3.ogg"
+dest_files=["res://.godot/imported/Stone Run 3.ogg-284e5e3d790efaa3c4ffe73c37f21c91.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 4.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 4.ogg
new file mode 100644
index 0000000..2cd3f56
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2384d4e3986393a5add2a62dc0084c5dae2d89689c0703e676d5c179e5c07737
+size 31456
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 4.ogg.import
new file mode 100644
index 0000000..620af80
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cdxw8ijrwmhjx"
+path="res://.godot/imported/Stone Run 4.ogg-6c5c0df4d9ec0f79349c8ae00655d36f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 4.ogg"
+dest_files=["res://.godot/imported/Stone Run 4.ogg-6c5c0df4d9ec0f79349c8ae00655d36f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 5.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 5.ogg
new file mode 100644
index 0000000..490ae5d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb756f8ae7a427a39d364ff4fc286455fb43c95bd92fbeaae8dc23c4a73dc4ab
+size 30939
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 5.ogg.import
new file mode 100644
index 0000000..c39d87f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c8ljqu46sd002"
+path="res://.godot/imported/Stone Run 5.ogg-d6c2814cb9ac76a3d8f292c499b3b345.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Run 5.ogg"
+dest_files=["res://.godot/imported/Stone Run 5.ogg-d6c2814cb9ac76a3d8f292c499b3b345.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 1.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 1.ogg
new file mode 100644
index 0000000..2250630
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5bb86144040a681a6a13968d75226851f001ec314767ed07ac1905c758609f6c
+size 32417
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 1.ogg.import
new file mode 100644
index 0000000..68bb2f8
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://hu2prwfl8qc2"
+path="res://.godot/imported/Stone Walk 1.ogg-24907a32c37256b6bd9aa20829009ba1.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 1.ogg"
+dest_files=["res://.godot/imported/Stone Walk 1.ogg-24907a32c37256b6bd9aa20829009ba1.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 2.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 2.ogg
new file mode 100644
index 0000000..f846dc8
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d9873321b1bc566f24d178be62952359c984f98ccb4ab69fda3278b8ec93d58a
+size 32171
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 2.ogg.import
new file mode 100644
index 0000000..c74b521
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dowxhs6cqrtmb"
+path="res://.godot/imported/Stone Walk 2.ogg-0b0d1b54ec9eee5157cd3b03660b26d4.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 2.ogg"
+dest_files=["res://.godot/imported/Stone Walk 2.ogg-0b0d1b54ec9eee5157cd3b03660b26d4.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 3.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 3.ogg
new file mode 100644
index 0000000..f055660
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:157aa165b94daf13d1690fa4c2539794114c2c13c7b0afe2392022abc06a348d
+size 32333
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 3.ogg.import
new file mode 100644
index 0000000..953d955
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://d3b3c8adgpoic"
+path="res://.godot/imported/Stone Walk 3.ogg-a3e76d623c4f39b6c7a8ed7550bde1f0.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 3.ogg"
+dest_files=["res://.godot/imported/Stone Walk 3.ogg-a3e76d623c4f39b6c7a8ed7550bde1f0.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 4.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 4.ogg
new file mode 100644
index 0000000..b01ff96
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4306f9eb858ff382681d3cac12e8376a7ab05d0bd5fc68dcb935924fafdb779d
+size 31474
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 4.ogg.import
new file mode 100644
index 0000000..a91a204
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b87cklb53ogg3"
+path="res://.godot/imported/Stone Walk 4.ogg-15fa13f43e0755f0be02390804dcbf3a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 4.ogg"
+dest_files=["res://.godot/imported/Stone Walk 4.ogg-15fa13f43e0755f0be02390804dcbf3a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 5.ogg b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 5.ogg
new file mode 100644
index 0000000..eff70e2
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f91f24bc4fdb0d774ff4c918583a0b73cc5ec92f2e29506c7d3e4f4ae6e3ac27
+size 31038
diff --git a/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 5.ogg.import
new file mode 100644
index 0000000..1a2fb0d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dppy63vj2hcd8"
+path="res://.godot/imported/Stone Walk 5.ogg-9371487463b85e354dfecc2ea34fea4f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Stone/Stone Walk 5.ogg"
+dest_files=["res://.godot/imported/Stone Walk 5.ogg-9371487463b85e354dfecc2ea34fea4f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/.DS_Store b/assets/audio/OGG/SFX/Footsteps/Water/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Footsteps/Water/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Jump.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Jump.ogg
new file mode 100644
index 0000000..ad38e93
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Jump.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:590a67ea7576d8b5c0be8408b66fd53b6c6831c1435af68694bcdd0ca34b4561
+size 34568
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Jump.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Jump.ogg.import
new file mode 100644
index 0000000..50fe566
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Jump.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cccpoltk5cvuh"
+path="res://.godot/imported/Water Chain Jump.ogg-19d9c06cd96cd18387d2509f9f7ebdc8.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Jump.ogg"
+dest_files=["res://.godot/imported/Water Chain Jump.ogg-19d9c06cd96cd18387d2509f9f7ebdc8.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Land.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Land.ogg
new file mode 100644
index 0000000..ace09ee
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Land.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6158ec5122f0208a7964889491f90c36415e225252800f5de9c81c516e456d7b
+size 29843
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Land.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Land.ogg.import
new file mode 100644
index 0000000..b4a021c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Land.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bg1xy13piatue"
+path="res://.godot/imported/Water Chain Land.ogg-f273fdfc67a0ebab0e51b3737b5e9392.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Land.ogg"
+dest_files=["res://.godot/imported/Water Chain Land.ogg-f273fdfc67a0ebab0e51b3737b5e9392.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 1.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 1.ogg
new file mode 100644
index 0000000..64ef6a6
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cdba4fd8df3ff92ce5878144daa2605eb76715afc1fd37cd457004a3853332dd
+size 36185
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 1.ogg.import
new file mode 100644
index 0000000..131ee57
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dnyf8b4vaoq1b"
+path="res://.godot/imported/Water Chain Run 1.ogg-cf1d2b48cd763a9c029c8964c37f4d96.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 1.ogg"
+dest_files=["res://.godot/imported/Water Chain Run 1.ogg-cf1d2b48cd763a9c029c8964c37f4d96.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 2.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 2.ogg
new file mode 100644
index 0000000..b325acd
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:50820e98cf04b89efb2e17b16623c76fc54709cbf6f7e913d5bbc52443676403
+size 34078
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 2.ogg.import
new file mode 100644
index 0000000..ffa31f9
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bfloruykvu06i"
+path="res://.godot/imported/Water Chain Run 2.ogg-ac9e44a33071f7eb8b1e96d919bbf583.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 2.ogg"
+dest_files=["res://.godot/imported/Water Chain Run 2.ogg-ac9e44a33071f7eb8b1e96d919bbf583.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 3.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 3.ogg
new file mode 100644
index 0000000..44ba98a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bf54eed2fa3473d39baa614a7f77a5d79bea119710e35c9a5eceecb89714bb5e
+size 35536
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 3.ogg.import
new file mode 100644
index 0000000..44908dd
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://d4mokcharc10e"
+path="res://.godot/imported/Water Chain Run 3.ogg-236364ab1b70dd6879a23ee061e31242.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 3.ogg"
+dest_files=["res://.godot/imported/Water Chain Run 3.ogg-236364ab1b70dd6879a23ee061e31242.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 4.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 4.ogg
new file mode 100644
index 0000000..3122705
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:14a51ceb200c8abd87c9c1644b74e989c3c033e7742b5cf187487b7d4d1dc9f5
+size 33670
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 4.ogg.import
new file mode 100644
index 0000000..53f4dfb
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dyhuryqkb1qet"
+path="res://.godot/imported/Water Chain Run 4.ogg-0faad09ddf6e7e05bb19f90455d1336e.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 4.ogg"
+dest_files=["res://.godot/imported/Water Chain Run 4.ogg-0faad09ddf6e7e05bb19f90455d1336e.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 5.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 5.ogg
new file mode 100644
index 0000000..c40e1de
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:00f8edb5bbbc20f5a78b4ba323aee26790b02c3e106a05a0092207e6e185d0f7
+size 32571
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 5.ogg.import
new file mode 100644
index 0000000..20c1781
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dta2yhyay33e2"
+path="res://.godot/imported/Water Chain Run 5.ogg-04b4242da96c95e4aa64843fc514ab31.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Run 5.ogg"
+dest_files=["res://.godot/imported/Water Chain Run 5.ogg-04b4242da96c95e4aa64843fc514ab31.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 1.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 1.ogg
new file mode 100644
index 0000000..58f9b8c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:16c6885183a6da70cf625f09de7dafad8110cb3fc7a451c023b11d9e7099979e
+size 36382
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 1.ogg.import
new file mode 100644
index 0000000..f05f98d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dcsy0542g7lf4"
+path="res://.godot/imported/Water Chain Walk 1.ogg-6ef46a8f0e2b68bdd8d4fdf287c73bd0.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 1.ogg"
+dest_files=["res://.godot/imported/Water Chain Walk 1.ogg-6ef46a8f0e2b68bdd8d4fdf287c73bd0.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 2.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 2.ogg
new file mode 100644
index 0000000..4d8409c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fbb8853f05cd09467d0ef62f2907bfd6cea5d1cd52d300315c4e41c66b95e930
+size 34459
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 2.ogg.import
new file mode 100644
index 0000000..350830e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dd55ai1r2rvov"
+path="res://.godot/imported/Water Chain Walk 2.ogg-3157307b7c91b5a100456c5953459bdb.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 2.ogg"
+dest_files=["res://.godot/imported/Water Chain Walk 2.ogg-3157307b7c91b5a100456c5953459bdb.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 3.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 3.ogg
new file mode 100644
index 0000000..f413c66
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:79706c016b78ae9d22c7b6dcfe9c857451821021b2ada09a219a659af831ecb3
+size 36240
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 3.ogg.import
new file mode 100644
index 0000000..d970df0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bwflxc083h7bx"
+path="res://.godot/imported/Water Chain Walk 3.ogg-e0c7d5976089a7528ca9b25efa771560.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 3.ogg"
+dest_files=["res://.godot/imported/Water Chain Walk 3.ogg-e0c7d5976089a7528ca9b25efa771560.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 4.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 4.ogg
new file mode 100644
index 0000000..1a30f4e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:50309577c653e99835853353b49691175eecc319540f5f7852b09c679b338d00
+size 34060
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 4.ogg.import
new file mode 100644
index 0000000..2b30a45
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cuxxl5jnf64kv"
+path="res://.godot/imported/Water Chain Walk 4.ogg-907e2c4dfdba7d66b33df74b01b167d9.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 4.ogg"
+dest_files=["res://.godot/imported/Water Chain Walk 4.ogg-907e2c4dfdba7d66b33df74b01b167d9.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 5.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 5.ogg
new file mode 100644
index 0000000..3643673
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6aca49a36a4d7c0f388a3d1e95f45c9336690762df18959b1df642168bfe52b1
+size 33928
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 5.ogg.import
new file mode 100644
index 0000000..ae30c6a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://np30g7e07wd4"
+path="res://.godot/imported/Water Chain Walk 5.ogg-cec69780fcbbd231c59c8f0de172bca8.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Chain Walk 5.ogg"
+dest_files=["res://.godot/imported/Water Chain Walk 5.ogg-cec69780fcbbd231c59c8f0de172bca8.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Jump.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Jump.ogg
new file mode 100644
index 0000000..2fffd11
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Jump.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6f481dc0e86717a6bc39f6c2c34d204c58779a02665e950e919bff754850c1e9
+size 34273
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Jump.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Jump.ogg.import
new file mode 100644
index 0000000..c616fd6
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Jump.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://br2sc057u6qpo"
+path="res://.godot/imported/Water Jump.ogg-f06594a465b6d1535f216770b40b55bc.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Jump.ogg"
+dest_files=["res://.godot/imported/Water Jump.ogg-f06594a465b6d1535f216770b40b55bc.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Land.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Land.ogg
new file mode 100644
index 0000000..9ad5adc
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Land.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:13f9c12b99fbedffb70a2ce14f2ac334702e6ace72bcd2fba830577b55972396
+size 31719
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Land.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Land.ogg.import
new file mode 100644
index 0000000..94a1e77
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Land.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://o5lqmse856n8"
+path="res://.godot/imported/Water Land.ogg-d730df1a890368d3bdbf5c0e5e33ba54.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Land.ogg"
+dest_files=["res://.godot/imported/Water Land.ogg-d730df1a890368d3bdbf5c0e5e33ba54.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Run 1.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 1.ogg
new file mode 100644
index 0000000..cf9a24e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dcc55b95914c6b3c54faa6b67b8bd388fed69b4652c19fc5294ca7585f4caef9
+size 31671
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Run 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 1.ogg.import
new file mode 100644
index 0000000..8174cd9
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://o8kx3smodrpy"
+path="res://.godot/imported/Water Run 1.ogg-906aa6975f91362d9b4c6e72967648c6.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Run 1.ogg"
+dest_files=["res://.godot/imported/Water Run 1.ogg-906aa6975f91362d9b4c6e72967648c6.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Run 2.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 2.ogg
new file mode 100644
index 0000000..f38e76c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8d090462386720c54cdefae3ef052dca06b8b4bbaf5be0811b6600e2ebcea0a9
+size 31269
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Run 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 2.ogg.import
new file mode 100644
index 0000000..f810aeb
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://csgb65mwutdrl"
+path="res://.godot/imported/Water Run 2.ogg-a60dc92ba53f682ab5b8e0cb618284d8.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Run 2.ogg"
+dest_files=["res://.godot/imported/Water Run 2.ogg-a60dc92ba53f682ab5b8e0cb618284d8.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Run 3.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 3.ogg
new file mode 100644
index 0000000..77751d9
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4d7394aa0e4a1ab5c4cca00271ae72e88e12e6dcddad6718c55b6bf5ffeece47
+size 33021
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Run 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 3.ogg.import
new file mode 100644
index 0000000..477bb84
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cui0eamhctkrv"
+path="res://.godot/imported/Water Run 3.ogg-e75674b46033652cf8b9edbb4055de51.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Run 3.ogg"
+dest_files=["res://.godot/imported/Water Run 3.ogg-e75674b46033652cf8b9edbb4055de51.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Run 4.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 4.ogg
new file mode 100644
index 0000000..1757733
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1164337026160ed6fbf86e1b9cda52de5800a6f95f5e459b8c587a90b1610e53
+size 32447
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Run 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 4.ogg.import
new file mode 100644
index 0000000..aa193d5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://mg5rhkadyw4x"
+path="res://.godot/imported/Water Run 4.ogg-1ab225eb70e794549c2780e3e1dc3d7e.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Run 4.ogg"
+dest_files=["res://.godot/imported/Water Run 4.ogg-1ab225eb70e794549c2780e3e1dc3d7e.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Run 5.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 5.ogg
new file mode 100644
index 0000000..39333e5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:241c13b82bf8f87cb187c7a2460e5f6af05890c7ab05ab7ab059d7436ae92a46
+size 30851
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Run 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 5.ogg.import
new file mode 100644
index 0000000..7b1cc59
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Run 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://w0aasj4kvgi1"
+path="res://.godot/imported/Water Run 5.ogg-65de9354b13a5bb7eea16ce2b7a5432b.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Run 5.ogg"
+dest_files=["res://.godot/imported/Water Run 5.ogg-65de9354b13a5bb7eea16ce2b7a5432b.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 1.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 1.ogg
new file mode 100644
index 0000000..b9f20b9
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f979e5b048999f45b660206661b48e0bd8e6096329dac97c8927a1c0bbd4e834
+size 33363
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 1.ogg.import
new file mode 100644
index 0000000..8ebc05b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dldxvslx43uvm"
+path="res://.godot/imported/Water Walk 1.ogg-804b0544a554b62f3831e82bf28b2889.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Walk 1.ogg"
+dest_files=["res://.godot/imported/Water Walk 1.ogg-804b0544a554b62f3831e82bf28b2889.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 2.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 2.ogg
new file mode 100644
index 0000000..c19f6df
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:74c4c8ff4e0b1d347ca688df509f8cb707759bad0503d27999c65c3d5bad17f3
+size 31916
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 2.ogg.import
new file mode 100644
index 0000000..9700a8b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ddqpdqdsy0gxa"
+path="res://.godot/imported/Water Walk 2.ogg-028242da05f572cad9f69e1340a34516.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Walk 2.ogg"
+dest_files=["res://.godot/imported/Water Walk 2.ogg-028242da05f572cad9f69e1340a34516.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 3.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 3.ogg
new file mode 100644
index 0000000..f39b893
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f331b6e1e6ee3b19c8068752e28cbb92b47885ee046d4231199d32033afcc663
+size 33660
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 3.ogg.import
new file mode 100644
index 0000000..ce39246
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://do1rns6a01sks"
+path="res://.godot/imported/Water Walk 3.ogg-7a18adbb1bacd0fc37dfb580c9d6e2f9.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Walk 3.ogg"
+dest_files=["res://.godot/imported/Water Walk 3.ogg-7a18adbb1bacd0fc37dfb580c9d6e2f9.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 4.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 4.ogg
new file mode 100644
index 0000000..6369ac4
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a5f54959fad30a48cfc9f87626cc9cc6e2dfc30715e7f1e7187a5b4c36b2ca87
+size 32395
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 4.ogg.import
new file mode 100644
index 0000000..43d0f65
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://jjy4naaisgkd"
+path="res://.godot/imported/Water Walk 4.ogg-b17a3d53d1a8c475c2987ebdfea03438.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Walk 4.ogg"
+dest_files=["res://.godot/imported/Water Walk 4.ogg-b17a3d53d1a8c475c2987ebdfea03438.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 5.ogg b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 5.ogg
new file mode 100644
index 0000000..1e601d0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b25b8d87349aaa919017160900b8afe93e8cf446c5f3fe96cc71ebe14db960b
+size 32959
diff --git a/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 5.ogg.import
new file mode 100644
index 0000000..41cfc72
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Water/Water Walk 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://setrh2bwinrq"
+path="res://.godot/imported/Water Walk 5.ogg-6266afcf30ebce8e83106e38d33b32b8.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Water/Water Walk 5.ogg"
+dest_files=["res://.godot/imported/Water Walk 5.ogg-6266afcf30ebce8e83106e38d33b32b8.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/.DS_Store b/assets/audio/OGG/SFX/Footsteps/Wood/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Footsteps/Wood/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Jump.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Jump.ogg
new file mode 100644
index 0000000..4402319
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Jump.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4fe4bcc4b4a26f2129a0a66d85215de97d2d763d4096a24de71755bb1ea956a3
+size 31656
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Jump.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Jump.ogg.import
new file mode 100644
index 0000000..90a688a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Jump.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://db64hn55oui1u"
+path="res://.godot/imported/Wood Chain Jump.ogg-cbee316cdfbf3e7a064a2d7c24d87958.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Jump.ogg"
+dest_files=["res://.godot/imported/Wood Chain Jump.ogg-cbee316cdfbf3e7a064a2d7c24d87958.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Land.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Land.ogg
new file mode 100644
index 0000000..56b423f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Land.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:05f74817f5df6e1cfff13770e9aa0e5ec0eea15e9a1ed1f77d6e2dc10bd094ba
+size 29386
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Land.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Land.ogg.import
new file mode 100644
index 0000000..763914b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Land.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bd7fhwx5u3fel"
+path="res://.godot/imported/Wood Chain Land.ogg-df4c1f6aaee8fdebb3970cba22d864a1.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Land.ogg"
+dest_files=["res://.godot/imported/Wood Chain Land.ogg-df4c1f6aaee8fdebb3970cba22d864a1.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 1.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 1.ogg
new file mode 100644
index 0000000..ffa8e4e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf8ddb3185da77690ec541690b459fb640a40759ba147d6efb181676c140ccf2
+size 35193
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 1.ogg.import
new file mode 100644
index 0000000..908ef94
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://g0tdmekorv6o"
+path="res://.godot/imported/Wood Chain Run 1.ogg-c8e3f011d960f0d20541b05fe75b7166.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 1.ogg"
+dest_files=["res://.godot/imported/Wood Chain Run 1.ogg-c8e3f011d960f0d20541b05fe75b7166.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 2.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 2.ogg
new file mode 100644
index 0000000..c95ad79
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57b1d20d0b91459cf87d3c87fcd1f5101acece9c8bedd134a0b93c677284761e
+size 33377
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 2.ogg.import
new file mode 100644
index 0000000..1716443
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dqb5qu2sp7lvu"
+path="res://.godot/imported/Wood Chain Run 2.ogg-98ce9cd892bec13ae62fc9f843c0e2bd.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 2.ogg"
+dest_files=["res://.godot/imported/Wood Chain Run 2.ogg-98ce9cd892bec13ae62fc9f843c0e2bd.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 3.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 3.ogg
new file mode 100644
index 0000000..f6d2389
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0b16fa1a9b3c1793b84ccc9fe170263ae224a4e4c54ba1d0c27a4f3c479fc57e
+size 34571
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 3.ogg.import
new file mode 100644
index 0000000..dd311d5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cykf5pj132qbw"
+path="res://.godot/imported/Wood Chain Run 3.ogg-694075f74206eb10107f8319f9b85470.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 3.ogg"
+dest_files=["res://.godot/imported/Wood Chain Run 3.ogg-694075f74206eb10107f8319f9b85470.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 4.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 4.ogg
new file mode 100644
index 0000000..32e0ffa
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9a01b257b7e2f97f94b3d62fa04cc3f77e7ebfdba13f76eba7aea742fb167047
+size 33676
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 4.ogg.import
new file mode 100644
index 0000000..47f4cc1
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cv688ke58f2fa"
+path="res://.godot/imported/Wood Chain Run 4.ogg-ec4dd039bb55f5059b27a2e29f04e252.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 4.ogg"
+dest_files=["res://.godot/imported/Wood Chain Run 4.ogg-ec4dd039bb55f5059b27a2e29f04e252.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 5.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 5.ogg
new file mode 100644
index 0000000..a844df0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:faac36101e4538ce5c4b227274f535072701d358b1647bbfafc71200d3a2f57d
+size 31771
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 5.ogg.import
new file mode 100644
index 0000000..9937e4c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bs7e83pi8weof"
+path="res://.godot/imported/Wood Chain Run 5.ogg-d792d211afcb351a8a38799854933118.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Run 5.ogg"
+dest_files=["res://.godot/imported/Wood Chain Run 5.ogg-d792d211afcb351a8a38799854933118.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 1.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 1.ogg
new file mode 100644
index 0000000..60389f8
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:532dd16744595a5ec02feda740254c2a5b075ce50546f510b94244919577efe8
+size 35632
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 1.ogg.import
new file mode 100644
index 0000000..34b94ec
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dglf4w5mp0dbk"
+path="res://.godot/imported/Wood Chain Walk 1.ogg-af26d21c4895143a8357ad6f9071314a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 1.ogg"
+dest_files=["res://.godot/imported/Wood Chain Walk 1.ogg-af26d21c4895143a8357ad6f9071314a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 2.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 2.ogg
new file mode 100644
index 0000000..423cb0c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:20e9b6e2d5085a423b48394cf89255d4d79725e2cb4b5df1dafb5d4dd418e12e
+size 34084
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 2.ogg.import
new file mode 100644
index 0000000..0d043af
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bhhfq2smckojs"
+path="res://.godot/imported/Wood Chain Walk 2.ogg-f9ed86f1b676fbcb2a4121704e41377c.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 2.ogg"
+dest_files=["res://.godot/imported/Wood Chain Walk 2.ogg-f9ed86f1b676fbcb2a4121704e41377c.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 3.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 3.ogg
new file mode 100644
index 0000000..645eb9f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8bfd0b29bb7e62575f551075f80fa5a9a664cfc3b2ff5addc089315e7dc85f76
+size 34784
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 3.ogg.import
new file mode 100644
index 0000000..ecfc7f5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://fef6htm5m4xk"
+path="res://.godot/imported/Wood Chain Walk 3.ogg-240c360c8e3e2cbd38773bae071714e7.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 3.ogg"
+dest_files=["res://.godot/imported/Wood Chain Walk 3.ogg-240c360c8e3e2cbd38773bae071714e7.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 4.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 4.ogg
new file mode 100644
index 0000000..dc180ca
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bdb0071cac8961cc08eda1ca781c97824662be56a96616fa63ae7916e5786a91
+size 33261
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 4.ogg.import
new file mode 100644
index 0000000..ed7f407
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cn5o3f8kmxuls"
+path="res://.godot/imported/Wood Chain Walk 4.ogg-3b68851d06080f3f17ea7aca88855ffd.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 4.ogg"
+dest_files=["res://.godot/imported/Wood Chain Walk 4.ogg-3b68851d06080f3f17ea7aca88855ffd.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 5.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 5.ogg
new file mode 100644
index 0000000..00fcc92
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:993448b99990f6cbfc4022331ea38b993b79a777cc2122cbb77b36c07e00467e
+size 31836
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 5.ogg.import
new file mode 100644
index 0000000..05acbc4
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c6u7v2ieyaaig"
+path="res://.godot/imported/Wood Chain Walk 5.ogg-aaf9afff2a3d375a44dd9a307a693bfe.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Chain Walk 5.ogg"
+dest_files=["res://.godot/imported/Wood Chain Walk 5.ogg-aaf9afff2a3d375a44dd9a307a693bfe.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Jump.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Jump.ogg
new file mode 100644
index 0000000..dd67116
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Jump.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d217355a233528e2a11b10a4c4c1fc2597078abab09897fadd742775d98bf53a
+size 31401
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Jump.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Jump.ogg.import
new file mode 100644
index 0000000..424a91e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Jump.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dbdb64nbkfxy0"
+path="res://.godot/imported/Wood Jump.ogg-3ede55ca20a478e90e6c22551534318a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Jump.ogg"
+dest_files=["res://.godot/imported/Wood Jump.ogg-3ede55ca20a478e90e6c22551534318a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Land.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Land.ogg
new file mode 100644
index 0000000..f171f34
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Land.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5e157d4020f9cc9dd48b77081da683b49610128b9633f59022818e2355e3dfd9
+size 30229
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Land.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Land.ogg.import
new file mode 100644
index 0000000..2cf2fbb
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Land.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://djg37shrdnk1s"
+path="res://.godot/imported/Wood Land.ogg-e7fc92215239fefbc2db48cdfb8bec5a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Land.ogg"
+dest_files=["res://.godot/imported/Wood Land.ogg-e7fc92215239fefbc2db48cdfb8bec5a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 1.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 1.ogg
new file mode 100644
index 0000000..6e4e5d9
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6292957c2e3c62e829d27710f9efe5268af8ea1942c34d0c6b4f6c6125cc10e0
+size 32665
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 1.ogg.import
new file mode 100644
index 0000000..49173e9
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cpk4ewa1c1nvi"
+path="res://.godot/imported/Wood Run 1.ogg-bf69ec9a2010f846a4a6d0317fade56d.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 1.ogg"
+dest_files=["res://.godot/imported/Wood Run 1.ogg-bf69ec9a2010f846a4a6d0317fade56d.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 2.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 2.ogg
new file mode 100644
index 0000000..b4e064b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c3fb8f5c55358b1bad1104f62ee2ddd97d78fd2d633c125f77e0e0d2650d16d8
+size 30948
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 2.ogg.import
new file mode 100644
index 0000000..71d90d4
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://d0f18fkm2aqcw"
+path="res://.godot/imported/Wood Run 2.ogg-472053da1bea18595010f49188a7286d.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 2.ogg"
+dest_files=["res://.godot/imported/Wood Run 2.ogg-472053da1bea18595010f49188a7286d.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 3.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 3.ogg
new file mode 100644
index 0000000..7d883e3
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c267819468663703c50d701a97cbaf250ab5b1a95cee206a7fbea6f166df079d
+size 32091
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 3.ogg.import
new file mode 100644
index 0000000..51effc1
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://k186hae04dvm"
+path="res://.godot/imported/Wood Run 3.ogg-72f637224e5b156d3ab052e3a70ce03a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 3.ogg"
+dest_files=["res://.godot/imported/Wood Run 3.ogg-72f637224e5b156d3ab052e3a70ce03a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 4.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 4.ogg
new file mode 100644
index 0000000..1c9f0f3
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1ae654d77bdd86e95e158775ccb66aa1f0fca408a74599a9d5df3eff479a1a0a
+size 31208
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 4.ogg.import
new file mode 100644
index 0000000..7eb5ff8
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dhglx2qd4rwn0"
+path="res://.godot/imported/Wood Run 4.ogg-5ea38c284cd9cd4c1a7a478bb19c547d.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 4.ogg"
+dest_files=["res://.godot/imported/Wood Run 4.ogg-5ea38c284cd9cd4c1a7a478bb19c547d.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 5.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 5.ogg
new file mode 100644
index 0000000..488a070
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0d3e647d2b808d2cce8d7632ac969bcad44eb4a652b45b35e4b97aa8aaa688db
+size 30628
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 5.ogg.import
new file mode 100644
index 0000000..1a0f608
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://byxmixpcxbhan"
+path="res://.godot/imported/Wood Run 5.ogg-54491801b296f35f4be5633eb40833c0.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Run 5.ogg"
+dest_files=["res://.godot/imported/Wood Run 5.ogg-54491801b296f35f4be5633eb40833c0.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 1.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 1.ogg
new file mode 100644
index 0000000..00ac75c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ede239ecd9fdbdcad6af8b56f687743903801459d133479df84c539f9b55c268
+size 32350
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 1.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 1.ogg.import
new file mode 100644
index 0000000..605f0f4
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cb2iwcge5v84k"
+path="res://.godot/imported/Wood Walk 1.ogg-7a26ee71ab0fb389124cba7bc1238b7a.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 1.ogg"
+dest_files=["res://.godot/imported/Wood Walk 1.ogg-7a26ee71ab0fb389124cba7bc1238b7a.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 2.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 2.ogg
new file mode 100644
index 0000000..66f9fec
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:92277baab52115931b9d44ba32dbdbe31948c6f80857fd16da7fa8f334e2a527
+size 31470
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 2.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 2.ogg.import
new file mode 100644
index 0000000..9ac6448
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cc4ofo101x2a1"
+path="res://.godot/imported/Wood Walk 2.ogg-7c59037c23303e4d1e32286228a9b7f8.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 2.ogg"
+dest_files=["res://.godot/imported/Wood Walk 2.ogg-7c59037c23303e4d1e32286228a9b7f8.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 3.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 3.ogg
new file mode 100644
index 0000000..f4d2bf7
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9f43287f385df0cfd0e86e6962b68e4c78e61fcd58bbca7748846a9672292b44
+size 31695
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 3.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 3.ogg.import
new file mode 100644
index 0000000..0ec49cc
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://wnpxf0b7ce1p"
+path="res://.godot/imported/Wood Walk 3.ogg-18c560db38145467fde0138d79a46b5f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 3.ogg"
+dest_files=["res://.godot/imported/Wood Walk 3.ogg-18c560db38145467fde0138d79a46b5f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 4.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 4.ogg
new file mode 100644
index 0000000..a1588f6
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 4.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:76054aaedca948b613490ff48085f33cbb148f85b374a626b1d6b129d5d5979e
+size 31370
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 4.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 4.ogg.import
new file mode 100644
index 0000000..2a0fdcf
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 4.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cysl4kihafoct"
+path="res://.godot/imported/Wood Walk 4.ogg-504ddbfaf10a40160c9c6425e3db7345.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 4.ogg"
+dest_files=["res://.godot/imported/Wood Walk 4.ogg-504ddbfaf10a40160c9c6425e3db7345.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 5.ogg b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 5.ogg
new file mode 100644
index 0000000..7bbec4a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 5.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:87e63f2fa194e56d0c9d6f2f71b5cfd2039464fe663b02585ca458d00e5a0151
+size 31388
diff --git a/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 5.ogg.import b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 5.ogg.import
new file mode 100644
index 0000000..9d700b3
--- /dev/null
+++ b/assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 5.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://6pmvn4q3gxxm"
+path="res://.godot/imported/Wood Walk 5.ogg-cc9b53e3e61f126db01ba795613d4b1c.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Footsteps/Wood/Wood Walk 5.ogg"
+dest_files=["res://.godot/imported/Wood Walk 5.ogg-cc9b53e3e61f126db01ba795613d4b1c.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/.DS_Store b/assets/audio/OGG/SFX/Spells/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Spells/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Spells/Fireball 1.ogg b/assets/audio/OGG/SFX/Spells/Fireball 1.ogg
new file mode 100644
index 0000000..4528c7e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Fireball 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7b515ce1c85396b7ebabb9dc9876e892a0f642c8d696cf03aa69aa83cb6f30d3
+size 82297
diff --git a/assets/audio/OGG/SFX/Spells/Fireball 1.ogg.import b/assets/audio/OGG/SFX/Spells/Fireball 1.ogg.import
new file mode 100644
index 0000000..1cc326b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Fireball 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dgtdearobp041"
+path="res://.godot/imported/Fireball 1.ogg-15f34d255af147c4ecbf012341a83bf9.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Fireball 1.ogg"
+dest_files=["res://.godot/imported/Fireball 1.ogg-15f34d255af147c4ecbf012341a83bf9.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Fireball 2.ogg b/assets/audio/OGG/SFX/Spells/Fireball 2.ogg
new file mode 100644
index 0000000..b608291
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Fireball 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e587c4fab796fcfcc190cb10a71384c506b19718aebcda50282712ba88b6a57c
+size 72596
diff --git a/assets/audio/OGG/SFX/Spells/Fireball 2.ogg.import b/assets/audio/OGG/SFX/Spells/Fireball 2.ogg.import
new file mode 100644
index 0000000..c5c0883
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Fireball 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://1ds38fko04en"
+path="res://.godot/imported/Fireball 2.ogg-9f3390deb25ecdedcd58a79d3aca717d.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Fireball 2.ogg"
+dest_files=["res://.godot/imported/Fireball 2.ogg-9f3390deb25ecdedcd58a79d3aca717d.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Fireball 3.ogg b/assets/audio/OGG/SFX/Spells/Fireball 3.ogg
new file mode 100644
index 0000000..1c4702e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Fireball 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:23180e96b24cc62213ff3b901936a69653ed7117f644a0b337d5067aa009865e
+size 75623
diff --git a/assets/audio/OGG/SFX/Spells/Fireball 3.ogg.import b/assets/audio/OGG/SFX/Spells/Fireball 3.ogg.import
new file mode 100644
index 0000000..f3384f0
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Fireball 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://wosh3xgvxded"
+path="res://.godot/imported/Fireball 3.ogg-ba53d547daca61732420d4cc97ebc38f.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Fireball 3.ogg"
+dest_files=["res://.godot/imported/Fireball 3.ogg-ba53d547daca61732420d4cc97ebc38f.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Firebuff 1.ogg b/assets/audio/OGG/SFX/Spells/Firebuff 1.ogg
new file mode 100644
index 0000000..e485dfc
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Firebuff 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f3c74c7f05440b1501471a878827c9c6bf1e0c849fe939e8165404ea520bf313
+size 88534
diff --git a/assets/audio/OGG/SFX/Spells/Firebuff 1.ogg.import b/assets/audio/OGG/SFX/Spells/Firebuff 1.ogg.import
new file mode 100644
index 0000000..ee7889c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Firebuff 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bvrp3egbqvh7r"
+path="res://.godot/imported/Firebuff 1.ogg-094f4d7145470e1b157806faebeb0596.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Firebuff 1.ogg"
+dest_files=["res://.godot/imported/Firebuff 1.ogg-094f4d7145470e1b157806faebeb0596.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Firebuff 2.ogg b/assets/audio/OGG/SFX/Spells/Firebuff 2.ogg
new file mode 100644
index 0000000..7e329b1
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Firebuff 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d45dc70fa2872b8bb4a3698ec2a5610abaafcf4abc47bad371c00e356b4c46b4
+size 67053
diff --git a/assets/audio/OGG/SFX/Spells/Firebuff 2.ogg.import b/assets/audio/OGG/SFX/Spells/Firebuff 2.ogg.import
new file mode 100644
index 0000000..a935eec
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Firebuff 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cppqp7kpd025s"
+path="res://.godot/imported/Firebuff 2.ogg-4b0532e2a6003df9532c206de32b656e.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Firebuff 2.ogg"
+dest_files=["res://.godot/imported/Firebuff 2.ogg-4b0532e2a6003df9532c206de32b656e.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Firespray 1.ogg b/assets/audio/OGG/SFX/Spells/Firespray 1.ogg
new file mode 100644
index 0000000..4bf1687
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Firespray 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d5ef69b516d4c0e9af711f99dc4cb5d8731155a2b81f9ef5dc67c2b394e0167a
+size 134947
diff --git a/assets/audio/OGG/SFX/Spells/Firespray 1.ogg.import b/assets/audio/OGG/SFX/Spells/Firespray 1.ogg.import
new file mode 100644
index 0000000..3dfc766
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Firespray 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://de176yxmpq6sx"
+path="res://.godot/imported/Firespray 1.ogg-bbc838a8dbeab6c98230c7f3c158b96e.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Firespray 1.ogg"
+dest_files=["res://.godot/imported/Firespray 1.ogg-bbc838a8dbeab6c98230c7f3c158b96e.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Firespray 2.ogg b/assets/audio/OGG/SFX/Spells/Firespray 2.ogg
new file mode 100644
index 0000000..b3bff9e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Firespray 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c85781b2f8b644a495fdafd63045eb2e8aa6d6e3f9f980442afbf7d73ae2f264
+size 142153
diff --git a/assets/audio/OGG/SFX/Spells/Firespray 2.ogg.import b/assets/audio/OGG/SFX/Spells/Firespray 2.ogg.import
new file mode 100644
index 0000000..3f36425
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Firespray 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cy2itxl4vlmst"
+path="res://.godot/imported/Firespray 2.ogg-446d8a85f6304ec45ee027fd3a3e7d04.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Firespray 2.ogg"
+dest_files=["res://.godot/imported/Firespray 2.ogg-446d8a85f6304ec45ee027fd3a3e7d04.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Ice Barrage 1.ogg b/assets/audio/OGG/SFX/Spells/Ice Barrage 1.ogg
new file mode 100644
index 0000000..b8a4ce5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Barrage 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d538a890ac8174dea0114eba98f87aeebd0a6cd9a1d178c6f81baff563720d33
+size 153685
diff --git a/assets/audio/OGG/SFX/Spells/Ice Barrage 1.ogg.import b/assets/audio/OGG/SFX/Spells/Ice Barrage 1.ogg.import
new file mode 100644
index 0000000..6961424
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Barrage 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cos0ojvglh73r"
+path="res://.godot/imported/Ice Barrage 1.ogg-6237ca8a26881cafe917446e713036db.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Ice Barrage 1.ogg"
+dest_files=["res://.godot/imported/Ice Barrage 1.ogg-6237ca8a26881cafe917446e713036db.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Ice Barrage 2.ogg b/assets/audio/OGG/SFX/Spells/Ice Barrage 2.ogg
new file mode 100644
index 0000000..aed6e85
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Barrage 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c96abae00d4379a9f3b9646e924f404183b1bc7c704a3bf34e38d8f9f583b40a
+size 132093
diff --git a/assets/audio/OGG/SFX/Spells/Ice Barrage 2.ogg.import b/assets/audio/OGG/SFX/Spells/Ice Barrage 2.ogg.import
new file mode 100644
index 0000000..64f93f6
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Barrage 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c68kfyonjxd88"
+path="res://.godot/imported/Ice Barrage 2.ogg-cdef3e7951672a780dc894410a1c9122.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Ice Barrage 2.ogg"
+dest_files=["res://.godot/imported/Ice Barrage 2.ogg-cdef3e7951672a780dc894410a1c9122.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Ice Freeze 1.ogg b/assets/audio/OGG/SFX/Spells/Ice Freeze 1.ogg
new file mode 100644
index 0000000..bba9f83
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Freeze 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:88ddc85013a00584c1e80aa4d036dc1134bbf35662c44030dfd38d0ca7b81bff
+size 66507
diff --git a/assets/audio/OGG/SFX/Spells/Ice Freeze 1.ogg.import b/assets/audio/OGG/SFX/Spells/Ice Freeze 1.ogg.import
new file mode 100644
index 0000000..3cf956c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Freeze 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b8yjvmdn8bfx5"
+path="res://.godot/imported/Ice Freeze 1.ogg-69a2ca1ac031e0760af5389d14b58e29.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Ice Freeze 1.ogg"
+dest_files=["res://.godot/imported/Ice Freeze 1.ogg-69a2ca1ac031e0760af5389d14b58e29.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Ice Freeze 2.ogg b/assets/audio/OGG/SFX/Spells/Ice Freeze 2.ogg
new file mode 100644
index 0000000..5e557af
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Freeze 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0da629ed25ae18fcdef65a999e5313977b8ff0ad18f8fe2b0e8fb8178f85fd51
+size 65793
diff --git a/assets/audio/OGG/SFX/Spells/Ice Freeze 2.ogg.import b/assets/audio/OGG/SFX/Spells/Ice Freeze 2.ogg.import
new file mode 100644
index 0000000..6f87821
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Freeze 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bxqphjt6vm57c"
+path="res://.godot/imported/Ice Freeze 2.ogg-f2bb259bdd9dfd91be6cdfd663ecdb6d.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Ice Freeze 2.ogg"
+dest_files=["res://.godot/imported/Ice Freeze 2.ogg-f2bb259bdd9dfd91be6cdfd663ecdb6d.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Ice Throw 1.ogg b/assets/audio/OGG/SFX/Spells/Ice Throw 1.ogg
new file mode 100644
index 0000000..1f7c93b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Throw 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cd5b436a0c0c7866f6073f289c733a2201b34d345f2691a9a060b5c2aec0e3c0
+size 74425
diff --git a/assets/audio/OGG/SFX/Spells/Ice Throw 1.ogg.import b/assets/audio/OGG/SFX/Spells/Ice Throw 1.ogg.import
new file mode 100644
index 0000000..8a360b4
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Throw 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bu427htv8xv0p"
+path="res://.godot/imported/Ice Throw 1.ogg-6a32102deaeb480892c6fcc4cd048314.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Ice Throw 1.ogg"
+dest_files=["res://.godot/imported/Ice Throw 1.ogg-6a32102deaeb480892c6fcc4cd048314.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Ice Throw 2.ogg b/assets/audio/OGG/SFX/Spells/Ice Throw 2.ogg
new file mode 100644
index 0000000..bc9e5fa
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Throw 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:34bbe26b91b678f5b37c4dc72e602d70c78f774d2514de1531dfde736c0aa913
+size 66951
diff --git a/assets/audio/OGG/SFX/Spells/Ice Throw 2.ogg.import b/assets/audio/OGG/SFX/Spells/Ice Throw 2.ogg.import
new file mode 100644
index 0000000..a8b27de
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Throw 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bgm5c3bel4ktx"
+path="res://.godot/imported/Ice Throw 2.ogg-826c525ef64def575c3f4ce60b374bf5.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Ice Throw 2.ogg"
+dest_files=["res://.godot/imported/Ice Throw 2.ogg-826c525ef64def575c3f4ce60b374bf5.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Ice Wall 1.ogg b/assets/audio/OGG/SFX/Spells/Ice Wall 1.ogg
new file mode 100644
index 0000000..556be8b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Wall 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:81d92da68401a685dc106465724087202cac474c137445304b56373b2d1eb68d
+size 195974
diff --git a/assets/audio/OGG/SFX/Spells/Ice Wall 1.ogg.import b/assets/audio/OGG/SFX/Spells/Ice Wall 1.ogg.import
new file mode 100644
index 0000000..b300a12
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Wall 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c4btgvxwfa0ix"
+path="res://.godot/imported/Ice Wall 1.ogg-53183915919c830e23dd600e9d9c2ef3.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Ice Wall 1.ogg"
+dest_files=["res://.godot/imported/Ice Wall 1.ogg-53183915919c830e23dd600e9d9c2ef3.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Ice Wall 2.ogg b/assets/audio/OGG/SFX/Spells/Ice Wall 2.ogg
new file mode 100644
index 0000000..7117e79
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Wall 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7a7e42a926bb1b70b375ac44c13bdeffb6ed7eb320733039e1afa0631a1260da
+size 199805
diff --git a/assets/audio/OGG/SFX/Spells/Ice Wall 2.ogg.import b/assets/audio/OGG/SFX/Spells/Ice Wall 2.ogg.import
new file mode 100644
index 0000000..452dedc
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Ice Wall 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bxfqy4cvcmukt"
+path="res://.godot/imported/Ice Wall 2.ogg-d02e60a35a7ce0b0fef8a5f0e4b99f3c.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Ice Wall 2.ogg"
+dest_files=["res://.godot/imported/Ice Wall 2.ogg-d02e60a35a7ce0b0fef8a5f0e4b99f3c.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 1.ogg b/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 1.ogg
new file mode 100644
index 0000000..81a0f6b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:03a28dd627c824a9f4baa913a7f421336996f1ab69e34cc518dcef268e474ede
+size 136683
diff --git a/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 1.ogg.import b/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 1.ogg.import
new file mode 100644
index 0000000..e583903
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://d157vj61b6c82"
+path="res://.godot/imported/Rock Meteor Swarm 1.ogg-cd4b6db919696a8d75af1a01f2290a16.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 1.ogg"
+dest_files=["res://.godot/imported/Rock Meteor Swarm 1.ogg-cd4b6db919696a8d75af1a01f2290a16.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 2.ogg b/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 2.ogg
new file mode 100644
index 0000000..4413319
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:088c19d20654b0f4d74220866248f10c71066acbba8c10a2fb0c5eb8805ad731
+size 132634
diff --git a/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 2.ogg.import b/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 2.ogg.import
new file mode 100644
index 0000000..53fed9c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://8j1djrif477c"
+path="res://.godot/imported/Rock Meteor Swarm 2.ogg-7a31d66e42d3bd3292d7c2a34438e8c6.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Rock Meteor Swarm 2.ogg"
+dest_files=["res://.godot/imported/Rock Meteor Swarm 2.ogg-7a31d66e42d3bd3292d7c2a34438e8c6.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 1.ogg b/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 1.ogg
new file mode 100644
index 0000000..f4e65d6
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:435a606d16ed4fb2081918de4915f904d1cfb89d86dc7decde8c7ff8453bc151
+size 38430
diff --git a/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 1.ogg.import b/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 1.ogg.import
new file mode 100644
index 0000000..fa818ab
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b5rmkjslpdyqx"
+path="res://.godot/imported/Rock Meteor Throw 1.ogg-9047e90f3729817c87a01fadc3dc6b06.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Rock Meteor Throw 1.ogg"
+dest_files=["res://.godot/imported/Rock Meteor Throw 1.ogg-9047e90f3729817c87a01fadc3dc6b06.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 2.ogg b/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 2.ogg
new file mode 100644
index 0000000..4d5a003
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:84c6c56ac71d012993508194fc362b36764727a092e054c4f821cc781c0878cc
+size 37238
diff --git a/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 2.ogg.import b/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 2.ogg.import
new file mode 100644
index 0000000..1731896
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Meteor Throw 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dxhr3et4x80wj"
+path="res://.godot/imported/Rock Meteor Throw 2.ogg-f7d6acf77ae2f534ce83a504d47c6c45.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Rock Meteor Throw 2.ogg"
+dest_files=["res://.godot/imported/Rock Meteor Throw 2.ogg-f7d6acf77ae2f534ce83a504d47c6c45.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Rock Wall 1.ogg b/assets/audio/OGG/SFX/Spells/Rock Wall 1.ogg
new file mode 100644
index 0000000..eb98bd5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Wall 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f78a7f614277972b45f39768a4c41e81b6808707a1e4cad0c22cf4a014cb6268
+size 130139
diff --git a/assets/audio/OGG/SFX/Spells/Rock Wall 1.ogg.import b/assets/audio/OGG/SFX/Spells/Rock Wall 1.ogg.import
new file mode 100644
index 0000000..64bcb9f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Wall 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://ykq7h8ycpry2"
+path="res://.godot/imported/Rock Wall 1.ogg-968232a8946ab108e45ccff90a98acc6.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Rock Wall 1.ogg"
+dest_files=["res://.godot/imported/Rock Wall 1.ogg-968232a8946ab108e45ccff90a98acc6.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Rock Wall 2.ogg b/assets/audio/OGG/SFX/Spells/Rock Wall 2.ogg
new file mode 100644
index 0000000..5fad544
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Wall 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:377ec01398da2e6a4399eacabadc74839fa794ff1b495d522e0dde41c69e01db
+size 135716
diff --git a/assets/audio/OGG/SFX/Spells/Rock Wall 2.ogg.import b/assets/audio/OGG/SFX/Spells/Rock Wall 2.ogg.import
new file mode 100644
index 0000000..2fa68cd
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Rock Wall 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://vwhbgyow1s4"
+path="res://.godot/imported/Rock Wall 2.ogg-507659cc9525d75d4618b4119da84feb.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Rock Wall 2.ogg"
+dest_files=["res://.godot/imported/Rock Wall 2.ogg-507659cc9525d75d4618b4119da84feb.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Spell Impact 1.ogg b/assets/audio/OGG/SFX/Spells/Spell Impact 1.ogg
new file mode 100644
index 0000000..fe04c63
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Spell Impact 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:962097dd786567097c471ad4ce5f0a42dddb6c2f334b1f147edfd3f688c20b96
+size 28713
diff --git a/assets/audio/OGG/SFX/Spells/Spell Impact 1.ogg.import b/assets/audio/OGG/SFX/Spells/Spell Impact 1.ogg.import
new file mode 100644
index 0000000..29754b1
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Spell Impact 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dpbotai4gu5uc"
+path="res://.godot/imported/Spell Impact 1.ogg-dbf94720e553b9eb81bca47a7e68b2e7.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Spell Impact 1.ogg"
+dest_files=["res://.godot/imported/Spell Impact 1.ogg-dbf94720e553b9eb81bca47a7e68b2e7.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Spell Impact 2.ogg b/assets/audio/OGG/SFX/Spells/Spell Impact 2.ogg
new file mode 100644
index 0000000..e0ed2e5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Spell Impact 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c3baeb69100a0ef666c16a757a992f7e00347f5dc4e4fbac6ab4b7ecaae1b0a4
+size 23205
diff --git a/assets/audio/OGG/SFX/Spells/Spell Impact 2.ogg.import b/assets/audio/OGG/SFX/Spells/Spell Impact 2.ogg.import
new file mode 100644
index 0000000..5cfa6bd
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Spell Impact 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://gm6row1r388q"
+path="res://.godot/imported/Spell Impact 2.ogg-a2a4435e09769062b3375d526c693a75.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Spell Impact 2.ogg"
+dest_files=["res://.godot/imported/Spell Impact 2.ogg-a2a4435e09769062b3375d526c693a75.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Spell Impact 3.ogg b/assets/audio/OGG/SFX/Spells/Spell Impact 3.ogg
new file mode 100644
index 0000000..d788189
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Spell Impact 3.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:267a197d97d33a4acb09b974f908d82234cd548a369eb218f169238900586f0a
+size 25470
diff --git a/assets/audio/OGG/SFX/Spells/Spell Impact 3.ogg.import b/assets/audio/OGG/SFX/Spells/Spell Impact 3.ogg.import
new file mode 100644
index 0000000..81b5ed5
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Spell Impact 3.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://y03owrqc33dg"
+path="res://.godot/imported/Spell Impact 3.ogg-7a47711f8ab598e355244a292cbd17c7.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Spell Impact 3.ogg"
+dest_files=["res://.godot/imported/Spell Impact 3.ogg-7a47711f8ab598e355244a292cbd17c7.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Waterspray 1.ogg b/assets/audio/OGG/SFX/Spells/Waterspray 1.ogg
new file mode 100644
index 0000000..e5a49ee
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Waterspray 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:74eb2dd1057d5d6af3776bd9394e5ed39fee288650449e67237fd0985cecc6ff
+size 116610
diff --git a/assets/audio/OGG/SFX/Spells/Waterspray 1.ogg.import b/assets/audio/OGG/SFX/Spells/Waterspray 1.ogg.import
new file mode 100644
index 0000000..b35cb58
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Waterspray 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://csu0i4fcaa0oo"
+path="res://.godot/imported/Waterspray 1.ogg-9ad7e89e8a7912426f14cb3fdf67c8ee.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Waterspray 1.ogg"
+dest_files=["res://.godot/imported/Waterspray 1.ogg-9ad7e89e8a7912426f14cb3fdf67c8ee.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Waterspray 2.ogg b/assets/audio/OGG/SFX/Spells/Waterspray 2.ogg
new file mode 100644
index 0000000..e83eae1
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Waterspray 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e22485c8aabd8395d35886102e00b2fb5f03d3695cba5ce9298efcf37a9a823
+size 113519
diff --git a/assets/audio/OGG/SFX/Spells/Waterspray 2.ogg.import b/assets/audio/OGG/SFX/Spells/Waterspray 2.ogg.import
new file mode 100644
index 0000000..b657f9e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Waterspray 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b5iapa0jf03we"
+path="res://.godot/imported/Waterspray 2.ogg-6059eae0f82e9f2dccde54363c510507.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Waterspray 2.ogg"
+dest_files=["res://.godot/imported/Waterspray 2.ogg-6059eae0f82e9f2dccde54363c510507.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Wave Attack 1.ogg b/assets/audio/OGG/SFX/Spells/Wave Attack 1.ogg
new file mode 100644
index 0000000..0255c0b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Wave Attack 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ca63cefa225a38e68a9ac72062ec34f7df4494e1ad631149f80e59016777393d
+size 218298
diff --git a/assets/audio/OGG/SFX/Spells/Wave Attack 1.ogg.import b/assets/audio/OGG/SFX/Spells/Wave Attack 1.ogg.import
new file mode 100644
index 0000000..4a9e120
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Wave Attack 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bh847jqv72iy1"
+path="res://.godot/imported/Wave Attack 1.ogg-79d6a2c36b4282a6cc3cde3b92b1dfb1.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Wave Attack 1.ogg"
+dest_files=["res://.godot/imported/Wave Attack 1.ogg-79d6a2c36b4282a6cc3cde3b92b1dfb1.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Spells/Wave Attack 2.ogg b/assets/audio/OGG/SFX/Spells/Wave Attack 2.ogg
new file mode 100644
index 0000000..3fd604a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Wave Attack 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6558a2f68cccb98d82a13eaaac8b521ecb28c75c5260acb98941e796e20abad2
+size 223231
diff --git a/assets/audio/OGG/SFX/Spells/Wave Attack 2.ogg.import b/assets/audio/OGG/SFX/Spells/Wave Attack 2.ogg.import
new file mode 100644
index 0000000..da8ada6
--- /dev/null
+++ b/assets/audio/OGG/SFX/Spells/Wave Attack 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://b2ryq0dn1rv7o"
+path="res://.godot/imported/Wave Attack 2.ogg-43a384ccb4beca0f912a008cb2b51e46.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Spells/Wave Attack 2.ogg"
+dest_files=["res://.godot/imported/Wave Attack 2.ogg-43a384ccb4beca0f912a008cb2b51e46.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Torch/.DS_Store b/assets/audio/OGG/SFX/Torch/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Torch/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Torch/Light Torch 1.ogg b/assets/audio/OGG/SFX/Torch/Light Torch 1.ogg
new file mode 100644
index 0000000..dae6aa8
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Light Torch 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:21fa5f8c31d8d529cdd179ea8ee860040655f0c7e831a04d1aafd837787a86b2
+size 90229
diff --git a/assets/audio/OGG/SFX/Torch/Light Torch 1.ogg.import b/assets/audio/OGG/SFX/Torch/Light Torch 1.ogg.import
new file mode 100644
index 0000000..d56415a
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Light Torch 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://be05x3nn0xln0"
+path="res://.godot/imported/Light Torch 1.ogg-69462bdef84dad25b8b9d17559c098b2.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Torch/Light Torch 1.ogg"
+dest_files=["res://.godot/imported/Light Torch 1.ogg-69462bdef84dad25b8b9d17559c098b2.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Torch/Light Torch 2.ogg b/assets/audio/OGG/SFX/Torch/Light Torch 2.ogg
new file mode 100644
index 0000000..1572df4
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Light Torch 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dcd930875cc575a82439f2ff6db7218ef7bf61901ad3bbc893259555ac79eda8
+size 69773
diff --git a/assets/audio/OGG/SFX/Torch/Light Torch 2.ogg.import b/assets/audio/OGG/SFX/Torch/Light Torch 2.ogg.import
new file mode 100644
index 0000000..56983f3
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Light Torch 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://qrxx6elttkne"
+path="res://.godot/imported/Light Torch 2.ogg-6d9ca6281ab4f62172da9625f9404c6b.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Torch/Light Torch 2.ogg"
+dest_files=["res://.godot/imported/Light Torch 2.ogg-6d9ca6281ab4f62172da9625f9404c6b.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 1.ogg b/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 1.ogg
new file mode 100644
index 0000000..bee082f
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5171456795543ea8d4d4d8f2af5e996030eba0d2c584431f384fd023bcdfcf41
+size 752671
diff --git a/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 1.ogg.import b/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 1.ogg.import
new file mode 100644
index 0000000..9734ea6
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://28g5263woxym"
+path="res://.godot/imported/Light Torch with Starting Loop 1.ogg-1b28b13ce4e019048ca5b46a40e57cba.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 1.ogg"
+dest_files=["res://.godot/imported/Light Torch with Starting Loop 1.ogg-1b28b13ce4e019048ca5b46a40e57cba.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 2.ogg b/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 2.ogg
new file mode 100644
index 0000000..48fbe7b
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7c0c8e0e29357202d19c599aa4c289a4cd317b3993f9dffa8f3feebca0bee68f
+size 751697
diff --git a/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 2.ogg.import b/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 2.ogg.import
new file mode 100644
index 0000000..2f5d795
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://scvto4ecctxd"
+path="res://.godot/imported/Light Torch with Starting Loop 2.ogg-7fcfe99612c38e87bc0858b84f60c3a1.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Torch/Light Torch with Starting Loop 2.ogg"
+dest_files=["res://.godot/imported/Light Torch with Starting Loop 2.ogg-7fcfe99612c38e87bc0858b84f60c3a1.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Torch/Torch Attack Strike 1.ogg b/assets/audio/OGG/SFX/Torch/Torch Attack Strike 1.ogg
new file mode 100644
index 0000000..79e0c8c
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Torch Attack Strike 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:786ce668276569fe29f0ce86a4f99b8864d583eb39725797d6c71b4ad2e7de1f
+size 55216
diff --git a/assets/audio/OGG/SFX/Torch/Torch Attack Strike 1.ogg.import b/assets/audio/OGG/SFX/Torch/Torch Attack Strike 1.ogg.import
new file mode 100644
index 0000000..6afe3ba
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Torch Attack Strike 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bvminskv7bvvi"
+path="res://.godot/imported/Torch Attack Strike 1.ogg-e6aef58a85196a05686b0b8e55b8f36e.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Torch/Torch Attack Strike 1.ogg"
+dest_files=["res://.godot/imported/Torch Attack Strike 1.ogg-e6aef58a85196a05686b0b8e55b8f36e.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Torch/Torch Attack Strike 2.ogg b/assets/audio/OGG/SFX/Torch/Torch Attack Strike 2.ogg
new file mode 100644
index 0000000..c482933
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Torch Attack Strike 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d224a9c9fbaa38f279b0c8c78fad74c4e5ae09debe2b9381d8ac979b599811d8
+size 44824
diff --git a/assets/audio/OGG/SFX/Torch/Torch Attack Strike 2.ogg.import b/assets/audio/OGG/SFX/Torch/Torch Attack Strike 2.ogg.import
new file mode 100644
index 0000000..fb66891
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Torch Attack Strike 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dcre57as0frdt"
+path="res://.godot/imported/Torch Attack Strike 2.ogg-0098415d8af8bad513842b16936ba063.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Torch/Torch Attack Strike 2.ogg"
+dest_files=["res://.godot/imported/Torch Attack Strike 2.ogg-0098415d8af8bad513842b16936ba063.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Torch/Torch Impact 1.ogg b/assets/audio/OGG/SFX/Torch/Torch Impact 1.ogg
new file mode 100644
index 0000000..c4b1c97
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Torch Impact 1.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aa35e887876a1ca9c6b129d7c05647af0aa6ae5789afb51da92b4346a78c7667
+size 28713
diff --git a/assets/audio/OGG/SFX/Torch/Torch Impact 1.ogg.import b/assets/audio/OGG/SFX/Torch/Torch Impact 1.ogg.import
new file mode 100644
index 0000000..4c1003d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Torch Impact 1.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c84c6aky1ukkv"
+path="res://.godot/imported/Torch Impact 1.ogg-4fa1db01af63e6a9aef6214ff357f8c8.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Torch/Torch Impact 1.ogg"
+dest_files=["res://.godot/imported/Torch Impact 1.ogg-4fa1db01af63e6a9aef6214ff357f8c8.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Torch/Torch Impact 2.ogg b/assets/audio/OGG/SFX/Torch/Torch Impact 2.ogg
new file mode 100644
index 0000000..ba68412
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Torch Impact 2.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:275c26affd89b6a371f9ffcdf4a9b6d4d96a10c2f7c56e666db378db0eab8caa
+size 23205
diff --git a/assets/audio/OGG/SFX/Torch/Torch Impact 2.ogg.import b/assets/audio/OGG/SFX/Torch/Torch Impact 2.ogg.import
new file mode 100644
index 0000000..42f8b18
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Torch Impact 2.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dryx16kq427u0"
+path="res://.godot/imported/Torch Impact 2.ogg-85d18764692a4d5a1fca0064f2674937.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Torch/Torch Impact 2.ogg"
+dest_files=["res://.godot/imported/Torch Impact 2.ogg-85d18764692a4d5a1fca0064f2674937.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Torch/Torch Loop.ogg b/assets/audio/OGG/SFX/Torch/Torch Loop.ogg
new file mode 100644
index 0000000..53a12d4
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Torch Loop.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:72ccc90f25e6fee6209e57ae75ef826b5491721f91e2c031d56242971714e550
+size 756936
diff --git a/assets/audio/OGG/SFX/Torch/Torch Loop.ogg.import b/assets/audio/OGG/SFX/Torch/Torch Loop.ogg.import
new file mode 100644
index 0000000..d904486
--- /dev/null
+++ b/assets/audio/OGG/SFX/Torch/Torch Loop.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://2a04xk7s8ag5"
+path="res://.godot/imported/Torch Loop.ogg-6b68191277d6cd11f62553eec06e8d32.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Torch/Torch Loop.ogg"
+dest_files=["res://.godot/imported/Torch Loop.ogg-6b68191277d6cd11f62553eec06e8d32.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/.DS_Store b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/.DS_Store differ
diff --git a/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Loop.ogg b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Loop.ogg
new file mode 100644
index 0000000..d732873
--- /dev/null
+++ b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Loop.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:656ee2b1d0b4e52112f9b05b4358c2ea91ac5d47549abf14270af1335e040cde
+size 3411555
diff --git a/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Loop.ogg.import b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Loop.ogg.import
new file mode 100644
index 0000000..6d4016d
--- /dev/null
+++ b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Loop.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://dcknx3k5tdt5p"
+path="res://.godot/imported/River Loop.ogg-be3b760aba211c93fe4c060f06ffe042.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Loop.ogg"
+dest_files=["res://.godot/imported/River Loop.ogg-be3b760aba211c93fe4c060f06ffe042.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Stream Loop.ogg b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Stream Loop.ogg
new file mode 100644
index 0000000..09bd6b4
--- /dev/null
+++ b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Stream Loop.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d93107fa4bd7b0acf0ef973700bb2f5c663eb156191d9edfc311085b97a316c7
+size 3996846
diff --git a/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Stream Loop.ogg.import b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Stream Loop.ogg.import
new file mode 100644
index 0000000..59906f4
--- /dev/null
+++ b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Stream Loop.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://bciqyu26i6tvv"
+path="res://.godot/imported/River Stream Loop.ogg-b5b41199589b34f0d649b0e8f9ff00fb.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Waterfalls Rivers and Streams/River Stream Loop.ogg"
+dest_files=["res://.godot/imported/River Stream Loop.ogg-b5b41199589b34f0d649b0e8f9ff00fb.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/Waterfall Loop.ogg b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/Waterfall Loop.ogg
new file mode 100644
index 0000000..98949c2
--- /dev/null
+++ b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/Waterfall Loop.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be927f49f6747d0d7bdb0b93407dff453b66b8481a3e532669e7692c71ab1a23
+size 3618691
diff --git a/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/Waterfall Loop.ogg.import b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/Waterfall Loop.ogg.import
new file mode 100644
index 0000000..58b406e
--- /dev/null
+++ b/assets/audio/OGG/SFX/Waterfalls Rivers and Streams/Waterfall Loop.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://cg3hhjnuw8t44"
+path="res://.godot/imported/Waterfall Loop.ogg-dcb20a61315ccf9cecd881661ef739b4.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/OGG/SFX/Waterfalls Rivers and Streams/Waterfall Loop.ogg"
+dest_files=["res://.godot/imported/Waterfall Loop.ogg-dcb20a61315ccf9cecd881661ef739b4.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/audio/background_music.ogg b/assets/audio/background_music.ogg
new file mode 100644
index 0000000..1e766d4
--- /dev/null
+++ b/assets/audio/background_music.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cc331b2ca1bc766ce4489a627e22bb1feb94d2cedcbbae9ceb6aafcde199e6c6
+size 3273380
diff --git a/assets/audio/background_music.ogg.import b/assets/audio/background_music.ogg.import
new file mode 100644
index 0000000..a7cc5eb
--- /dev/null
+++ b/assets/audio/background_music.ogg.import
@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://s51o0fvln2sg"
+path="res://.godot/imported/background_music.ogg-6ed5a735ed3337f33b0f3cb0caec3a4b.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/background_music.ogg"
+dest_files=["res://.godot/imported/background_music.ogg-6ed5a735ed3337f33b0f3cb0caec3a4b.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4
diff --git a/assets/characters/warrior.png b/assets/characters/warrior.png
new file mode 100644
index 0000000..df2aee6
Binary files /dev/null and b/assets/characters/warrior.png differ
diff --git a/assets/characters/warrior.png.import b/assets/characters/warrior.png.import
new file mode 100644
index 0000000..2695f9e
--- /dev/null
+++ b/assets/characters/warrior.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://blw846ag1hiak"
+path="res://.godot/imported/warrior.png-ba8197777f0bc78c196be3e2ff7e43e0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/characters/warrior.png"
+dest_files=["res://.godot/imported/warrior.png-ba8197777f0bc78c196be3e2ff7e43e0.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/font/m5x7.ttf b/assets/font/m5x7.ttf
new file mode 100644
index 0000000..cdb9d31
--- /dev/null
+++ b/assets/font/m5x7.ttf
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:47c3f0b01f0fd417b3a44c2888a71d3072f750e76f3e6e946a6a9b188d988cbf
+size 34300
diff --git a/assets/font/m5x7.ttf.import b/assets/font/m5x7.ttf.import
new file mode 100644
index 0000000..94a7861
--- /dev/null
+++ b/assets/font/m5x7.ttf.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://bfq6d6y56gr4s"
+path="res://.godot/imported/m5x7.ttf-813717e2aafb40de5b2cad5a9ead6cd2.fontdata"
+
+[deps]
+
+source_file="res://assets/font/m5x7.ttf"
+dest_files=["res://.godot/imported/m5x7.ttf-813717e2aafb40de5b2cad5a9ead6cd2.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=0
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=true
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+modulate_color_glyphs=false
+hinting=1
+subpixel_positioning=0
+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/theme/clicker.theme b/assets/theme/clicker.theme
new file mode 100644
index 0000000..c3f5c78
Binary files /dev/null and b/assets/theme/clicker.theme differ
diff --git a/assets/tiles/Animated Sprites/Campfire sheet.png b/assets/tiles/Animated Sprites/Campfire sheet.png
new file mode 100644
index 0000000..a53993a
Binary files /dev/null and b/assets/tiles/Animated Sprites/Campfire sheet.png differ
diff --git a/assets/tiles/Animated Sprites/Campfire sheet.png.import b/assets/tiles/Animated Sprites/Campfire sheet.png.import
new file mode 100644
index 0000000..5c46fe9
--- /dev/null
+++ b/assets/tiles/Animated Sprites/Campfire sheet.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://r74f62l3bqao"
+path="res://.godot/imported/Campfire sheet.png-82a0519434c634b019eb7fd4f258ff99.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Animated Sprites/Campfire sheet.png"
+dest_files=["res://.godot/imported/Campfire sheet.png-82a0519434c634b019eb7fd4f258ff99.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Animated Sprites/Campfire with food sheet.png b/assets/tiles/Animated Sprites/Campfire with food sheet.png
new file mode 100644
index 0000000..07a85a1
Binary files /dev/null and b/assets/tiles/Animated Sprites/Campfire with food sheet.png differ
diff --git a/assets/tiles/Animated Sprites/Campfire with food sheet.png.import b/assets/tiles/Animated Sprites/Campfire with food sheet.png.import
new file mode 100644
index 0000000..7cca42f
--- /dev/null
+++ b/assets/tiles/Animated Sprites/Campfire with food sheet.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://xtaa66xmpxh4"
+path="res://.godot/imported/Campfire with food sheet.png-0d9c96b8701dfd1c354822de1b704df7.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Animated Sprites/Campfire with food sheet.png"
+dest_files=["res://.godot/imported/Campfire with food sheet.png-0d9c96b8701dfd1c354822de1b704df7.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Animated Sprites/GandalfHardcore Animated Water Tiles.png b/assets/tiles/Animated Sprites/GandalfHardcore Animated Water Tiles.png
new file mode 100644
index 0000000..8d48736
Binary files /dev/null and b/assets/tiles/Animated Sprites/GandalfHardcore Animated Water Tiles.png differ
diff --git a/assets/tiles/Animated Sprites/GandalfHardcore Animated Water Tiles.png.import b/assets/tiles/Animated Sprites/GandalfHardcore Animated Water Tiles.png.import
new file mode 100644
index 0000000..e562644
--- /dev/null
+++ b/assets/tiles/Animated Sprites/GandalfHardcore Animated Water Tiles.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b6jcprarfmgg3"
+path="res://.godot/imported/GandalfHardcore Animated Water Tiles.png-ff2de264e77e7b3505a9cd3eb2adb5ab.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Animated Sprites/GandalfHardcore Animated Water Tiles.png"
+dest_files=["res://.godot/imported/GandalfHardcore Animated Water Tiles.png-ff2de264e77e7b3505a9cd3eb2adb5ab.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Animated Sprites/GandalfHardcore Portal sheet.png b/assets/tiles/Animated Sprites/GandalfHardcore Portal sheet.png
new file mode 100644
index 0000000..b34dbf3
Binary files /dev/null and b/assets/tiles/Animated Sprites/GandalfHardcore Portal sheet.png differ
diff --git a/assets/tiles/Animated Sprites/GandalfHardcore Portal sheet.png.import b/assets/tiles/Animated Sprites/GandalfHardcore Portal sheet.png.import
new file mode 100644
index 0000000..5be6426
--- /dev/null
+++ b/assets/tiles/Animated Sprites/GandalfHardcore Portal sheet.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://72rs1nx2oqsl"
+path="res://.godot/imported/GandalfHardcore Portal sheet.png-f0d156b8f91310703fd2e64a90e5a94f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Animated Sprites/GandalfHardcore Portal sheet.png"
+dest_files=["res://.godot/imported/GandalfHardcore Portal sheet.png-f0d156b8f91310703fd2e64a90e5a94f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Animated Sprites/GandalfHardcore Water Tiles sheet.png b/assets/tiles/Animated Sprites/GandalfHardcore Water Tiles sheet.png
new file mode 100644
index 0000000..294129e
Binary files /dev/null and b/assets/tiles/Animated Sprites/GandalfHardcore Water Tiles sheet.png differ
diff --git a/assets/tiles/Animated Sprites/GandalfHardcore Water Tiles sheet.png.import b/assets/tiles/Animated Sprites/GandalfHardcore Water Tiles sheet.png.import
new file mode 100644
index 0000000..6ab7a0f
--- /dev/null
+++ b/assets/tiles/Animated Sprites/GandalfHardcore Water Tiles sheet.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cmu3h2q4eot66"
+path="res://.godot/imported/GandalfHardcore Water Tiles sheet.png-18b784219171ee7b863b1b75c66c9ecb.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Animated Sprites/GandalfHardcore Water Tiles sheet.png"
+dest_files=["res://.godot/imported/GandalfHardcore Water Tiles sheet.png-18b784219171ee7b863b1b75c66c9ecb.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/BG Dirt1.png b/assets/tiles/BG Dirt1.png
new file mode 100644
index 0000000..254725c
Binary files /dev/null and b/assets/tiles/BG Dirt1.png differ
diff --git a/assets/tiles/BG Dirt1.png.import b/assets/tiles/BG Dirt1.png.import
new file mode 100644
index 0000000..fd0d966
--- /dev/null
+++ b/assets/tiles/BG Dirt1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b352owwe41x3q"
+path="res://.godot/imported/BG Dirt1.png-adef0f5aa6e10cd4466bcd4aea133698.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/BG Dirt1.png"
+dest_files=["res://.godot/imported/BG Dirt1.png-adef0f5aa6e10cd4466bcd4aea133698.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/BG Dirt2.png b/assets/tiles/BG Dirt2.png
new file mode 100644
index 0000000..1422e0e
Binary files /dev/null and b/assets/tiles/BG Dirt2.png differ
diff --git a/assets/tiles/BG Dirt2.png.import b/assets/tiles/BG Dirt2.png.import
new file mode 100644
index 0000000..96c7266
--- /dev/null
+++ b/assets/tiles/BG Dirt2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://xns4jcxyak43"
+path="res://.godot/imported/BG Dirt2.png-c32ce30a0bf98076e3255cb971196fef.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/BG Dirt2.png"
+dest_files=["res://.godot/imported/BG Dirt2.png-c32ce30a0bf98076e3255cb971196fef.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Birch1.png b/assets/tiles/Birch1.png
new file mode 100644
index 0000000..e5510eb
Binary files /dev/null and b/assets/tiles/Birch1.png differ
diff --git a/assets/tiles/Birch1.png.import b/assets/tiles/Birch1.png.import
new file mode 100644
index 0000000..a76502e
--- /dev/null
+++ b/assets/tiles/Birch1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cekv5acop7vpp"
+path="res://.godot/imported/Birch1.png-1b1fa449cd871f5417cf7cc22dde8fb1.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Birch1.png"
+dest_files=["res://.godot/imported/Birch1.png-1b1fa449cd871f5417cf7cc22dde8fb1.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Birch2.png b/assets/tiles/Birch2.png
new file mode 100644
index 0000000..5c93d55
Binary files /dev/null and b/assets/tiles/Birch2.png differ
diff --git a/assets/tiles/Birch2.png.import b/assets/tiles/Birch2.png.import
new file mode 100644
index 0000000..ba6621f
--- /dev/null
+++ b/assets/tiles/Birch2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cvmx46huwupg8"
+path="res://.godot/imported/Birch2.png-3bb52609be7d9033b4914c84ee856910.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Birch2.png"
+dest_files=["res://.godot/imported/Birch2.png-3bb52609be7d9033b4914c84ee856910.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Birch3.png b/assets/tiles/Birch3.png
new file mode 100644
index 0000000..6f6a4bd
Binary files /dev/null and b/assets/tiles/Birch3.png differ
diff --git a/assets/tiles/Birch3.png.import b/assets/tiles/Birch3.png.import
new file mode 100644
index 0000000..864a2a2
--- /dev/null
+++ b/assets/tiles/Birch3.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bxedh50r865w3"
+path="res://.godot/imported/Birch3.png-301fc7fb70fcb243f3ec029d1c96aae2.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Birch3.png"
+dest_files=["res://.godot/imported/Birch3.png-301fc7fb70fcb243f3ec029d1c96aae2.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Boat.png b/assets/tiles/Boat.png
new file mode 100644
index 0000000..9a13a03
Binary files /dev/null and b/assets/tiles/Boat.png differ
diff --git a/assets/tiles/Boat.png.import b/assets/tiles/Boat.png.import
new file mode 100644
index 0000000..bdfd54f
--- /dev/null
+++ b/assets/tiles/Boat.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c0gjx7lthqnrs"
+path="res://.godot/imported/Boat.png-8cbbaa8672fd4ff29a85fb9398dbf3e2.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Boat.png"
+dest_files=["res://.godot/imported/Boat.png-8cbbaa8672fd4ff29a85fb9398dbf3e2.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Decor.png b/assets/tiles/Decor.png
new file mode 100644
index 0000000..0c9cead
Binary files /dev/null and b/assets/tiles/Decor.png differ
diff --git a/assets/tiles/Decor.png.import b/assets/tiles/Decor.png.import
new file mode 100644
index 0000000..750cc67
--- /dev/null
+++ b/assets/tiles/Decor.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cu6cgp6q0hl2o"
+path="res://.godot/imported/Decor.png-b7c98e063739c4099210e16d0993e4a3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Decor.png"
+dest_files=["res://.godot/imported/Decor.png-b7c98e063739c4099210e16d0993e4a3.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Floor Tiles1.png b/assets/tiles/Floor Tiles1.png
new file mode 100644
index 0000000..845e266
Binary files /dev/null and b/assets/tiles/Floor Tiles1.png differ
diff --git a/assets/tiles/Floor Tiles1.png.import b/assets/tiles/Floor Tiles1.png.import
new file mode 100644
index 0000000..d6b5fd7
--- /dev/null
+++ b/assets/tiles/Floor Tiles1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dqb5n2pilr3ir"
+path="res://.godot/imported/Floor Tiles1.png-4e54c0e6cfcd18fe4f4c5731b8ede801.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Floor Tiles1.png"
+dest_files=["res://.godot/imported/Floor Tiles1.png-4e54c0e6cfcd18fe4f4c5731b8ede801.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Floor Tiles2.png b/assets/tiles/Floor Tiles2.png
new file mode 100644
index 0000000..b09f71b
Binary files /dev/null and b/assets/tiles/Floor Tiles2.png differ
diff --git a/assets/tiles/Floor Tiles2.png.import b/assets/tiles/Floor Tiles2.png.import
new file mode 100644
index 0000000..3ad96d9
--- /dev/null
+++ b/assets/tiles/Floor Tiles2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b7lwmnue7cer2"
+path="res://.godot/imported/Floor Tiles2.png-5bc4946062a20c8648fa296b3a1f03da.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Floor Tiles2.png"
+dest_files=["res://.godot/imported/Floor Tiles2.png-5bc4946062a20c8648fa296b3a1f03da.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 1.png b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 1.png
new file mode 100644
index 0000000..df61445
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 1.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 1.png.import b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 1.png.import
new file mode 100644
index 0000000..2857182
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dunesyh5l88si"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 1.png-3f32fcb331668bb0422b8162ec66bfa0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 1.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 1.png-3f32fcb331668bb0422b8162ec66bfa0.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 2.png b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 2.png
new file mode 100644
index 0000000..e8b26b0
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 2.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 2.png.import b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 2.png.import
new file mode 100644
index 0000000..8c3cab4
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c8rbauf6xfp00"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 2.png-c2c62b56ce192e125b9578bb06e3d326.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 2.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 2.png-c2c62b56ce192e125b9578bb06e3d326.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 3.png b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 3.png
new file mode 100644
index 0000000..c084610
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 3.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 3.png.import b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 3.png.import
new file mode 100644
index 0000000..6d40038
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 3.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://t47pbn251mgv"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 3.png-f56319fe8f86d5c8ea065372c3ef1e1f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 3.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 3.png-f56319fe8f86d5c8ea065372c3ef1e1f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 4.png b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 4.png
new file mode 100644
index 0000000..c485734
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 4.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 4.png.import b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 4.png.import
new file mode 100644
index 0000000..6112005
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 4.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dj4tc00olbrj7"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 4.png-bd2b218b18983e6e363b5f4aabf34527.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 4.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 4.png-bd2b218b18983e6e363b5f4aabf34527.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 5.png b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 5.png
new file mode 100644
index 0000000..4665d06
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 5.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 5.png.import b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 5.png.import
new file mode 100644
index 0000000..fdecf9e
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 5.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ctifw6ryyyap"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 5.png-6b0df674155b6fbeb4d9449b07efa44e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 5.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 5.png-6b0df674155b6fbeb4d9449b07efa44e.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 1.png b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 1.png
new file mode 100644
index 0000000..3da7373
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 1.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 1.png.import b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 1.png.import
new file mode 100644
index 0000000..3921700
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://osu11ll0t1n6"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 1.png-1eb4d302856b6601f20a059b28f39de1.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 1.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 1.png-1eb4d302856b6601f20a059b28f39de1.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 2.png b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 2.png
new file mode 100644
index 0000000..ca3a952
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 2.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 2.png.import b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 2.png.import
new file mode 100644
index 0000000..292553c
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cxa6p0txvomjb"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 2.png-1481fd50f3a4d4cb184994272a4b1dfb.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 2.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 2.png-1481fd50f3a4d4cb184994272a4b1dfb.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 3.png b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 3.png
new file mode 100644
index 0000000..91601f7
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 3.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 3.png.import b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 3.png.import
new file mode 100644
index 0000000..5af93a7
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 3.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b4enruotobuab"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 3.png-7363890cd237511da3632a065978704a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 3.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 3.png-7363890cd237511da3632a065978704a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 4.png b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 4.png
new file mode 100644
index 0000000..d3bc35c
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 4.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 4.png.import b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 4.png.import
new file mode 100644
index 0000000..7567b2b
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 4.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dj7rn7wxj3lp2"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 4.png-ec8d054d3099a84c9fcf2706f4206a2f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 4.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 4.png-ec8d054d3099a84c9fcf2706f4206a2f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 5.png b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 5.png
new file mode 100644
index 0000000..33cf695
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 5.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 5.png.import b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 5.png.import
new file mode 100644
index 0000000..e495bc9
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 5.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dufqqxw7iwedp"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 5.png-8679ec5cc9ce5d15fff99e9897d03035.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Normal BG/GandalfHardcore Background layers_layer 5.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 5.png-8679ec5cc9ce5d15fff99e9897d03035.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 1.png b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 1.png
new file mode 100644
index 0000000..aa2ee02
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 1.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 1.png.import b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 1.png.import
new file mode 100644
index 0000000..8a7419d
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://teygxjovthc0"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 1.png-34ea39b85f76e6b23840b1b41f342fe8.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 1.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 1.png-34ea39b85f76e6b23840b1b41f342fe8.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 2.png b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 2.png
new file mode 100644
index 0000000..f459272
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 2.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 2.png.import b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 2.png.import
new file mode 100644
index 0000000..7967a70
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d0g1pjnwnpnrr"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 2.png-8c8d0e5afbd1ccca750f0d08e55fac5d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 2.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 2.png-8c8d0e5afbd1ccca750f0d08e55fac5d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 3.png b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 3.png
new file mode 100644
index 0000000..3530b21
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 3.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 3.png.import b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 3.png.import
new file mode 100644
index 0000000..7c7aa4a
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 3.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b5r7dj4rwyh1y"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 3.png-2e62e2292a5ae3230f13e691c17651f3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 3.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 3.png-2e62e2292a5ae3230f13e691c17651f3.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 4.png b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 4.png
new file mode 100644
index 0000000..fdda88b
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 4.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 4.png.import b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 4.png.import
new file mode 100644
index 0000000..54f423b
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 4.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dg76hoa4tp4gc"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 4.png-ca410119ab84e73a570604111a92030a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 4.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 4.png-ca410119ab84e73a570604111a92030a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 5.png b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 5.png
new file mode 100644
index 0000000..33cf695
Binary files /dev/null and b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 5.png differ
diff --git a/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 5.png.import b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 5.png.import
new file mode 100644
index 0000000..6b9bfa6
--- /dev/null
+++ b/assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 5.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cwmyv23rlu7iu"
+path="res://.godot/imported/GandalfHardcore Background layers_layer 5.png-14774017c0e4251f6e5303a9ad256a01.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/GandalfHardcore Background layers/Winter BG/GandalfHardcore Background layers_layer 5.png"
+dest_files=["res://.godot/imported/GandalfHardcore Background layers_layer 5.png-14774017c0e4251f6e5303a9ad256a01.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Garden Decorations.png b/assets/tiles/Garden Decorations.png
new file mode 100644
index 0000000..f32e83f
Binary files /dev/null and b/assets/tiles/Garden Decorations.png differ
diff --git a/assets/tiles/Garden Decorations.png.import b/assets/tiles/Garden Decorations.png.import
new file mode 100644
index 0000000..773a88f
--- /dev/null
+++ b/assets/tiles/Garden Decorations.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c2hoo1axx4y6y"
+path="res://.godot/imported/Garden Decorations.png-4cfe73e7e1f4d5d50a460f0d962ad579.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Garden Decorations.png"
+dest_files=["res://.godot/imported/Garden Decorations.png-4cfe73e7e1f4d5d50a460f0d962ad579.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/House Tiles.png b/assets/tiles/House Tiles.png
new file mode 100644
index 0000000..5eb148a
Binary files /dev/null and b/assets/tiles/House Tiles.png differ
diff --git a/assets/tiles/House Tiles.png.import b/assets/tiles/House Tiles.png.import
new file mode 100644
index 0000000..ec732e6
--- /dev/null
+++ b/assets/tiles/House Tiles.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bj6clj1p4oh08"
+path="res://.godot/imported/House Tiles.png-299fe42355b88ebfe551aa4100b3d08d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/House Tiles.png"
+dest_files=["res://.godot/imported/House Tiles.png-299fe42355b88ebfe551aa4100b3d08d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Large Pine Tree.png b/assets/tiles/Large Pine Tree.png
new file mode 100644
index 0000000..4a96a9e
Binary files /dev/null and b/assets/tiles/Large Pine Tree.png differ
diff --git a/assets/tiles/Large Pine Tree.png.import b/assets/tiles/Large Pine Tree.png.import
new file mode 100644
index 0000000..6a8cb61
--- /dev/null
+++ b/assets/tiles/Large Pine Tree.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dk81mb6ukowsk"
+path="res://.godot/imported/Large Pine Tree.png-f8398933ce6920253385dbd891d9ef9c.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Large Pine Tree.png"
+dest_files=["res://.godot/imported/Large Pine Tree.png-f8398933ce6920253385dbd891d9ef9c.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Large Tent.png b/assets/tiles/Large Tent.png
new file mode 100644
index 0000000..22101a8
Binary files /dev/null and b/assets/tiles/Large Tent.png differ
diff --git a/assets/tiles/Large Tent.png.import b/assets/tiles/Large Tent.png.import
new file mode 100644
index 0000000..bc397fd
--- /dev/null
+++ b/assets/tiles/Large Tent.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://xvwi3eudfpld"
+path="res://.godot/imported/Large Tent.png-4520e9a03d6c54e1e910708a70573fd1.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Large Tent.png"
+dest_files=["res://.godot/imported/Large Tent.png-4520e9a03d6c54e1e910708a70573fd1.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Links.txt b/assets/tiles/Links.txt
new file mode 100644
index 0000000..c96e920
--- /dev/null
+++ b/assets/tiles/Links.txt
@@ -0,0 +1,4 @@
+Follow me for more pixel art:
+https://twitter.com/GandaIfHardcore
+https://gandalfhardcore.itch.io/
+https://www.fiverr.com/gandalfhardcore
diff --git a/assets/tiles/Ores.png b/assets/tiles/Ores.png
new file mode 100644
index 0000000..2e1408d
Binary files /dev/null and b/assets/tiles/Ores.png differ
diff --git a/assets/tiles/Ores.png.import b/assets/tiles/Ores.png.import
new file mode 100644
index 0000000..d2771fc
--- /dev/null
+++ b/assets/tiles/Ores.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d124f6fh2vipn"
+path="res://.godot/imported/Ores.png-5ef5347c3c4509de3e3e757f12a2672b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Ores.png"
+dest_files=["res://.godot/imported/Ores.png-5ef5347c3c4509de3e3e757f12a2672b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Other Tiles1.png b/assets/tiles/Other Tiles1.png
new file mode 100644
index 0000000..f680bd5
Binary files /dev/null and b/assets/tiles/Other Tiles1.png differ
diff --git a/assets/tiles/Other Tiles1.png.import b/assets/tiles/Other Tiles1.png.import
new file mode 100644
index 0000000..7fdba72
--- /dev/null
+++ b/assets/tiles/Other Tiles1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ceev8neekhxxs"
+path="res://.godot/imported/Other Tiles1.png-0c0311be3c5dedcead8f3ccf69a318fc.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Other Tiles1.png"
+dest_files=["res://.godot/imported/Other Tiles1.png-0c0311be3c5dedcead8f3ccf69a318fc.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Other Tiles2.png b/assets/tiles/Other Tiles2.png
new file mode 100644
index 0000000..7ac66cd
Binary files /dev/null and b/assets/tiles/Other Tiles2.png differ
diff --git a/assets/tiles/Other Tiles2.png.import b/assets/tiles/Other Tiles2.png.import
new file mode 100644
index 0000000..f741c3c
--- /dev/null
+++ b/assets/tiles/Other Tiles2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bwcyelefxg1kr"
+path="res://.godot/imported/Other Tiles2.png-d332fff57907216524cc1b3f8a57c75b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Other Tiles2.png"
+dest_files=["res://.godot/imported/Other Tiles2.png-d332fff57907216524cc1b3f8a57c75b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Pine Trees.png b/assets/tiles/Pine Trees.png
new file mode 100644
index 0000000..54d875e
Binary files /dev/null and b/assets/tiles/Pine Trees.png differ
diff --git a/assets/tiles/Pine Trees.png.import b/assets/tiles/Pine Trees.png.import
new file mode 100644
index 0000000..ac4712f
--- /dev/null
+++ b/assets/tiles/Pine Trees.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b7nof7f42c53k"
+path="res://.godot/imported/Pine Trees.png-5d0542447401a7a438f46d78754fc0b2.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Pine Trees.png"
+dest_files=["res://.godot/imported/Pine Trees.png-5d0542447401a7a438f46d78754fc0b2.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Pixel Art Furnace and Sawmill.png b/assets/tiles/Pixel Art Furnace and Sawmill.png
new file mode 100644
index 0000000..ef28de8
Binary files /dev/null and b/assets/tiles/Pixel Art Furnace and Sawmill.png differ
diff --git a/assets/tiles/Pixel Art Furnace and Sawmill.png.import b/assets/tiles/Pixel Art Furnace and Sawmill.png.import
new file mode 100644
index 0000000..6db3f82
--- /dev/null
+++ b/assets/tiles/Pixel Art Furnace and Sawmill.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c0jpbowko2q2c"
+path="res://.godot/imported/Pixel Art Furnace and Sawmill.png-654a78b45fd6c12117303ae64bf1b77d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Pixel Art Furnace and Sawmill.png"
+dest_files=["res://.godot/imported/Pixel Art Furnace and Sawmill.png-654a78b45fd6c12117303ae64bf1b77d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Pixel Art Wheat.png b/assets/tiles/Pixel Art Wheat.png
new file mode 100644
index 0000000..5b4ef69
Binary files /dev/null and b/assets/tiles/Pixel Art Wheat.png differ
diff --git a/assets/tiles/Pixel Art Wheat.png.import b/assets/tiles/Pixel Art Wheat.png.import
new file mode 100644
index 0000000..d1f5849
--- /dev/null
+++ b/assets/tiles/Pixel Art Wheat.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bnc4vfag4edir"
+path="res://.godot/imported/Pixel Art Wheat.png-77dc54bbe5a9b1c6e9da9aa6968aabd0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Pixel Art Wheat.png"
+dest_files=["res://.godot/imported/Pixel Art Wheat.png-77dc54bbe5a9b1c6e9da9aa6968aabd0.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/READ ME.txt b/assets/tiles/READ ME.txt
new file mode 100644
index 0000000..273dba9
--- /dev/null
+++ b/assets/tiles/READ ME.txt
@@ -0,0 +1,12 @@
+Thank you for your purchase/download :)
+
+LICENSE:
+✔️ You are allowed to use the assets for:
+Commercial and non-commercial video games and projects
+Modify them as needed and display them on designated websites
+
+❌ However, the following uses are prohibited:
+Reselling, repackaging, or redistributing the assets
+Using them for AI training or NFT projects (Crypto, Blockchain, web3)
+Incorporating them into "game development tools" or printed materials
+
diff --git a/assets/tiles/Snow blizzard sheet frame size 484x274.png b/assets/tiles/Snow blizzard sheet frame size 484x274.png
new file mode 100644
index 0000000..13fd9ac
Binary files /dev/null and b/assets/tiles/Snow blizzard sheet frame size 484x274.png differ
diff --git a/assets/tiles/Snow blizzard sheet frame size 484x274.png.import b/assets/tiles/Snow blizzard sheet frame size 484x274.png.import
new file mode 100644
index 0000000..0692cd2
--- /dev/null
+++ b/assets/tiles/Snow blizzard sheet frame size 484x274.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://yexyk7dfu6np"
+path="res://.godot/imported/Snow blizzard sheet frame size 484x274.png-69e2c44092e3d3650147396dbb2afc4f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Snow blizzard sheet frame size 484x274.png"
+dest_files=["res://.godot/imported/Snow blizzard sheet frame size 484x274.png-69e2c44092e3d3650147396dbb2afc4f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Tree1.png b/assets/tiles/Tree1.png
new file mode 100644
index 0000000..095e2f1
Binary files /dev/null and b/assets/tiles/Tree1.png differ
diff --git a/assets/tiles/Tree1.png.import b/assets/tiles/Tree1.png.import
new file mode 100644
index 0000000..8cef87e
--- /dev/null
+++ b/assets/tiles/Tree1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bh3c5ikkjf85p"
+path="res://.godot/imported/Tree1.png-00609a7fda1165d42fdf5d35fbe55a27.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Tree1.png"
+dest_files=["res://.godot/imported/Tree1.png-00609a7fda1165d42fdf5d35fbe55a27.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Tree2.png b/assets/tiles/Tree2.png
new file mode 100644
index 0000000..fd60186
Binary files /dev/null and b/assets/tiles/Tree2.png differ
diff --git a/assets/tiles/Tree2.png.import b/assets/tiles/Tree2.png.import
new file mode 100644
index 0000000..9e67d94
--- /dev/null
+++ b/assets/tiles/Tree2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bcsciqahef3ne"
+path="res://.godot/imported/Tree2.png-2d2356e95e2c45cead89f0887953625f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Tree2.png"
+dest_files=["res://.godot/imported/Tree2.png-2d2356e95e2c45cead89f0887953625f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Tree3.png b/assets/tiles/Tree3.png
new file mode 100644
index 0000000..436c526
Binary files /dev/null and b/assets/tiles/Tree3.png differ
diff --git a/assets/tiles/Tree3.png.import b/assets/tiles/Tree3.png.import
new file mode 100644
index 0000000..80f0214
--- /dev/null
+++ b/assets/tiles/Tree3.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://w5y2htfrpogp"
+path="res://.godot/imported/Tree3.png-f3bb8dd927973f1540667336503a160b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Tree3.png"
+dest_files=["res://.godot/imported/Tree3.png-f3bb8dd927973f1540667336503a160b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Tree4.png b/assets/tiles/Tree4.png
new file mode 100644
index 0000000..4645791
Binary files /dev/null and b/assets/tiles/Tree4.png differ
diff --git a/assets/tiles/Tree4.png.import b/assets/tiles/Tree4.png.import
new file mode 100644
index 0000000..215c40b
--- /dev/null
+++ b/assets/tiles/Tree4.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dlompd442vrkx"
+path="res://.godot/imported/Tree4.png-0418f04e28b812a29032453125ddce92.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Tree4.png"
+dest_files=["res://.godot/imported/Tree4.png-0418f04e28b812a29032453125ddce92.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Weeping Willow1.png b/assets/tiles/Weeping Willow1.png
new file mode 100644
index 0000000..39c2f4a
Binary files /dev/null and b/assets/tiles/Weeping Willow1.png differ
diff --git a/assets/tiles/Weeping Willow1.png.import b/assets/tiles/Weeping Willow1.png.import
new file mode 100644
index 0000000..5d6e817
--- /dev/null
+++ b/assets/tiles/Weeping Willow1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ctxcopfo0f1nk"
+path="res://.godot/imported/Weeping Willow1.png-a58c237886529b1e29e63f4815745d11.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Weeping Willow1.png"
+dest_files=["res://.godot/imported/Weeping Willow1.png-a58c237886529b1e29e63f4815745d11.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Weeping Willow2.png b/assets/tiles/Weeping Willow2.png
new file mode 100644
index 0000000..d0800e6
Binary files /dev/null and b/assets/tiles/Weeping Willow2.png differ
diff --git a/assets/tiles/Weeping Willow2.png.import b/assets/tiles/Weeping Willow2.png.import
new file mode 100644
index 0000000..1446ddb
--- /dev/null
+++ b/assets/tiles/Weeping Willow2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b2eb520uq6xan"
+path="res://.godot/imported/Weeping Willow2.png-a46fbd00d93f4ecdf043c12b19734660.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Weeping Willow2.png"
+dest_files=["res://.godot/imported/Weeping Willow2.png-a46fbd00d93f4ecdf043c12b19734660.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/Weeping Willow3.png b/assets/tiles/Weeping Willow3.png
new file mode 100644
index 0000000..5ad09a6
Binary files /dev/null and b/assets/tiles/Weeping Willow3.png differ
diff --git a/assets/tiles/Weeping Willow3.png.import b/assets/tiles/Weeping Willow3.png.import
new file mode 100644
index 0000000..9287f9d
--- /dev/null
+++ b/assets/tiles/Weeping Willow3.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://duiifs2y4bhhy"
+path="res://.godot/imported/Weeping Willow3.png-3aea0b883862d28d384c13436556377f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/Weeping Willow3.png"
+dest_files=["res://.godot/imported/Weeping Willow3.png-3aea0b883862d28d384c13436556377f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/autumn leaf.png b/assets/tiles/autumn leaf.png
new file mode 100644
index 0000000..e983d0d
Binary files /dev/null and b/assets/tiles/autumn leaf.png differ
diff --git a/assets/tiles/autumn leaf.png.import b/assets/tiles/autumn leaf.png.import
new file mode 100644
index 0000000..4121657
--- /dev/null
+++ b/assets/tiles/autumn leaf.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b170nuj8i5fu7"
+path="res://.godot/imported/autumn leaf.png-261a1e88bd4b012960537e0a90840cbd.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/autumn leaf.png"
+dest_files=["res://.godot/imported/autumn leaf.png-261a1e88bd4b012960537e0a90840cbd.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/birds1.png b/assets/tiles/birds1.png
new file mode 100644
index 0000000..ad77a97
Binary files /dev/null and b/assets/tiles/birds1.png differ
diff --git a/assets/tiles/birds1.png.import b/assets/tiles/birds1.png.import
new file mode 100644
index 0000000..637fccf
--- /dev/null
+++ b/assets/tiles/birds1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://byqbagcbm5xox"
+path="res://.godot/imported/birds1.png-d06dd88a81b31ddd29694291839f81fe.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/birds1.png"
+dest_files=["res://.godot/imported/birds1.png-d06dd88a81b31ddd29694291839f81fe.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/birds2.png b/assets/tiles/birds2.png
new file mode 100644
index 0000000..d8f7990
Binary files /dev/null and b/assets/tiles/birds2.png differ
diff --git a/assets/tiles/birds2.png.import b/assets/tiles/birds2.png.import
new file mode 100644
index 0000000..1414a9b
--- /dev/null
+++ b/assets/tiles/birds2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bim8jgqthj0m5"
+path="res://.godot/imported/birds2.png-71ad972e2453d6cb39678c59ac9008e8.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/birds2.png"
+dest_files=["res://.godot/imported/birds2.png-71ad972e2453d6cb39678c59ac9008e8.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/birds3.png b/assets/tiles/birds3.png
new file mode 100644
index 0000000..663f69e
Binary files /dev/null and b/assets/tiles/birds3.png differ
diff --git a/assets/tiles/birds3.png.import b/assets/tiles/birds3.png.import
new file mode 100644
index 0000000..3c36316
--- /dev/null
+++ b/assets/tiles/birds3.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dsyppd4uybkt3"
+path="res://.godot/imported/birds3.png-443798afc0156218f4789f490789a76d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/birds3.png"
+dest_files=["res://.godot/imported/birds3.png-443798afc0156218f4789f490789a76d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/birds4.png b/assets/tiles/birds4.png
new file mode 100644
index 0000000..78e16b8
Binary files /dev/null and b/assets/tiles/birds4.png differ
diff --git a/assets/tiles/birds4.png.import b/assets/tiles/birds4.png.import
new file mode 100644
index 0000000..79e4f3b
--- /dev/null
+++ b/assets/tiles/birds4.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://btmumq15ryee7"
+path="res://.godot/imported/birds4.png-c1949b4a97975c35703f66be7644551d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/birds4.png"
+dest_files=["res://.godot/imported/birds4.png-c1949b4a97975c35703f66be7644551d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/cloud1.png b/assets/tiles/cloud1.png
new file mode 100644
index 0000000..b2bddb1
Binary files /dev/null and b/assets/tiles/cloud1.png differ
diff --git a/assets/tiles/cloud1.png.import b/assets/tiles/cloud1.png.import
new file mode 100644
index 0000000..4dc02f4
--- /dev/null
+++ b/assets/tiles/cloud1.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://duyabyf4t1rg1"
+path="res://.godot/imported/cloud1.png-3006681b3417e99421445044a97e2ceb.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/cloud1.png"
+dest_files=["res://.godot/imported/cloud1.png-3006681b3417e99421445044a97e2ceb.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/cloud2.png b/assets/tiles/cloud2.png
new file mode 100644
index 0000000..fc673d8
Binary files /dev/null and b/assets/tiles/cloud2.png differ
diff --git a/assets/tiles/cloud2.png.import b/assets/tiles/cloud2.png.import
new file mode 100644
index 0000000..94aa621
--- /dev/null
+++ b/assets/tiles/cloud2.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://byj8q7tlq84tl"
+path="res://.godot/imported/cloud2.png-17aefff51c5a7c71a6b05cb598620467.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/cloud2.png"
+dest_files=["res://.godot/imported/cloud2.png-17aefff51c5a7c71a6b05cb598620467.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/cloud3.png b/assets/tiles/cloud3.png
new file mode 100644
index 0000000..41c4fc5
Binary files /dev/null and b/assets/tiles/cloud3.png differ
diff --git a/assets/tiles/cloud3.png.import b/assets/tiles/cloud3.png.import
new file mode 100644
index 0000000..af9e785
--- /dev/null
+++ b/assets/tiles/cloud3.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dyim7wq72i1ky"
+path="res://.godot/imported/cloud3.png-41aae251d20a31f881078a67d560eebd.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/cloud3.png"
+dest_files=["res://.godot/imported/cloud3.png-41aae251d20a31f881078a67d560eebd.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/cloud4.png b/assets/tiles/cloud4.png
new file mode 100644
index 0000000..cf3ea57
Binary files /dev/null and b/assets/tiles/cloud4.png differ
diff --git a/assets/tiles/cloud4.png.import b/assets/tiles/cloud4.png.import
new file mode 100644
index 0000000..d700d1b
--- /dev/null
+++ b/assets/tiles/cloud4.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bsf6vi67ajdd0"
+path="res://.godot/imported/cloud4.png-1e49d8537aa89f2a259cd51d64151fc3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/cloud4.png"
+dest_files=["res://.godot/imported/cloud4.png-1e49d8537aa89f2a259cd51d64151fc3.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/cloud5.png b/assets/tiles/cloud5.png
new file mode 100644
index 0000000..4defc2e
Binary files /dev/null and b/assets/tiles/cloud5.png differ
diff --git a/assets/tiles/cloud5.png.import b/assets/tiles/cloud5.png.import
new file mode 100644
index 0000000..a62641e
--- /dev/null
+++ b/assets/tiles/cloud5.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bwsvxf4ahfp6e"
+path="res://.godot/imported/cloud5.png-73179a018820eee0948a3146d49c7dbb.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/cloud5.png"
+dest_files=["res://.godot/imported/cloud5.png-73179a018820eee0948a3146d49c7dbb.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/cloud6.png b/assets/tiles/cloud6.png
new file mode 100644
index 0000000..690a4da
Binary files /dev/null and b/assets/tiles/cloud6.png differ
diff --git a/assets/tiles/cloud6.png.import b/assets/tiles/cloud6.png.import
new file mode 100644
index 0000000..9aecf17
--- /dev/null
+++ b/assets/tiles/cloud6.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://hn3yybaehh6"
+path="res://.godot/imported/cloud6.png-65ac2c08086364c00bc49e4d0e30666a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/cloud6.png"
+dest_files=["res://.godot/imported/cloud6.png-65ac2c08086364c00bc49e4d0e30666a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/hot air balloon.png b/assets/tiles/hot air balloon.png
new file mode 100644
index 0000000..662bef4
Binary files /dev/null and b/assets/tiles/hot air balloon.png differ
diff --git a/assets/tiles/hot air balloon.png.import b/assets/tiles/hot air balloon.png.import
new file mode 100644
index 0000000..ec05694
--- /dev/null
+++ b/assets/tiles/hot air balloon.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://crbmyjmtpi0ey"
+path="res://.godot/imported/hot air balloon.png-849e2e84da5938ad44a5365a8e421d97.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/hot air balloon.png"
+dest_files=["res://.godot/imported/hot air balloon.png-849e2e84da5938ad44a5365a8e421d97.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/pixel Art Bonsai.png b/assets/tiles/pixel Art Bonsai.png
new file mode 100644
index 0000000..9e9df69
Binary files /dev/null and b/assets/tiles/pixel Art Bonsai.png differ
diff --git a/assets/tiles/pixel Art Bonsai.png.import b/assets/tiles/pixel Art Bonsai.png.import
new file mode 100644
index 0000000..51c028d
--- /dev/null
+++ b/assets/tiles/pixel Art Bonsai.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://do1j7ma1j25hb"
+path="res://.godot/imported/pixel Art Bonsai.png-fbcc320621fe7ac67bf2e92060a8d2fd.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/pixel Art Bonsai.png"
+dest_files=["res://.godot/imported/pixel Art Bonsai.png-fbcc320621fe7ac67bf2e92060a8d2fd.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/tiles/sun.png b/assets/tiles/sun.png
new file mode 100644
index 0000000..c8af324
Binary files /dev/null and b/assets/tiles/sun.png differ
diff --git a/assets/tiles/sun.png.import b/assets/tiles/sun.png.import
new file mode 100644
index 0000000..60f21d1
--- /dev/null
+++ b/assets/tiles/sun.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ckvge3k08px5c"
+path="res://.godot/imported/sun.png-a2cbaa13a1f4cc64f8337ca8a52895a2.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/tiles/sun.png"
+dest_files=["res://.godot/imported/sun.png-a2cbaa13a1f4cc64f8337ca8a52895a2.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/arrowBeige_left.png b/assets/ui/arrowBeige_left.png
new file mode 100644
index 0000000..0d2fdaa
Binary files /dev/null and b/assets/ui/arrowBeige_left.png differ
diff --git a/assets/ui/arrowBeige_left.png.import b/assets/ui/arrowBeige_left.png.import
new file mode 100644
index 0000000..70fe391
--- /dev/null
+++ b/assets/ui/arrowBeige_left.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://srekxmo5xwqo"
+path="res://.godot/imported/arrowBeige_left.png-0f53ca5f2f3d0a640414b5e29bff4c54.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/arrowBeige_left.png"
+dest_files=["res://.godot/imported/arrowBeige_left.png-0f53ca5f2f3d0a640414b5e29bff4c54.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/arrowBeige_right.png b/assets/ui/arrowBeige_right.png
new file mode 100644
index 0000000..166bbfe
Binary files /dev/null and b/assets/ui/arrowBeige_right.png differ
diff --git a/assets/ui/arrowBeige_right.png.import b/assets/ui/arrowBeige_right.png.import
new file mode 100644
index 0000000..0c91259
--- /dev/null
+++ b/assets/ui/arrowBeige_right.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://5slj0t1mv4uj"
+path="res://.godot/imported/arrowBeige_right.png-34265011e6269277bdd2054e3b604ac0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/arrowBeige_right.png"
+dest_files=["res://.godot/imported/arrowBeige_right.png-34265011e6269277bdd2054e3b604ac0.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/arrowBlue_left.png b/assets/ui/arrowBlue_left.png
new file mode 100644
index 0000000..05d3b3b
Binary files /dev/null and b/assets/ui/arrowBlue_left.png differ
diff --git a/assets/ui/arrowBlue_left.png.import b/assets/ui/arrowBlue_left.png.import
new file mode 100644
index 0000000..3dec0d8
--- /dev/null
+++ b/assets/ui/arrowBlue_left.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bcmsfqvdiwwjh"
+path="res://.godot/imported/arrowBlue_left.png-8e0d76941a7118af218fcddfad8df9e3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/arrowBlue_left.png"
+dest_files=["res://.godot/imported/arrowBlue_left.png-8e0d76941a7118af218fcddfad8df9e3.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/arrowBlue_right.png b/assets/ui/arrowBlue_right.png
new file mode 100644
index 0000000..51fb299
Binary files /dev/null and b/assets/ui/arrowBlue_right.png differ
diff --git a/assets/ui/arrowBlue_right.png.import b/assets/ui/arrowBlue_right.png.import
new file mode 100644
index 0000000..dfe255b
--- /dev/null
+++ b/assets/ui/arrowBlue_right.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://w4ohc0xysdl7"
+path="res://.godot/imported/arrowBlue_right.png-03eb23bd0dba5f69457d022c61237c80.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/arrowBlue_right.png"
+dest_files=["res://.godot/imported/arrowBlue_right.png-03eb23bd0dba5f69457d022c61237c80.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/arrowBrown_left.png b/assets/ui/arrowBrown_left.png
new file mode 100644
index 0000000..de9961b
Binary files /dev/null and b/assets/ui/arrowBrown_left.png differ
diff --git a/assets/ui/arrowBrown_left.png.import b/assets/ui/arrowBrown_left.png.import
new file mode 100644
index 0000000..dbd1752
--- /dev/null
+++ b/assets/ui/arrowBrown_left.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cqv2ul1stpo7q"
+path="res://.godot/imported/arrowBrown_left.png-cc51701305066423cb4eec79511c9e98.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/arrowBrown_left.png"
+dest_files=["res://.godot/imported/arrowBrown_left.png-cc51701305066423cb4eec79511c9e98.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/arrowBrown_right.png b/assets/ui/arrowBrown_right.png
new file mode 100644
index 0000000..2a6b571
Binary files /dev/null and b/assets/ui/arrowBrown_right.png differ
diff --git a/assets/ui/arrowBrown_right.png.import b/assets/ui/arrowBrown_right.png.import
new file mode 100644
index 0000000..074a1cc
--- /dev/null
+++ b/assets/ui/arrowBrown_right.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://sur63kfi0hso"
+path="res://.godot/imported/arrowBrown_right.png-1814c410932f47ef845ca502e72166f2.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/arrowBrown_right.png"
+dest_files=["res://.godot/imported/arrowBrown_right.png-1814c410932f47ef845ca502e72166f2.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/arrowSilver_left.png b/assets/ui/arrowSilver_left.png
new file mode 100644
index 0000000..8ed60b7
Binary files /dev/null and b/assets/ui/arrowSilver_left.png differ
diff --git a/assets/ui/arrowSilver_left.png.import b/assets/ui/arrowSilver_left.png.import
new file mode 100644
index 0000000..0eb42dc
--- /dev/null
+++ b/assets/ui/arrowSilver_left.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cgmg6cofsbyxn"
+path="res://.godot/imported/arrowSilver_left.png-00ec83de55a069992a72596ad8f1b2f6.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/arrowSilver_left.png"
+dest_files=["res://.godot/imported/arrowSilver_left.png-00ec83de55a069992a72596ad8f1b2f6.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/arrowSilver_right.png b/assets/ui/arrowSilver_right.png
new file mode 100644
index 0000000..be71d37
Binary files /dev/null and b/assets/ui/arrowSilver_right.png differ
diff --git a/assets/ui/arrowSilver_right.png.import b/assets/ui/arrowSilver_right.png.import
new file mode 100644
index 0000000..165aedb
--- /dev/null
+++ b/assets/ui/arrowSilver_right.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://coxm25eiu855w"
+path="res://.godot/imported/arrowSilver_right.png-c0d3abfcbccce704d48e98e22b11fd41.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/arrowSilver_right.png"
+dest_files=["res://.godot/imported/arrowSilver_right.png-c0d3abfcbccce704d48e98e22b11fd41.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBack_horizontalLeft.png b/assets/ui/barBack_horizontalLeft.png
new file mode 100644
index 0000000..801e6b5
Binary files /dev/null and b/assets/ui/barBack_horizontalLeft.png differ
diff --git a/assets/ui/barBack_horizontalLeft.png.import b/assets/ui/barBack_horizontalLeft.png.import
new file mode 100644
index 0000000..32812ca
--- /dev/null
+++ b/assets/ui/barBack_horizontalLeft.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bjxmvssmo6wpr"
+path="res://.godot/imported/barBack_horizontalLeft.png-7571ddaa965e73761944e53467d84784.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBack_horizontalLeft.png"
+dest_files=["res://.godot/imported/barBack_horizontalLeft.png-7571ddaa965e73761944e53467d84784.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBack_horizontalMid.png b/assets/ui/barBack_horizontalMid.png
new file mode 100644
index 0000000..319bdbc
Binary files /dev/null and b/assets/ui/barBack_horizontalMid.png differ
diff --git a/assets/ui/barBack_horizontalMid.png.import b/assets/ui/barBack_horizontalMid.png.import
new file mode 100644
index 0000000..b27e7b6
--- /dev/null
+++ b/assets/ui/barBack_horizontalMid.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dbvssj4sin2hm"
+path="res://.godot/imported/barBack_horizontalMid.png-88ec4eccc190ca9488a781b33ef1aa38.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBack_horizontalMid.png"
+dest_files=["res://.godot/imported/barBack_horizontalMid.png-88ec4eccc190ca9488a781b33ef1aa38.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBack_horizontalRight.png b/assets/ui/barBack_horizontalRight.png
new file mode 100644
index 0000000..c9a850f
Binary files /dev/null and b/assets/ui/barBack_horizontalRight.png differ
diff --git a/assets/ui/barBack_horizontalRight.png.import b/assets/ui/barBack_horizontalRight.png.import
new file mode 100644
index 0000000..8752675
--- /dev/null
+++ b/assets/ui/barBack_horizontalRight.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://563wdlkdryr6"
+path="res://.godot/imported/barBack_horizontalRight.png-6ff5105da0dc32ee118e03b002de4dae.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBack_horizontalRight.png"
+dest_files=["res://.godot/imported/barBack_horizontalRight.png-6ff5105da0dc32ee118e03b002de4dae.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBack_verticalBottom.png b/assets/ui/barBack_verticalBottom.png
new file mode 100644
index 0000000..f0e7064
Binary files /dev/null and b/assets/ui/barBack_verticalBottom.png differ
diff --git a/assets/ui/barBack_verticalBottom.png.import b/assets/ui/barBack_verticalBottom.png.import
new file mode 100644
index 0000000..b590e7b
--- /dev/null
+++ b/assets/ui/barBack_verticalBottom.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://nde3x0qko3bm"
+path="res://.godot/imported/barBack_verticalBottom.png-26347e5ed8f6e699c69e44cbfca12279.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBack_verticalBottom.png"
+dest_files=["res://.godot/imported/barBack_verticalBottom.png-26347e5ed8f6e699c69e44cbfca12279.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBack_verticalMid.png b/assets/ui/barBack_verticalMid.png
new file mode 100644
index 0000000..2d3e8fd
Binary files /dev/null and b/assets/ui/barBack_verticalMid.png differ
diff --git a/assets/ui/barBack_verticalMid.png.import b/assets/ui/barBack_verticalMid.png.import
new file mode 100644
index 0000000..e1f9439
--- /dev/null
+++ b/assets/ui/barBack_verticalMid.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cfinj3t665dbo"
+path="res://.godot/imported/barBack_verticalMid.png-f7426eed13578d474c84a2c9d31c133f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBack_verticalMid.png"
+dest_files=["res://.godot/imported/barBack_verticalMid.png-f7426eed13578d474c84a2c9d31c133f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBack_verticalTop.png b/assets/ui/barBack_verticalTop.png
new file mode 100644
index 0000000..543cd19
Binary files /dev/null and b/assets/ui/barBack_verticalTop.png differ
diff --git a/assets/ui/barBack_verticalTop.png.import b/assets/ui/barBack_verticalTop.png.import
new file mode 100644
index 0000000..18f4c71
--- /dev/null
+++ b/assets/ui/barBack_verticalTop.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bshga2v18ylne"
+path="res://.godot/imported/barBack_verticalTop.png-cfa01f29476e739ce32f6d8a04c8fbd3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBack_verticalTop.png"
+dest_files=["res://.godot/imported/barBack_verticalTop.png-cfa01f29476e739ce32f6d8a04c8fbd3.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBlue_horizontalBlue.png b/assets/ui/barBlue_horizontalBlue.png
new file mode 100644
index 0000000..5367dba
Binary files /dev/null and b/assets/ui/barBlue_horizontalBlue.png differ
diff --git a/assets/ui/barBlue_horizontalBlue.png.import b/assets/ui/barBlue_horizontalBlue.png.import
new file mode 100644
index 0000000..73a9b6b
--- /dev/null
+++ b/assets/ui/barBlue_horizontalBlue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c1yonrh1bsmsi"
+path="res://.godot/imported/barBlue_horizontalBlue.png-46c5533c6e1a187f6d0eeb786209b958.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBlue_horizontalBlue.png"
+dest_files=["res://.godot/imported/barBlue_horizontalBlue.png-46c5533c6e1a187f6d0eeb786209b958.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBlue_horizontalLeft.png b/assets/ui/barBlue_horizontalLeft.png
new file mode 100644
index 0000000..0245eb3
Binary files /dev/null and b/assets/ui/barBlue_horizontalLeft.png differ
diff --git a/assets/ui/barBlue_horizontalLeft.png.import b/assets/ui/barBlue_horizontalLeft.png.import
new file mode 100644
index 0000000..3f66e74
--- /dev/null
+++ b/assets/ui/barBlue_horizontalLeft.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://4uewvlrkce73"
+path="res://.godot/imported/barBlue_horizontalLeft.png-50a001f141bd835660ed6800dfd912f6.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBlue_horizontalLeft.png"
+dest_files=["res://.godot/imported/barBlue_horizontalLeft.png-50a001f141bd835660ed6800dfd912f6.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBlue_horizontalRight.png b/assets/ui/barBlue_horizontalRight.png
new file mode 100644
index 0000000..e94c0c6
Binary files /dev/null and b/assets/ui/barBlue_horizontalRight.png differ
diff --git a/assets/ui/barBlue_horizontalRight.png.import b/assets/ui/barBlue_horizontalRight.png.import
new file mode 100644
index 0000000..6509a4b
--- /dev/null
+++ b/assets/ui/barBlue_horizontalRight.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cvcqrrhbsbfym"
+path="res://.godot/imported/barBlue_horizontalRight.png-28a28bd75fe01a0d58c713eeed3c0548.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBlue_horizontalRight.png"
+dest_files=["res://.godot/imported/barBlue_horizontalRight.png-28a28bd75fe01a0d58c713eeed3c0548.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBlue_verticalBottom.png b/assets/ui/barBlue_verticalBottom.png
new file mode 100644
index 0000000..2834db9
Binary files /dev/null and b/assets/ui/barBlue_verticalBottom.png differ
diff --git a/assets/ui/barBlue_verticalBottom.png.import b/assets/ui/barBlue_verticalBottom.png.import
new file mode 100644
index 0000000..329cfc6
--- /dev/null
+++ b/assets/ui/barBlue_verticalBottom.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bdkvp6b62c7a1"
+path="res://.godot/imported/barBlue_verticalBottom.png-113207411aca7a25eed895b9c06b2158.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBlue_verticalBottom.png"
+dest_files=["res://.godot/imported/barBlue_verticalBottom.png-113207411aca7a25eed895b9c06b2158.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBlue_verticalMid.png b/assets/ui/barBlue_verticalMid.png
new file mode 100644
index 0000000..7629e55
Binary files /dev/null and b/assets/ui/barBlue_verticalMid.png differ
diff --git a/assets/ui/barBlue_verticalMid.png.import b/assets/ui/barBlue_verticalMid.png.import
new file mode 100644
index 0000000..3bb0672
--- /dev/null
+++ b/assets/ui/barBlue_verticalMid.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://rdy7oybqxkuu"
+path="res://.godot/imported/barBlue_verticalMid.png-64c97dba4a58dfb75922f71f1334df4f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBlue_verticalMid.png"
+dest_files=["res://.godot/imported/barBlue_verticalMid.png-64c97dba4a58dfb75922f71f1334df4f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barBlue_verticalTop.png b/assets/ui/barBlue_verticalTop.png
new file mode 100644
index 0000000..18dda58
Binary files /dev/null and b/assets/ui/barBlue_verticalTop.png differ
diff --git a/assets/ui/barBlue_verticalTop.png.import b/assets/ui/barBlue_verticalTop.png.import
new file mode 100644
index 0000000..4c064c8
--- /dev/null
+++ b/assets/ui/barBlue_verticalTop.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cjv5okcp7jmb5"
+path="res://.godot/imported/barBlue_verticalTop.png-a47e5efe66fc1e41b30733869c03595d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barBlue_verticalTop.png"
+dest_files=["res://.godot/imported/barBlue_verticalTop.png-a47e5efe66fc1e41b30733869c03595d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barGreen_horizontalLeft.png b/assets/ui/barGreen_horizontalLeft.png
new file mode 100644
index 0000000..5b08f21
Binary files /dev/null and b/assets/ui/barGreen_horizontalLeft.png differ
diff --git a/assets/ui/barGreen_horizontalLeft.png.import b/assets/ui/barGreen_horizontalLeft.png.import
new file mode 100644
index 0000000..4833876
--- /dev/null
+++ b/assets/ui/barGreen_horizontalLeft.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://piqdh0ynkfsm"
+path="res://.godot/imported/barGreen_horizontalLeft.png-e9865f3fcaa1956530b119d55b30195f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barGreen_horizontalLeft.png"
+dest_files=["res://.godot/imported/barGreen_horizontalLeft.png-e9865f3fcaa1956530b119d55b30195f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barGreen_horizontalMid.png b/assets/ui/barGreen_horizontalMid.png
new file mode 100644
index 0000000..f7b5d77
Binary files /dev/null and b/assets/ui/barGreen_horizontalMid.png differ
diff --git a/assets/ui/barGreen_horizontalMid.png.import b/assets/ui/barGreen_horizontalMid.png.import
new file mode 100644
index 0000000..576931d
--- /dev/null
+++ b/assets/ui/barGreen_horizontalMid.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://di8fe2c2opfb8"
+path="res://.godot/imported/barGreen_horizontalMid.png-25907871b75485a2edb3fbfbd6fe9050.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barGreen_horizontalMid.png"
+dest_files=["res://.godot/imported/barGreen_horizontalMid.png-25907871b75485a2edb3fbfbd6fe9050.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barGreen_horizontalRight.png b/assets/ui/barGreen_horizontalRight.png
new file mode 100644
index 0000000..407b61b
Binary files /dev/null and b/assets/ui/barGreen_horizontalRight.png differ
diff --git a/assets/ui/barGreen_horizontalRight.png.import b/assets/ui/barGreen_horizontalRight.png.import
new file mode 100644
index 0000000..ec2258d
--- /dev/null
+++ b/assets/ui/barGreen_horizontalRight.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dvk8qal1moiaa"
+path="res://.godot/imported/barGreen_horizontalRight.png-6efcf445b472a9138cc5afffdafd1002.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barGreen_horizontalRight.png"
+dest_files=["res://.godot/imported/barGreen_horizontalRight.png-6efcf445b472a9138cc5afffdafd1002.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barGreen_verticalBottom.png b/assets/ui/barGreen_verticalBottom.png
new file mode 100644
index 0000000..1f733d4
Binary files /dev/null and b/assets/ui/barGreen_verticalBottom.png differ
diff --git a/assets/ui/barGreen_verticalBottom.png.import b/assets/ui/barGreen_verticalBottom.png.import
new file mode 100644
index 0000000..b7c7604
--- /dev/null
+++ b/assets/ui/barGreen_verticalBottom.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://crlms5gm66hyl"
+path="res://.godot/imported/barGreen_verticalBottom.png-2408a0017c18309002d2e21219c99a7c.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barGreen_verticalBottom.png"
+dest_files=["res://.godot/imported/barGreen_verticalBottom.png-2408a0017c18309002d2e21219c99a7c.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barGreen_verticalMid.png b/assets/ui/barGreen_verticalMid.png
new file mode 100644
index 0000000..03ff210
Binary files /dev/null and b/assets/ui/barGreen_verticalMid.png differ
diff --git a/assets/ui/barGreen_verticalMid.png.import b/assets/ui/barGreen_verticalMid.png.import
new file mode 100644
index 0000000..5f6a67d
--- /dev/null
+++ b/assets/ui/barGreen_verticalMid.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://tmq2om40v0cd"
+path="res://.godot/imported/barGreen_verticalMid.png-92f32201a8a7b6cfac0361f0389f6eb5.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barGreen_verticalMid.png"
+dest_files=["res://.godot/imported/barGreen_verticalMid.png-92f32201a8a7b6cfac0361f0389f6eb5.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barGreen_verticalTop.png b/assets/ui/barGreen_verticalTop.png
new file mode 100644
index 0000000..235afa0
Binary files /dev/null and b/assets/ui/barGreen_verticalTop.png differ
diff --git a/assets/ui/barGreen_verticalTop.png.import b/assets/ui/barGreen_verticalTop.png.import
new file mode 100644
index 0000000..e7ddf6e
--- /dev/null
+++ b/assets/ui/barGreen_verticalTop.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ffcd4m0t5nqf"
+path="res://.godot/imported/barGreen_verticalTop.png-b1a0bf9bdeb8642f2dd0348f4ab9aaa3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barGreen_verticalTop.png"
+dest_files=["res://.godot/imported/barGreen_verticalTop.png-b1a0bf9bdeb8642f2dd0348f4ab9aaa3.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barRed_horizontalLeft.png b/assets/ui/barRed_horizontalLeft.png
new file mode 100644
index 0000000..0d8e7a6
Binary files /dev/null and b/assets/ui/barRed_horizontalLeft.png differ
diff --git a/assets/ui/barRed_horizontalLeft.png.import b/assets/ui/barRed_horizontalLeft.png.import
new file mode 100644
index 0000000..5868b74
--- /dev/null
+++ b/assets/ui/barRed_horizontalLeft.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://rupiem7jp16s"
+path="res://.godot/imported/barRed_horizontalLeft.png-2a6136e3bdbf06ced2f0b7acb905b744.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barRed_horizontalLeft.png"
+dest_files=["res://.godot/imported/barRed_horizontalLeft.png-2a6136e3bdbf06ced2f0b7acb905b744.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barRed_horizontalMid.png b/assets/ui/barRed_horizontalMid.png
new file mode 100644
index 0000000..99da881
Binary files /dev/null and b/assets/ui/barRed_horizontalMid.png differ
diff --git a/assets/ui/barRed_horizontalMid.png.import b/assets/ui/barRed_horizontalMid.png.import
new file mode 100644
index 0000000..03b1a62
--- /dev/null
+++ b/assets/ui/barRed_horizontalMid.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dj6y4gd0jfwgg"
+path="res://.godot/imported/barRed_horizontalMid.png-a53b0689d590076e6cd71c6ebd8f8f98.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barRed_horizontalMid.png"
+dest_files=["res://.godot/imported/barRed_horizontalMid.png-a53b0689d590076e6cd71c6ebd8f8f98.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barRed_horizontalRight.png b/assets/ui/barRed_horizontalRight.png
new file mode 100644
index 0000000..9ec2bd4
Binary files /dev/null and b/assets/ui/barRed_horizontalRight.png differ
diff --git a/assets/ui/barRed_horizontalRight.png.import b/assets/ui/barRed_horizontalRight.png.import
new file mode 100644
index 0000000..d6e49ae
--- /dev/null
+++ b/assets/ui/barRed_horizontalRight.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bn12y448q38tt"
+path="res://.godot/imported/barRed_horizontalRight.png-6f0252a9a324433d6979efa43212e32e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barRed_horizontalRight.png"
+dest_files=["res://.godot/imported/barRed_horizontalRight.png-6f0252a9a324433d6979efa43212e32e.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barRed_verticalBottom.png b/assets/ui/barRed_verticalBottom.png
new file mode 100644
index 0000000..767d6a4
Binary files /dev/null and b/assets/ui/barRed_verticalBottom.png differ
diff --git a/assets/ui/barRed_verticalBottom.png.import b/assets/ui/barRed_verticalBottom.png.import
new file mode 100644
index 0000000..e9e5c87
--- /dev/null
+++ b/assets/ui/barRed_verticalBottom.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://nta3qbbgt8cq"
+path="res://.godot/imported/barRed_verticalBottom.png-63f34e93488e0ad01a4ecbb8b1e39b94.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barRed_verticalBottom.png"
+dest_files=["res://.godot/imported/barRed_verticalBottom.png-63f34e93488e0ad01a4ecbb8b1e39b94.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barRed_verticalMid.png b/assets/ui/barRed_verticalMid.png
new file mode 100644
index 0000000..934e6f8
Binary files /dev/null and b/assets/ui/barRed_verticalMid.png differ
diff --git a/assets/ui/barRed_verticalMid.png.import b/assets/ui/barRed_verticalMid.png.import
new file mode 100644
index 0000000..add2678
--- /dev/null
+++ b/assets/ui/barRed_verticalMid.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cj2yqw1p7k3xo"
+path="res://.godot/imported/barRed_verticalMid.png-bd97af78a01839f91af60c950f49cd2a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barRed_verticalMid.png"
+dest_files=["res://.godot/imported/barRed_verticalMid.png-bd97af78a01839f91af60c950f49cd2a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barRed_verticalTop.png b/assets/ui/barRed_verticalTop.png
new file mode 100644
index 0000000..3510193
Binary files /dev/null and b/assets/ui/barRed_verticalTop.png differ
diff --git a/assets/ui/barRed_verticalTop.png.import b/assets/ui/barRed_verticalTop.png.import
new file mode 100644
index 0000000..c7c239f
--- /dev/null
+++ b/assets/ui/barRed_verticalTop.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d1atl4ri6rxco"
+path="res://.godot/imported/barRed_verticalTop.png-a1d6520fac8dcd118433cc128483bdbb.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barRed_verticalTop.png"
+dest_files=["res://.godot/imported/barRed_verticalTop.png-a1d6520fac8dcd118433cc128483bdbb.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barYellow_horizontalLeft.png b/assets/ui/barYellow_horizontalLeft.png
new file mode 100644
index 0000000..79c4b63
Binary files /dev/null and b/assets/ui/barYellow_horizontalLeft.png differ
diff --git a/assets/ui/barYellow_horizontalLeft.png.import b/assets/ui/barYellow_horizontalLeft.png.import
new file mode 100644
index 0000000..4ad396a
--- /dev/null
+++ b/assets/ui/barYellow_horizontalLeft.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://clmu3tbiy0kqv"
+path="res://.godot/imported/barYellow_horizontalLeft.png-9bd24904c4183333d268b500fa730c15.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barYellow_horizontalLeft.png"
+dest_files=["res://.godot/imported/barYellow_horizontalLeft.png-9bd24904c4183333d268b500fa730c15.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barYellow_horizontalMid.png b/assets/ui/barYellow_horizontalMid.png
new file mode 100644
index 0000000..38f37b6
Binary files /dev/null and b/assets/ui/barYellow_horizontalMid.png differ
diff --git a/assets/ui/barYellow_horizontalMid.png.import b/assets/ui/barYellow_horizontalMid.png.import
new file mode 100644
index 0000000..99ffdf7
--- /dev/null
+++ b/assets/ui/barYellow_horizontalMid.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bxmx1grw5wn2c"
+path="res://.godot/imported/barYellow_horizontalMid.png-e5822bc30b67f506fb87cac06e73e344.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barYellow_horizontalMid.png"
+dest_files=["res://.godot/imported/barYellow_horizontalMid.png-e5822bc30b67f506fb87cac06e73e344.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barYellow_horizontalRight.png b/assets/ui/barYellow_horizontalRight.png
new file mode 100644
index 0000000..3d00f78
Binary files /dev/null and b/assets/ui/barYellow_horizontalRight.png differ
diff --git a/assets/ui/barYellow_horizontalRight.png.import b/assets/ui/barYellow_horizontalRight.png.import
new file mode 100644
index 0000000..67daf28
--- /dev/null
+++ b/assets/ui/barYellow_horizontalRight.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://calkn3otdjf24"
+path="res://.godot/imported/barYellow_horizontalRight.png-834dae7f25891b7979da579ec17e543c.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barYellow_horizontalRight.png"
+dest_files=["res://.godot/imported/barYellow_horizontalRight.png-834dae7f25891b7979da579ec17e543c.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barYellow_verticalBottom.png b/assets/ui/barYellow_verticalBottom.png
new file mode 100644
index 0000000..d0cc9d7
Binary files /dev/null and b/assets/ui/barYellow_verticalBottom.png differ
diff --git a/assets/ui/barYellow_verticalBottom.png.import b/assets/ui/barYellow_verticalBottom.png.import
new file mode 100644
index 0000000..ae7bbe2
--- /dev/null
+++ b/assets/ui/barYellow_verticalBottom.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cqfagn7yrfu61"
+path="res://.godot/imported/barYellow_verticalBottom.png-57ad0bc0726b9bb82fdb0cc95438c28c.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barYellow_verticalBottom.png"
+dest_files=["res://.godot/imported/barYellow_verticalBottom.png-57ad0bc0726b9bb82fdb0cc95438c28c.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barYellow_verticalMid.png b/assets/ui/barYellow_verticalMid.png
new file mode 100644
index 0000000..e249125
Binary files /dev/null and b/assets/ui/barYellow_verticalMid.png differ
diff --git a/assets/ui/barYellow_verticalMid.png.import b/assets/ui/barYellow_verticalMid.png.import
new file mode 100644
index 0000000..2c89b73
--- /dev/null
+++ b/assets/ui/barYellow_verticalMid.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bdkbhidtmbffg"
+path="res://.godot/imported/barYellow_verticalMid.png-184e6e7f7c15a179410450f3e629eb9a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barYellow_verticalMid.png"
+dest_files=["res://.godot/imported/barYellow_verticalMid.png-184e6e7f7c15a179410450f3e629eb9a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/barYellow_verticalTop.png b/assets/ui/barYellow_verticalTop.png
new file mode 100644
index 0000000..18b96ab
Binary files /dev/null and b/assets/ui/barYellow_verticalTop.png differ
diff --git a/assets/ui/barYellow_verticalTop.png.import b/assets/ui/barYellow_verticalTop.png.import
new file mode 100644
index 0000000..71f497c
--- /dev/null
+++ b/assets/ui/barYellow_verticalTop.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bf32uih5n7tax"
+path="res://.godot/imported/barYellow_verticalTop.png-6c5622d840a6d1c99824683265c35ca9.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/barYellow_verticalTop.png"
+dest_files=["res://.godot/imported/barYellow_verticalTop.png-6c5622d840a6d1c99824683265c35ca9.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonLong_beige.png b/assets/ui/buttonLong_beige.png
new file mode 100644
index 0000000..c9b3537
Binary files /dev/null and b/assets/ui/buttonLong_beige.png differ
diff --git a/assets/ui/buttonLong_beige.png.import b/assets/ui/buttonLong_beige.png.import
new file mode 100644
index 0000000..654782b
--- /dev/null
+++ b/assets/ui/buttonLong_beige.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://udl3cg4sv7hd"
+path="res://.godot/imported/buttonLong_beige.png-343609c72e3f70a75709ca874c2ff9d5.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonLong_beige.png"
+dest_files=["res://.godot/imported/buttonLong_beige.png-343609c72e3f70a75709ca874c2ff9d5.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonLong_beige_pressed.png b/assets/ui/buttonLong_beige_pressed.png
new file mode 100644
index 0000000..2537878
Binary files /dev/null and b/assets/ui/buttonLong_beige_pressed.png differ
diff --git a/assets/ui/buttonLong_beige_pressed.png.import b/assets/ui/buttonLong_beige_pressed.png.import
new file mode 100644
index 0000000..94a1cef
--- /dev/null
+++ b/assets/ui/buttonLong_beige_pressed.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c3gmw2rffktva"
+path="res://.godot/imported/buttonLong_beige_pressed.png-1a9e3e608e2eb895de26b1f2d6b54111.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonLong_beige_pressed.png"
+dest_files=["res://.godot/imported/buttonLong_beige_pressed.png-1a9e3e608e2eb895de26b1f2d6b54111.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonLong_blue.png b/assets/ui/buttonLong_blue.png
new file mode 100644
index 0000000..cbaf8d7
Binary files /dev/null and b/assets/ui/buttonLong_blue.png differ
diff --git a/assets/ui/buttonLong_blue.png.import b/assets/ui/buttonLong_blue.png.import
new file mode 100644
index 0000000..7df5259
--- /dev/null
+++ b/assets/ui/buttonLong_blue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ddghl4cooepr1"
+path="res://.godot/imported/buttonLong_blue.png-4adc378d278de73e28f7cf8423e59277.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonLong_blue.png"
+dest_files=["res://.godot/imported/buttonLong_blue.png-4adc378d278de73e28f7cf8423e59277.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonLong_blue_pressed.png b/assets/ui/buttonLong_blue_pressed.png
new file mode 100644
index 0000000..8ad0b5c
Binary files /dev/null and b/assets/ui/buttonLong_blue_pressed.png differ
diff --git a/assets/ui/buttonLong_blue_pressed.png.import b/assets/ui/buttonLong_blue_pressed.png.import
new file mode 100644
index 0000000..8944ba9
--- /dev/null
+++ b/assets/ui/buttonLong_blue_pressed.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bk377v70i8bsw"
+path="res://.godot/imported/buttonLong_blue_pressed.png-a3fd522211f26c86f4fb2b22077d92b4.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonLong_blue_pressed.png"
+dest_files=["res://.godot/imported/buttonLong_blue_pressed.png-a3fd522211f26c86f4fb2b22077d92b4.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonLong_brown.png b/assets/ui/buttonLong_brown.png
new file mode 100644
index 0000000..299dc59
Binary files /dev/null and b/assets/ui/buttonLong_brown.png differ
diff --git a/assets/ui/buttonLong_brown.png.import b/assets/ui/buttonLong_brown.png.import
new file mode 100644
index 0000000..c9474cf
--- /dev/null
+++ b/assets/ui/buttonLong_brown.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dx134esqj3kg3"
+path="res://.godot/imported/buttonLong_brown.png-5abc76c70fc786e590e8e07655d8190b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonLong_brown.png"
+dest_files=["res://.godot/imported/buttonLong_brown.png-5abc76c70fc786e590e8e07655d8190b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonLong_brown_pressed.png b/assets/ui/buttonLong_brown_pressed.png
new file mode 100644
index 0000000..ec0a494
Binary files /dev/null and b/assets/ui/buttonLong_brown_pressed.png differ
diff --git a/assets/ui/buttonLong_brown_pressed.png.import b/assets/ui/buttonLong_brown_pressed.png.import
new file mode 100644
index 0000000..003cef7
--- /dev/null
+++ b/assets/ui/buttonLong_brown_pressed.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bmdc4875jf16r"
+path="res://.godot/imported/buttonLong_brown_pressed.png-87ba9c553df5ff6f51d2c6e37c53ca40.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonLong_brown_pressed.png"
+dest_files=["res://.godot/imported/buttonLong_brown_pressed.png-87ba9c553df5ff6f51d2c6e37c53ca40.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonLong_grey.png b/assets/ui/buttonLong_grey.png
new file mode 100644
index 0000000..b8c3fe0
Binary files /dev/null and b/assets/ui/buttonLong_grey.png differ
diff --git a/assets/ui/buttonLong_grey.png.import b/assets/ui/buttonLong_grey.png.import
new file mode 100644
index 0000000..4e89833
--- /dev/null
+++ b/assets/ui/buttonLong_grey.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://f0tde4s55m2o"
+path="res://.godot/imported/buttonLong_grey.png-47cd3a8d8d25a8decc72a7ea5b7f8efa.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonLong_grey.png"
+dest_files=["res://.godot/imported/buttonLong_grey.png-47cd3a8d8d25a8decc72a7ea5b7f8efa.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonLong_grey_pressed.png b/assets/ui/buttonLong_grey_pressed.png
new file mode 100644
index 0000000..ef42744
Binary files /dev/null and b/assets/ui/buttonLong_grey_pressed.png differ
diff --git a/assets/ui/buttonLong_grey_pressed.png.import b/assets/ui/buttonLong_grey_pressed.png.import
new file mode 100644
index 0000000..ce968e5
--- /dev/null
+++ b/assets/ui/buttonLong_grey_pressed.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b64ocw5it8blk"
+path="res://.godot/imported/buttonLong_grey_pressed.png-63d1e5997263dede3d6c81199b9df2e6.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonLong_grey_pressed.png"
+dest_files=["res://.godot/imported/buttonLong_grey_pressed.png-63d1e5997263dede3d6c81199b9df2e6.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonRound_beige.png b/assets/ui/buttonRound_beige.png
new file mode 100644
index 0000000..69cbb7b
Binary files /dev/null and b/assets/ui/buttonRound_beige.png differ
diff --git a/assets/ui/buttonRound_beige.png.import b/assets/ui/buttonRound_beige.png.import
new file mode 100644
index 0000000..842fcc9
--- /dev/null
+++ b/assets/ui/buttonRound_beige.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c0q31eoc6xb5n"
+path="res://.godot/imported/buttonRound_beige.png-83dc065a5e7ca08ea8f263b7d2611012.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonRound_beige.png"
+dest_files=["res://.godot/imported/buttonRound_beige.png-83dc065a5e7ca08ea8f263b7d2611012.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonRound_blue.png b/assets/ui/buttonRound_blue.png
new file mode 100644
index 0000000..f6fb596
Binary files /dev/null and b/assets/ui/buttonRound_blue.png differ
diff --git a/assets/ui/buttonRound_blue.png.import b/assets/ui/buttonRound_blue.png.import
new file mode 100644
index 0000000..0f0b528
--- /dev/null
+++ b/assets/ui/buttonRound_blue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://2f8uugt2rx6r"
+path="res://.godot/imported/buttonRound_blue.png-1d0b7b3593c605b448c853ba5fd429bd.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonRound_blue.png"
+dest_files=["res://.godot/imported/buttonRound_blue.png-1d0b7b3593c605b448c853ba5fd429bd.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonRound_brown.png b/assets/ui/buttonRound_brown.png
new file mode 100644
index 0000000..cb824ea
Binary files /dev/null and b/assets/ui/buttonRound_brown.png differ
diff --git a/assets/ui/buttonRound_brown.png.import b/assets/ui/buttonRound_brown.png.import
new file mode 100644
index 0000000..8769d14
--- /dev/null
+++ b/assets/ui/buttonRound_brown.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://r8crtreqte8x"
+path="res://.godot/imported/buttonRound_brown.png-9cd287656137243cbb20858db4813d61.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonRound_brown.png"
+dest_files=["res://.godot/imported/buttonRound_brown.png-9cd287656137243cbb20858db4813d61.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonRound_grey.png b/assets/ui/buttonRound_grey.png
new file mode 100644
index 0000000..1fe89f8
Binary files /dev/null and b/assets/ui/buttonRound_grey.png differ
diff --git a/assets/ui/buttonRound_grey.png.import b/assets/ui/buttonRound_grey.png.import
new file mode 100644
index 0000000..325f68e
--- /dev/null
+++ b/assets/ui/buttonRound_grey.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://catpkep62k4g4"
+path="res://.godot/imported/buttonRound_grey.png-db851ee7f12b8c0c0ef60a2697f906f6.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonRound_grey.png"
+dest_files=["res://.godot/imported/buttonRound_grey.png-db851ee7f12b8c0c0ef60a2697f906f6.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonSquare_beige.png b/assets/ui/buttonSquare_beige.png
new file mode 100644
index 0000000..15ecc1c
Binary files /dev/null and b/assets/ui/buttonSquare_beige.png differ
diff --git a/assets/ui/buttonSquare_beige.png.import b/assets/ui/buttonSquare_beige.png.import
new file mode 100644
index 0000000..e759692
--- /dev/null
+++ b/assets/ui/buttonSquare_beige.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://8v8phok3u6b4"
+path="res://.godot/imported/buttonSquare_beige.png-e0d79f87d977fde1af7a0e8e040d1f3e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonSquare_beige.png"
+dest_files=["res://.godot/imported/buttonSquare_beige.png-e0d79f87d977fde1af7a0e8e040d1f3e.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonSquare_beige_pressed.png b/assets/ui/buttonSquare_beige_pressed.png
new file mode 100644
index 0000000..2465c87
Binary files /dev/null and b/assets/ui/buttonSquare_beige_pressed.png differ
diff --git a/assets/ui/buttonSquare_beige_pressed.png.import b/assets/ui/buttonSquare_beige_pressed.png.import
new file mode 100644
index 0000000..c0e5636
--- /dev/null
+++ b/assets/ui/buttonSquare_beige_pressed.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dj0820w1h577p"
+path="res://.godot/imported/buttonSquare_beige_pressed.png-5524b128d922148cdcac364719d0c66f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonSquare_beige_pressed.png"
+dest_files=["res://.godot/imported/buttonSquare_beige_pressed.png-5524b128d922148cdcac364719d0c66f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonSquare_blue.png b/assets/ui/buttonSquare_blue.png
new file mode 100644
index 0000000..c165e51
Binary files /dev/null and b/assets/ui/buttonSquare_blue.png differ
diff --git a/assets/ui/buttonSquare_blue.png.import b/assets/ui/buttonSquare_blue.png.import
new file mode 100644
index 0000000..7977c01
--- /dev/null
+++ b/assets/ui/buttonSquare_blue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://kf6ly70f4d5r"
+path="res://.godot/imported/buttonSquare_blue.png-30e6f1e409767955ba4671bcfe1839f8.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonSquare_blue.png"
+dest_files=["res://.godot/imported/buttonSquare_blue.png-30e6f1e409767955ba4671bcfe1839f8.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonSquare_blue_pressed.png b/assets/ui/buttonSquare_blue_pressed.png
new file mode 100644
index 0000000..8ab31c5
Binary files /dev/null and b/assets/ui/buttonSquare_blue_pressed.png differ
diff --git a/assets/ui/buttonSquare_blue_pressed.png.import b/assets/ui/buttonSquare_blue_pressed.png.import
new file mode 100644
index 0000000..d96eae8
--- /dev/null
+++ b/assets/ui/buttonSquare_blue_pressed.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cmaxrrbd2hsmq"
+path="res://.godot/imported/buttonSquare_blue_pressed.png-9e0f0d7a078e067f76d871ec42105992.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonSquare_blue_pressed.png"
+dest_files=["res://.godot/imported/buttonSquare_blue_pressed.png-9e0f0d7a078e067f76d871ec42105992.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonSquare_brown.png b/assets/ui/buttonSquare_brown.png
new file mode 100644
index 0000000..1707aab
Binary files /dev/null and b/assets/ui/buttonSquare_brown.png differ
diff --git a/assets/ui/buttonSquare_brown.png.import b/assets/ui/buttonSquare_brown.png.import
new file mode 100644
index 0000000..31803ec
--- /dev/null
+++ b/assets/ui/buttonSquare_brown.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://rf0ha6dergrh"
+path="res://.godot/imported/buttonSquare_brown.png-34b0e55a2f0aee0d38ac71614620f170.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonSquare_brown.png"
+dest_files=["res://.godot/imported/buttonSquare_brown.png-34b0e55a2f0aee0d38ac71614620f170.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonSquare_brown_pressed.png b/assets/ui/buttonSquare_brown_pressed.png
new file mode 100644
index 0000000..0ea2427
Binary files /dev/null and b/assets/ui/buttonSquare_brown_pressed.png differ
diff --git a/assets/ui/buttonSquare_brown_pressed.png.import b/assets/ui/buttonSquare_brown_pressed.png.import
new file mode 100644
index 0000000..8027d90
--- /dev/null
+++ b/assets/ui/buttonSquare_brown_pressed.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://sal60j6grexs"
+path="res://.godot/imported/buttonSquare_brown_pressed.png-1c9584dc85a7e7b12cd6d25b08dd1bcd.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonSquare_brown_pressed.png"
+dest_files=["res://.godot/imported/buttonSquare_brown_pressed.png-1c9584dc85a7e7b12cd6d25b08dd1bcd.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonSquare_grey.png b/assets/ui/buttonSquare_grey.png
new file mode 100644
index 0000000..f21b17e
Binary files /dev/null and b/assets/ui/buttonSquare_grey.png differ
diff --git a/assets/ui/buttonSquare_grey.png.import b/assets/ui/buttonSquare_grey.png.import
new file mode 100644
index 0000000..614b195
--- /dev/null
+++ b/assets/ui/buttonSquare_grey.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ckn8gl6utlsfd"
+path="res://.godot/imported/buttonSquare_grey.png-eb6e98bca27b7a935ea01bfa453edbc7.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonSquare_grey.png"
+dest_files=["res://.godot/imported/buttonSquare_grey.png-eb6e98bca27b7a935ea01bfa453edbc7.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/buttonSquare_grey_pressed.png b/assets/ui/buttonSquare_grey_pressed.png
new file mode 100644
index 0000000..bf7b410
Binary files /dev/null and b/assets/ui/buttonSquare_grey_pressed.png differ
diff --git a/assets/ui/buttonSquare_grey_pressed.png.import b/assets/ui/buttonSquare_grey_pressed.png.import
new file mode 100644
index 0000000..ed86249
--- /dev/null
+++ b/assets/ui/buttonSquare_grey_pressed.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://deiu2q3yixgs8"
+path="res://.godot/imported/buttonSquare_grey_pressed.png-3e26c1ab8406e4e0b15c670c0d8948f4.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/buttonSquare_grey_pressed.png"
+dest_files=["res://.godot/imported/buttonSquare_grey_pressed.png-3e26c1ab8406e4e0b15c670c0d8948f4.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/cursorGauntlet_blue.png b/assets/ui/cursorGauntlet_blue.png
new file mode 100644
index 0000000..ab9eaaf
Binary files /dev/null and b/assets/ui/cursorGauntlet_blue.png differ
diff --git a/assets/ui/cursorGauntlet_blue.png.import b/assets/ui/cursorGauntlet_blue.png.import
new file mode 100644
index 0000000..f3cf94c
--- /dev/null
+++ b/assets/ui/cursorGauntlet_blue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://eatlpiswwdhv"
+path="res://.godot/imported/cursorGauntlet_blue.png-7cd2d1ac9557003d14b43b1ddce848ea.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/cursorGauntlet_blue.png"
+dest_files=["res://.godot/imported/cursorGauntlet_blue.png-7cd2d1ac9557003d14b43b1ddce848ea.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/cursorGauntlet_bronze.png b/assets/ui/cursorGauntlet_bronze.png
new file mode 100644
index 0000000..379b6f5
Binary files /dev/null and b/assets/ui/cursorGauntlet_bronze.png differ
diff --git a/assets/ui/cursorGauntlet_bronze.png.import b/assets/ui/cursorGauntlet_bronze.png.import
new file mode 100644
index 0000000..fd69874
--- /dev/null
+++ b/assets/ui/cursorGauntlet_bronze.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://p5dr7rr6shh6"
+path="res://.godot/imported/cursorGauntlet_bronze.png-d2f2394c49dcdac4ef6a07e00a48ca1c.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/cursorGauntlet_bronze.png"
+dest_files=["res://.godot/imported/cursorGauntlet_bronze.png-d2f2394c49dcdac4ef6a07e00a48ca1c.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/cursorGauntlet_grey.png b/assets/ui/cursorGauntlet_grey.png
new file mode 100644
index 0000000..b6f84c3
Binary files /dev/null and b/assets/ui/cursorGauntlet_grey.png differ
diff --git a/assets/ui/cursorGauntlet_grey.png.import b/assets/ui/cursorGauntlet_grey.png.import
new file mode 100644
index 0000000..2b942b2
--- /dev/null
+++ b/assets/ui/cursorGauntlet_grey.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b525q1wrfxuin"
+path="res://.godot/imported/cursorGauntlet_grey.png-04574251c06c7c25dac90b0e65b6e219.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/cursorGauntlet_grey.png"
+dest_files=["res://.godot/imported/cursorGauntlet_grey.png-04574251c06c7c25dac90b0e65b6e219.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/cursorHand_beige.png b/assets/ui/cursorHand_beige.png
new file mode 100644
index 0000000..ff2bba7
Binary files /dev/null and b/assets/ui/cursorHand_beige.png differ
diff --git a/assets/ui/cursorHand_beige.png.import b/assets/ui/cursorHand_beige.png.import
new file mode 100644
index 0000000..e394fec
--- /dev/null
+++ b/assets/ui/cursorHand_beige.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dht2evshwjq87"
+path="res://.godot/imported/cursorHand_beige.png-7f829a01e7ae948246369621c0775485.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/cursorHand_beige.png"
+dest_files=["res://.godot/imported/cursorHand_beige.png-7f829a01e7ae948246369621c0775485.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/cursorHand_blue.png b/assets/ui/cursorHand_blue.png
new file mode 100644
index 0000000..1ee5baa
Binary files /dev/null and b/assets/ui/cursorHand_blue.png differ
diff --git a/assets/ui/cursorHand_blue.png.import b/assets/ui/cursorHand_blue.png.import
new file mode 100644
index 0000000..feb207f
--- /dev/null
+++ b/assets/ui/cursorHand_blue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b1v61erthd5ex"
+path="res://.godot/imported/cursorHand_blue.png-ee96b600e0cb5e80ef932ab7a986d388.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/cursorHand_blue.png"
+dest_files=["res://.godot/imported/cursorHand_blue.png-ee96b600e0cb5e80ef932ab7a986d388.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/cursorHand_grey.png b/assets/ui/cursorHand_grey.png
new file mode 100644
index 0000000..fa83d37
Binary files /dev/null and b/assets/ui/cursorHand_grey.png differ
diff --git a/assets/ui/cursorHand_grey.png.import b/assets/ui/cursorHand_grey.png.import
new file mode 100644
index 0000000..60005f1
--- /dev/null
+++ b/assets/ui/cursorHand_grey.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ckslvxov8utu0"
+path="res://.godot/imported/cursorHand_grey.png-0fdf9febc023a4309c6de01fb38705ad.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/cursorHand_grey.png"
+dest_files=["res://.godot/imported/cursorHand_grey.png-0fdf9febc023a4309c6de01fb38705ad.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/cursorSword_bronze.png b/assets/ui/cursorSword_bronze.png
new file mode 100644
index 0000000..2b43075
Binary files /dev/null and b/assets/ui/cursorSword_bronze.png differ
diff --git a/assets/ui/cursorSword_bronze.png.import b/assets/ui/cursorSword_bronze.png.import
new file mode 100644
index 0000000..e7c5387
--- /dev/null
+++ b/assets/ui/cursorSword_bronze.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ftr8bvfmhh5l"
+path="res://.godot/imported/cursorSword_bronze.png-28a987d55864da869437a43a7877e23c.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/cursorSword_bronze.png"
+dest_files=["res://.godot/imported/cursorSword_bronze.png-28a987d55864da869437a43a7877e23c.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/cursorSword_gold.png b/assets/ui/cursorSword_gold.png
new file mode 100644
index 0000000..ccca5fd
Binary files /dev/null and b/assets/ui/cursorSword_gold.png differ
diff --git a/assets/ui/cursorSword_gold.png.import b/assets/ui/cursorSword_gold.png.import
new file mode 100644
index 0000000..91e672e
--- /dev/null
+++ b/assets/ui/cursorSword_gold.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://crtrc6s06xb4h"
+path="res://.godot/imported/cursorSword_gold.png-1031ebc08246f8b94be6d8141224c5fb.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/cursorSword_gold.png"
+dest_files=["res://.godot/imported/cursorSword_gold.png-1031ebc08246f8b94be6d8141224c5fb.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/cursorSword_silver.png b/assets/ui/cursorSword_silver.png
new file mode 100644
index 0000000..1b37fe8
Binary files /dev/null and b/assets/ui/cursorSword_silver.png differ
diff --git a/assets/ui/cursorSword_silver.png.import b/assets/ui/cursorSword_silver.png.import
new file mode 100644
index 0000000..8098ac1
--- /dev/null
+++ b/assets/ui/cursorSword_silver.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cvy35p7oftq4u"
+path="res://.godot/imported/cursorSword_silver.png-bf3630dd9666e3388961067c6b0021e1.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/cursorSword_silver.png"
+dest_files=["res://.godot/imported/cursorSword_silver.png-bf3630dd9666e3388961067c6b0021e1.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCheck_beige.png b/assets/ui/iconCheck_beige.png
new file mode 100644
index 0000000..bc4790e
Binary files /dev/null and b/assets/ui/iconCheck_beige.png differ
diff --git a/assets/ui/iconCheck_beige.png.import b/assets/ui/iconCheck_beige.png.import
new file mode 100644
index 0000000..aaa3061
--- /dev/null
+++ b/assets/ui/iconCheck_beige.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dtsxcblqd6q0m"
+path="res://.godot/imported/iconCheck_beige.png-2cf80a25767949426f46275d6164c1bb.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCheck_beige.png"
+dest_files=["res://.godot/imported/iconCheck_beige.png-2cf80a25767949426f46275d6164c1bb.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCheck_blue.png b/assets/ui/iconCheck_blue.png
new file mode 100644
index 0000000..1ef72cd
Binary files /dev/null and b/assets/ui/iconCheck_blue.png differ
diff --git a/assets/ui/iconCheck_blue.png.import b/assets/ui/iconCheck_blue.png.import
new file mode 100644
index 0000000..d400cd8
--- /dev/null
+++ b/assets/ui/iconCheck_blue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ds671cajuyv0c"
+path="res://.godot/imported/iconCheck_blue.png-e5d8c6b6730ee45a0b4c4ad872ffd898.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCheck_blue.png"
+dest_files=["res://.godot/imported/iconCheck_blue.png-e5d8c6b6730ee45a0b4c4ad872ffd898.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCheck_bronze.png b/assets/ui/iconCheck_bronze.png
new file mode 100644
index 0000000..cdaa2f2
Binary files /dev/null and b/assets/ui/iconCheck_bronze.png differ
diff --git a/assets/ui/iconCheck_bronze.png.import b/assets/ui/iconCheck_bronze.png.import
new file mode 100644
index 0000000..0b26d47
--- /dev/null
+++ b/assets/ui/iconCheck_bronze.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b61q6krn20ja0"
+path="res://.godot/imported/iconCheck_bronze.png-ba43b3c7d802c30a84cb6609871ed0e2.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCheck_bronze.png"
+dest_files=["res://.godot/imported/iconCheck_bronze.png-ba43b3c7d802c30a84cb6609871ed0e2.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCheck_grey.png b/assets/ui/iconCheck_grey.png
new file mode 100644
index 0000000..e4016cf
Binary files /dev/null and b/assets/ui/iconCheck_grey.png differ
diff --git a/assets/ui/iconCheck_grey.png.import b/assets/ui/iconCheck_grey.png.import
new file mode 100644
index 0000000..21af0c9
--- /dev/null
+++ b/assets/ui/iconCheck_grey.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://brirm4awv5u1j"
+path="res://.godot/imported/iconCheck_grey.png-0e11e7aab650c6886823eba523fceb6a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCheck_grey.png"
+dest_files=["res://.godot/imported/iconCheck_grey.png-0e11e7aab650c6886823eba523fceb6a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCircle_beige.png b/assets/ui/iconCircle_beige.png
new file mode 100644
index 0000000..a5e3ca1
Binary files /dev/null and b/assets/ui/iconCircle_beige.png differ
diff --git a/assets/ui/iconCircle_beige.png.import b/assets/ui/iconCircle_beige.png.import
new file mode 100644
index 0000000..df0d2a9
--- /dev/null
+++ b/assets/ui/iconCircle_beige.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c0uqr5ctojqs7"
+path="res://.godot/imported/iconCircle_beige.png-b5858ae0ff10c4407e860326441e1ba5.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCircle_beige.png"
+dest_files=["res://.godot/imported/iconCircle_beige.png-b5858ae0ff10c4407e860326441e1ba5.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCircle_blue.png b/assets/ui/iconCircle_blue.png
new file mode 100644
index 0000000..7062e5c
Binary files /dev/null and b/assets/ui/iconCircle_blue.png differ
diff --git a/assets/ui/iconCircle_blue.png.import b/assets/ui/iconCircle_blue.png.import
new file mode 100644
index 0000000..3627906
--- /dev/null
+++ b/assets/ui/iconCircle_blue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cbhgqyambkr3k"
+path="res://.godot/imported/iconCircle_blue.png-53fb0049b49ddd1798564a5431232dfa.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCircle_blue.png"
+dest_files=["res://.godot/imported/iconCircle_blue.png-53fb0049b49ddd1798564a5431232dfa.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCircle_brown.png b/assets/ui/iconCircle_brown.png
new file mode 100644
index 0000000..7abf40f
Binary files /dev/null and b/assets/ui/iconCircle_brown.png differ
diff --git a/assets/ui/iconCircle_brown.png.import b/assets/ui/iconCircle_brown.png.import
new file mode 100644
index 0000000..1e278e0
--- /dev/null
+++ b/assets/ui/iconCircle_brown.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c0tq8o76aqevo"
+path="res://.godot/imported/iconCircle_brown.png-a4c0e9bbb1af8722262d6b2e7837d75b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCircle_brown.png"
+dest_files=["res://.godot/imported/iconCircle_brown.png-a4c0e9bbb1af8722262d6b2e7837d75b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCircle_grey.png b/assets/ui/iconCircle_grey.png
new file mode 100644
index 0000000..d35d80b
Binary files /dev/null and b/assets/ui/iconCircle_grey.png differ
diff --git a/assets/ui/iconCircle_grey.png.import b/assets/ui/iconCircle_grey.png.import
new file mode 100644
index 0000000..2fbb187
--- /dev/null
+++ b/assets/ui/iconCircle_grey.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ceudq1vgs21r6"
+path="res://.godot/imported/iconCircle_grey.png-7fd6370700f998ecb59496e4a55649b1.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCircle_grey.png"
+dest_files=["res://.godot/imported/iconCircle_grey.png-7fd6370700f998ecb59496e4a55649b1.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCross_beige.png b/assets/ui/iconCross_beige.png
new file mode 100644
index 0000000..32278dc
Binary files /dev/null and b/assets/ui/iconCross_beige.png differ
diff --git a/assets/ui/iconCross_beige.png.import b/assets/ui/iconCross_beige.png.import
new file mode 100644
index 0000000..f1f4bf1
--- /dev/null
+++ b/assets/ui/iconCross_beige.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b8oopx5eanbxv"
+path="res://.godot/imported/iconCross_beige.png-59bd7de7b17f8552634307e0bcd572cd.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCross_beige.png"
+dest_files=["res://.godot/imported/iconCross_beige.png-59bd7de7b17f8552634307e0bcd572cd.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCross_blue.png b/assets/ui/iconCross_blue.png
new file mode 100644
index 0000000..2ab70a1
Binary files /dev/null and b/assets/ui/iconCross_blue.png differ
diff --git a/assets/ui/iconCross_blue.png.import b/assets/ui/iconCross_blue.png.import
new file mode 100644
index 0000000..a5b61e5
--- /dev/null
+++ b/assets/ui/iconCross_blue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://lwl1ewkab817"
+path="res://.godot/imported/iconCross_blue.png-1b1068d026961d746e9b804fa58aa209.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCross_blue.png"
+dest_files=["res://.godot/imported/iconCross_blue.png-1b1068d026961d746e9b804fa58aa209.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCross_brown.png b/assets/ui/iconCross_brown.png
new file mode 100644
index 0000000..7cce69a
Binary files /dev/null and b/assets/ui/iconCross_brown.png differ
diff --git a/assets/ui/iconCross_brown.png.import b/assets/ui/iconCross_brown.png.import
new file mode 100644
index 0000000..5532b1f
--- /dev/null
+++ b/assets/ui/iconCross_brown.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://diid8lpn66v3f"
+path="res://.godot/imported/iconCross_brown.png-5ab2c2cc2618e72f0d81dfde353348ae.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCross_brown.png"
+dest_files=["res://.godot/imported/iconCross_brown.png-5ab2c2cc2618e72f0d81dfde353348ae.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/iconCross_grey.png b/assets/ui/iconCross_grey.png
new file mode 100644
index 0000000..f57ccd8
Binary files /dev/null and b/assets/ui/iconCross_grey.png differ
diff --git a/assets/ui/iconCross_grey.png.import b/assets/ui/iconCross_grey.png.import
new file mode 100644
index 0000000..21a915f
--- /dev/null
+++ b/assets/ui/iconCross_grey.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c0unoaffdffpi"
+path="res://.godot/imported/iconCross_grey.png-4ae0156219be025051d420a07c767ce8.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/iconCross_grey.png"
+dest_files=["res://.godot/imported/iconCross_grey.png-4ae0156219be025051d420a07c767ce8.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/panelInset_beige.png b/assets/ui/panelInset_beige.png
new file mode 100644
index 0000000..f92416f
Binary files /dev/null and b/assets/ui/panelInset_beige.png differ
diff --git a/assets/ui/panelInset_beige.png.import b/assets/ui/panelInset_beige.png.import
new file mode 100644
index 0000000..8b1fdf8
--- /dev/null
+++ b/assets/ui/panelInset_beige.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b0qf4qsmf0ju4"
+path="res://.godot/imported/panelInset_beige.png-80d014c1bc4325d28b91e5cec6eb6d6e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/panelInset_beige.png"
+dest_files=["res://.godot/imported/panelInset_beige.png-80d014c1bc4325d28b91e5cec6eb6d6e.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/panelInset_beigeLight.png b/assets/ui/panelInset_beigeLight.png
new file mode 100644
index 0000000..9ed1a7b
Binary files /dev/null and b/assets/ui/panelInset_beigeLight.png differ
diff --git a/assets/ui/panelInset_beigeLight.png.import b/assets/ui/panelInset_beigeLight.png.import
new file mode 100644
index 0000000..8757112
--- /dev/null
+++ b/assets/ui/panelInset_beigeLight.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b0d1u8f3vvjfg"
+path="res://.godot/imported/panelInset_beigeLight.png-7e394dfe7e68ea2e7ea928290332b18b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/panelInset_beigeLight.png"
+dest_files=["res://.godot/imported/panelInset_beigeLight.png-7e394dfe7e68ea2e7ea928290332b18b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/panelInset_blue.png b/assets/ui/panelInset_blue.png
new file mode 100644
index 0000000..0c2b585
Binary files /dev/null and b/assets/ui/panelInset_blue.png differ
diff --git a/assets/ui/panelInset_blue.png.import b/assets/ui/panelInset_blue.png.import
new file mode 100644
index 0000000..d7800d7
--- /dev/null
+++ b/assets/ui/panelInset_blue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bjfexcqd1qobe"
+path="res://.godot/imported/panelInset_blue.png-145d741212de4d218647823fd6c7fe17.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/panelInset_blue.png"
+dest_files=["res://.godot/imported/panelInset_blue.png-145d741212de4d218647823fd6c7fe17.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/panelInset_brown.png b/assets/ui/panelInset_brown.png
new file mode 100644
index 0000000..fc293f1
Binary files /dev/null and b/assets/ui/panelInset_brown.png differ
diff --git a/assets/ui/panelInset_brown.png.import b/assets/ui/panelInset_brown.png.import
new file mode 100644
index 0000000..0be27c1
--- /dev/null
+++ b/assets/ui/panelInset_brown.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cny1008ttkvlc"
+path="res://.godot/imported/panelInset_brown.png-96b8e1ddb3eb488977239e6237ad0815.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/panelInset_brown.png"
+dest_files=["res://.godot/imported/panelInset_brown.png-96b8e1ddb3eb488977239e6237ad0815.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/panel_beige.png b/assets/ui/panel_beige.png
new file mode 100644
index 0000000..a4a1d99
Binary files /dev/null and b/assets/ui/panel_beige.png differ
diff --git a/assets/ui/panel_beige.png.import b/assets/ui/panel_beige.png.import
new file mode 100644
index 0000000..fb0e9e9
--- /dev/null
+++ b/assets/ui/panel_beige.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dhvf0appvwtns"
+path="res://.godot/imported/panel_beige.png-0c2561c71b5e775174913c731a813cc9.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/panel_beige.png"
+dest_files=["res://.godot/imported/panel_beige.png-0c2561c71b5e775174913c731a813cc9.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/panel_beigeLight.png b/assets/ui/panel_beigeLight.png
new file mode 100644
index 0000000..8ccf82c
Binary files /dev/null and b/assets/ui/panel_beigeLight.png differ
diff --git a/assets/ui/panel_beigeLight.png.import b/assets/ui/panel_beigeLight.png.import
new file mode 100644
index 0000000..b9c09c7
--- /dev/null
+++ b/assets/ui/panel_beigeLight.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://tdsfc8wrnp5e"
+path="res://.godot/imported/panel_beigeLight.png-e6b85262554667356f2d201adc5e0261.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/panel_beigeLight.png"
+dest_files=["res://.godot/imported/panel_beigeLight.png-e6b85262554667356f2d201adc5e0261.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/panel_blue.png b/assets/ui/panel_blue.png
new file mode 100644
index 0000000..cf58c66
Binary files /dev/null and b/assets/ui/panel_blue.png differ
diff --git a/assets/ui/panel_blue.png.import b/assets/ui/panel_blue.png.import
new file mode 100644
index 0000000..21f802a
--- /dev/null
+++ b/assets/ui/panel_blue.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cfa22j18jfben"
+path="res://.godot/imported/panel_blue.png-f898e2b260229c65929919e0fa6a70c8.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/panel_blue.png"
+dest_files=["res://.godot/imported/panel_blue.png-f898e2b260229c65929919e0fa6a70c8.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_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/ui/panel_brown.png b/assets/ui/panel_brown.png
new file mode 100644
index 0000000..97c381b
Binary files /dev/null and b/assets/ui/panel_brown.png differ
diff --git a/assets/ui/panel_brown.png.import b/assets/ui/panel_brown.png.import
new file mode 100644
index 0000000..75dc959
--- /dev/null
+++ b/assets/ui/panel_brown.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dylc6y7ajsln3"
+path="res://.godot/imported/panel_brown.png-e355961a9e18d7fd78a8031193883127.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/ui/panel_brown.png"
+dest_files=["res://.godot/imported/panel_brown.png-e355961a9e18d7fd78a8031193883127.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/icon.svg b/icon.svg
new file mode 100644
index 0000000..c6bbb7d
--- /dev/null
+++ b/icon.svg
@@ -0,0 +1 @@
+
diff --git a/icon.svg.import b/icon.svg.import
new file mode 100644
index 0000000..e725647
--- /dev/null
+++ b/icon.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dytbdi8k6f5oj"
+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/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/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..264fd27
--- /dev/null
+++ b/project.godot
@@ -0,0 +1,38 @@
+; 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="Clicker"
+run/main_scene="uid://bqtexca6cdr54"
+config/features=PackedStringArray("4.5", "Forward Plus")
+config/icon="res://icon.svg"
+
+[autoload]
+
+InputOverride="*res://scripts/inputs.gd"
+GameManager="*res://scripts/game_manager.gd"
+Global="*res://scripts/globals.gd"
+DebugMenu="*res://addons/debug_menu/debug_menu.tscn"
+Inventory="*res://scripts/inventory.gd"
+Unlocks="*res://scripts/unlocks.gd"
+Audio="*res://scripts/audio.gd"
+
+[display]
+
+window/size/resizable=false
+window/size/maximize_disabled=true
+window/stretch/mode="canvas_items"
+window/stretch/scale_mode="integer"
+mouse_cursor/custom_image="uid://ckslvxov8utu0"
+
+[editor_plugins]
+
+enabled=PackedStringArray("res://addons/debug_menu/plugin.cfg", "res://addons/log/plugin.cfg", "res://addons/reload_current_scene/plugin.cfg")
diff --git a/resources/InventoryData.tres b/resources/InventoryData.tres
new file mode 100644
index 0000000..2b08e6d
--- /dev/null
+++ b/resources/InventoryData.tres
@@ -0,0 +1,7 @@
+[gd_resource type="Resource" script_class="InventoryResource" load_steps=2 format=3 uid="uid://yd5y4dkbpa16"]
+
+[ext_resource type="Script" uid="uid://bcnfchjftkkl" path="res://resources/InventoryResource.gd" id="1_5hrsc"]
+
+[resource]
+script = ExtResource("1_5hrsc")
+metadata/_custom_type_script = "uid://bcnfchjftkkl"
diff --git a/resources/InventoryResource.gd b/resources/InventoryResource.gd
new file mode 100644
index 0000000..c7b3097
--- /dev/null
+++ b/resources/InventoryResource.gd
@@ -0,0 +1,6 @@
+class_name InventoryResource
+extends Resource
+
+@export var currency: float = 0
+@export var wood: float = 0
+@export var stock: float = 0
\ No newline at end of file
diff --git a/resources/InventoryResource.gd.uid b/resources/InventoryResource.gd.uid
new file mode 100644
index 0000000..1f21013
--- /dev/null
+++ b/resources/InventoryResource.gd.uid
@@ -0,0 +1 @@
+uid://bcnfchjftkkl
diff --git a/resources/UnlockData.tres b/resources/UnlockData.tres
new file mode 100644
index 0000000..87e526b
--- /dev/null
+++ b/resources/UnlockData.tres
@@ -0,0 +1,108 @@
+[gd_resource type="Resource" script_class="UnlockDataCollection" load_steps=10 format=3 uid="uid://b4c01yrmp1wf2"]
+
+[ext_resource type="Script" uid="uid://bg1ymgbdcwc0j" path="res://resources/UnlockDataCollection.gd" id="1_gdehu"]
+[ext_resource type="Script" uid="uid://biqqffne7dd8r" path="res://resources/UnlockDataResource.gd" id="2_1js7i"]
+
+[sub_resource type="Resource" id="Resource_gdehu"]
+script = ExtResource("2_1js7i")
+unlock_id = 1
+unlock_name = "Marketing"
+unlock_description = "Affects the amount people are willing to pay for your whittling"
+base_cost = 100
+is_scaling = true
+cost_scaling_multiplier = 10.0
+effect_scaling_multiplier = 1.5
+base_modifiers = {
+"sale_price_modifier": 1.5
+}
+metadata/_custom_type_script = "uid://biqqffne7dd8r"
+
+[sub_resource type="Resource" id="Resource_1js7i"]
+script = ExtResource("2_1js7i")
+unlock_id = 2
+unlock_name = "Wood"
+unlock_description = "Increases the amount of wood produced per click"
+base_cost = 10
+is_scaling = true
+cost_scaling_multiplier = 2.0
+effect_scaling_type = 0
+effect_linear_increase = 1.0
+base_modifiers = {
+"wood_per_click_modifier": 2.0
+}
+metadata/_custom_type_script = "uid://biqqffne7dd8r"
+
+[sub_resource type="Resource" id="Resource_xbpe0"]
+script = ExtResource("2_1js7i")
+unlock_id = 3
+unlock_name = "Demand"
+unlock_description = "How many whittled products can be purchased per tick"
+base_cost = 100
+is_scaling = true
+cost_scaling_multiplier = 5.0
+effect_scaling_multiplier = 1.25
+base_modifiers = {
+"purchase_rate_modifier": 2.0
+}
+metadata/_custom_type_script = "uid://biqqffne7dd8r"
+
+[sub_resource type="Resource" id="Resource_nbe0w"]
+script = ExtResource("2_1js7i")
+unlock_id = 4
+unlock_name = "Efficiency"
+unlock_description = "How many things you can produce per whittle"
+base_cost = 1
+is_scaling = true
+max_rank = 5
+cost_scaling_multiplier = 10.0
+effect_scaling_type = 0
+effect_linear_increase = 1.0
+base_modifiers = {
+"efficiency_modifier": 2.0
+}
+metadata/_custom_type_script = "uid://biqqffne7dd8r"
+
+[sub_resource type="Resource" id="Resource_ppuju"]
+script = ExtResource("2_1js7i")
+unlock_id = 5
+unlock_name = "Wholesale"
+unlock_description = "Sell multiples of 100 at 20% extra income"
+base_cost = 1
+base_modifiers = {
+"UNLOCK_ONESHOT_WHOLESALE": 1.0
+}
+metadata/_custom_type_script = "uid://biqqffne7dd8r"
+
+[sub_resource type="Resource" id="Resource_chx6j"]
+script = ExtResource("2_1js7i")
+unlock_id = 6
+unlock_name = "Multicraft"
+unlock_description = "Just craft more stuff"
+base_cost = 1
+max_rank = 2
+cost_scaling_multiplier = 10.0
+effect_scaling_type = 0
+effect_linear_increase = 1.0
+base_modifiers = {
+"multicraft_increase_modifier": 1.0
+}
+metadata/_custom_type_script = "uid://biqqffne7dd8r"
+
+[sub_resource type="Resource" id="Resource_f82ch"]
+script = ExtResource("2_1js7i")
+unlock_id = 7
+unlock_name = "Autowood"
+unlock_description = "Automatically gather a percent of a clicks wood per tick"
+base_cost = 1
+is_scaling = true
+max_rank = 5
+effect_scaling_type = 0
+base_modifiers = {
+"autowood_modifier": 0.1
+}
+metadata/_custom_type_script = "uid://biqqffne7dd8r"
+
+[resource]
+script = ExtResource("1_gdehu")
+unlocks = Array[ExtResource("2_1js7i")]([SubResource("Resource_gdehu"), SubResource("Resource_1js7i"), SubResource("Resource_xbpe0"), SubResource("Resource_nbe0w"), SubResource("Resource_ppuju"), SubResource("Resource_chx6j"), SubResource("Resource_f82ch")])
+metadata/_custom_type_script = "uid://bg1ymgbdcwc0j"
diff --git a/resources/UnlockDataCollection.gd b/resources/UnlockDataCollection.gd
new file mode 100644
index 0000000..dd29921
--- /dev/null
+++ b/resources/UnlockDataCollection.gd
@@ -0,0 +1,4 @@
+class_name UnlockDataCollection
+extends Resource
+
+@export var unlocks: Array[UnlockDataResource] = []
diff --git a/resources/UnlockDataCollection.gd.uid b/resources/UnlockDataCollection.gd.uid
new file mode 100644
index 0000000..5ca3d8c
--- /dev/null
+++ b/resources/UnlockDataCollection.gd.uid
@@ -0,0 +1 @@
+uid://bg1ymgbdcwc0j
diff --git a/resources/UnlockDataResource.gd b/resources/UnlockDataResource.gd
new file mode 100644
index 0000000..7643d1e
--- /dev/null
+++ b/resources/UnlockDataResource.gd
@@ -0,0 +1,218 @@
+class_name UnlockDataResource
+extends Resource
+
+@export var unlock_id: int = 0
+@export var unlock_name: String = ""
+@export var unlock_description: String = ""
+@export var base_cost: int = 0
+@export var is_unlocked: bool = false
+
+@export_group("Scaling Settings")
+@export var is_scaling: bool = false
+@export var current_rank: int = 0
+@export var max_rank: int = -1 # -1 means infinite scaling
+
+@export_subgroup("Cost Scaling")
+@export_enum("Linear", "Exponential") var cost_scaling_type: int = 1 # Default to Exponential
+@export var cost_scaling_multiplier: float = 1.5 # Exponential: multiplier per rank, Linear: flat increase
+@export var cost_linear_increase: int = 100 # Only used if cost_scaling_type is Linear
+
+@export_subgroup("Effect Scaling")
+@export_enum("Linear", "Exponential") var effect_scaling_type: int = 1 # Default to Exponential
+@export var effect_scaling_multiplier: float = 1.2 # Exponential: multiplier per rank
+@export var effect_linear_increase: float = 0.1 # Linear: flat increase per rank (e.g., 0.1 = +10% per rank)
+
+@export_group("Base Modifiers")
+@export var base_modifiers: Dictionary = {}
+
+## Returns the cost for the next rank/unlock
+func get_next_cost() -> int:
+ if not is_scaling:
+ return base_cost
+
+ # Cost scaling should start from rank 0 (first purchase at base_cost)
+ if cost_scaling_type == 0: # Linear
+ return base_cost + (cost_linear_increase * current_rank)
+ else: # Exponential
+ return int(base_cost * pow(cost_scaling_multiplier, current_rank))
+
+## Returns the current modifiers based on rank
+func get_current_modifiers() -> Dictionary:
+ # If not unlocked yet, return empty modifiers
+ if not is_unlocked or current_rank == 0:
+ return {}
+
+ # Rank 1 should give base modifiers without scaling
+ if current_rank == 1:
+ return base_modifiers.duplicate()
+
+ # Rank 2+ applies scaling
+ return get_modifiers_at_rank(current_rank)
+
+## Returns modifiers for a specific rank (useful for preview)
+func get_modifiers_at_rank(rank: int) -> Dictionary:
+ if not is_scaling or rank == 0:
+ return base_modifiers.duplicate()
+
+ # Rank 1 returns base modifiers without scaling
+ if rank == 1:
+ return base_modifiers.duplicate()
+
+ var scaled_modifiers = {}
+ for key in base_modifiers.keys():
+ var base_value = base_modifiers[key]
+
+ if effect_scaling_type == 0: # Linear scaling
+ # Linear: add flat increase per rank above 1
+ # e.g., base 1.5 (+50%), linear 0.1 (+10%), rank 2 = 1.6 (+60%), rank 3 = 1.7 (+70%)
+ var additional_ranks = rank - 1
+ scaled_modifiers[key] = base_value + (effect_linear_increase * additional_ranks)
+ else: # Exponential scaling
+ # Exponential: scale the bonus part from rank 1
+ # The bonus at rank 1 is (base_value - 1.0)
+ # At higher ranks, multiply this bonus by multiplier^(rank-1)
+ var base_bonus = base_value - 1.0
+ var scaled_bonus = base_bonus * pow(effect_scaling_multiplier, rank - 1)
+ scaled_modifiers[key] = 1.0 + scaled_bonus
+
+ return scaled_modifiers
+
+## Convert a modifier value to a percentage string
+func _modifier_to_percentage(value: float) -> String:
+ var percentage = (value - 1.0) * 100.0
+ if percentage >= 0:
+ return "+%.1f%%" % percentage
+ else:
+ return "%.1f%%" % percentage
+
+## Get a formatted string of current modifiers with percentages
+func get_current_modifiers_string() -> String:
+ var modifiers = get_current_modifiers()
+ if modifiers.is_empty():
+ return "No modifiers"
+
+ var lines = []
+ for key in modifiers.keys():
+ var display_name = key.replace("_", " ").capitalize()
+ var percentage = _modifier_to_percentage(modifiers[key])
+ lines.append("%s: %s" % [display_name, percentage])
+
+ return "\n".join(lines)
+
+## Get a formatted string of next rank modifiers with percentages
+func get_next_modifiers_string() -> String:
+ if not can_rank_up():
+ return "Max rank reached"
+
+ var next_rank = get_next_rank()
+ var modifiers = get_modifiers_at_rank(next_rank)
+
+ if modifiers.is_empty():
+ return "No modifiers"
+
+ var lines = []
+ for key in modifiers.keys():
+ var display_name = key.replace("_", " ").capitalize()
+ var percentage = _modifier_to_percentage(modifiers[key])
+ lines.append("%s: %s" % [display_name, percentage])
+
+ return "\n".join(lines)
+
+## Get comparison string showing current -> next modifiers
+func get_modifiers_comparison_string() -> String:
+ if not can_rank_up():
+ return get_current_modifiers_string()
+
+ var current = get_current_modifiers()
+ var next_rank = get_next_rank()
+ var next = get_modifiers_at_rank(next_rank)
+
+ # If no current modifiers (not unlocked yet), show next only
+ if current.is_empty():
+ var lines = []
+ for key in next.keys():
+ var display_name = key.replace("_", " ").capitalize()
+ var next_pct = _modifier_to_percentage(next[key])
+ lines.append("%s: %s" % [display_name, next_pct])
+ return "\n".join(lines)
+
+ var lines = []
+ for key in current.keys():
+ var display_name = key.replace("_", " ").capitalize()
+ var current_pct = _modifier_to_percentage(current[key])
+ var next_pct = _modifier_to_percentage(next[key])
+ lines.append("%s: %s → %s" % [display_name, current_pct, next_pct])
+
+ return "\n".join(lines)
+
+## Get a single-line summary of modifiers
+func get_modifiers_summary() -> String:
+ var modifiers = get_current_modifiers()
+ if modifiers.is_empty():
+ return "No effects"
+
+ var parts = []
+ for key in modifiers.keys():
+ var display_name = key.replace("_modifier", "").replace("_", " ").capitalize()
+ var percentage = _modifier_to_percentage(modifiers[key])
+ parts.append("%s %s" % [display_name, percentage])
+
+ return ", ".join(parts)
+
+## Check if the unlock can be purchased/ranked up
+func can_rank_up() -> bool:
+ # Non-scaling: can only unlock once
+ if not is_scaling:
+ return not is_unlocked
+
+ # Scaling: check if we haven't hit max rank
+ if max_rank > 0 and current_rank >= max_rank:
+ return false
+
+ return true
+
+## Check if this is a one-off unlock (non-scaling)
+func is_one_off() -> bool:
+ return not is_scaling
+
+## Check if max rank has been reached (for scaling unlocks)
+func is_max_rank() -> bool:
+ if not is_scaling:
+ return is_unlocked
+
+ if max_rank <= 0: # Infinite scaling
+ return false
+
+ return current_rank >= max_rank
+
+## Unlock or rank up the unlock
+func unlock() -> bool:
+ if not can_rank_up():
+ return false
+
+ if not is_scaling:
+ # Simple one-off unlock
+ is_unlocked = true
+ current_rank = 1
+ else:
+ # Scaling unlock - increase rank
+ current_rank += 1
+ is_unlocked = true
+
+ return true
+
+## Get the next rank number (for display purposes)
+func get_next_rank() -> int:
+ if not is_scaling:
+ return 1 if not is_unlocked else 1
+ return current_rank + 1
+
+## Get display text for current status
+func get_rank_display() -> String:
+ if not is_scaling:
+ return "Unlocked" if is_unlocked else "Locked"
+
+ if max_rank > 0:
+ return "Rank %d/%d" % [current_rank, max_rank]
+ else:
+ return "Rank %d" % current_rank
\ No newline at end of file
diff --git a/resources/UnlockDataResource.gd.uid b/resources/UnlockDataResource.gd.uid
new file mode 100644
index 0000000..0d1a910
--- /dev/null
+++ b/resources/UnlockDataResource.gd.uid
@@ -0,0 +1 @@
+uid://biqqffne7dd8r
diff --git a/scenes/button.tscn b/scenes/button.tscn
new file mode 100644
index 0000000..2ad2a86
--- /dev/null
+++ b/scenes/button.tscn
@@ -0,0 +1,34 @@
+[gd_scene load_steps=7 format=3 uid="uid://b0bmsqlrg77le"]
+
+[ext_resource type="Texture2D" uid="uid://dx134esqj3kg3" path="res://assets/ui/buttonLong_brown.png" id="1_1bdt2"]
+[ext_resource type="Texture2D" uid="uid://bmdc4875jf16r" path="res://assets/ui/buttonLong_brown_pressed.png" id="2_8m7bo"]
+[ext_resource type="Texture2D" uid="uid://ddghl4cooepr1" path="res://assets/ui/buttonLong_blue.png" id="3_t81cg"]
+[ext_resource type="Texture2D" uid="uid://f0tde4s55m2o" path="res://assets/ui/buttonLong_grey.png" id="4_is61r"]
+[ext_resource type="Script" uid="uid://dj7uoaxxat5n4" path="res://scenes/scripts/button.gd" id="5_8m7bo"]
+[ext_resource type="Theme" uid="uid://bnbtwoxxd6cg5" path="res://assets/theme/clicker.theme" id="5_iw4ej"]
+
+[node name="TextureButton" type="TextureButton"]
+custom_minimum_size = Vector2(100, 25)
+offset_right = 100.0
+offset_bottom = 25.0
+tooltip_text = "I need a tooltip bro"
+texture_normal = ExtResource("1_1bdt2")
+texture_pressed = ExtResource("2_8m7bo")
+texture_hover = ExtResource("3_t81cg")
+texture_disabled = ExtResource("4_is61r")
+ignore_texture_size = true
+stretch_mode = 0
+script = ExtResource("5_8m7bo")
+
+[node name="CenterContainer" type="CenterContainer" parent="."]
+clip_contents = true
+custom_minimum_size = Vector2(100, 25)
+layout_mode = 0
+offset_right = 100.0
+offset_bottom = 25.0
+
+[node name="Label" type="Label" parent="CenterContainer"]
+layout_mode = 2
+theme = ExtResource("5_iw4ej")
+text = "-"
+horizontal_alignment = 1
diff --git a/scenes/character.tscn b/scenes/character.tscn
new file mode 100644
index 0000000..31d6204
--- /dev/null
+++ b/scenes/character.tscn
@@ -0,0 +1,139 @@
+[gd_scene load_steps=19 format=3 uid="uid://cbrkq6jd5a4ho"]
+
+[ext_resource type="Texture2D" uid="uid://blw846ag1hiak" path="res://assets/characters/warrior.png" id="1_agfs1"]
+[ext_resource type="Texture2D" uid="uid://ckvge3k08px5c" path="res://assets/tiles/sun.png" id="2_rkhd4"]
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_rkhd4"]
+atlas = ExtResource("1_agfs1")
+region = Rect2(0, 0, 80, 68)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_lrhn5"]
+atlas = ExtResource("1_agfs1")
+region = Rect2(80, 0, 80, 68)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_my7n2"]
+atlas = ExtResource("1_agfs1")
+region = Rect2(160, 0, 80, 68)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_dp8ca"]
+atlas = ExtResource("1_agfs1")
+region = Rect2(240, 0, 80, 68)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_0lw5n"]
+atlas = ExtResource("1_agfs1")
+region = Rect2(320, 0, 80, 68)
+
+[sub_resource type="SpriteFrames" id="SpriteFrames_dkjbp"]
+animations = [{
+"frames": [{
+"duration": 0.2,
+"texture": SubResource("AtlasTexture_rkhd4")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_lrhn5")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_my7n2")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_dp8ca")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_0lw5n")
+}],
+"loop": true,
+"name": &"idle",
+"speed": 5.0
+}, {
+"frames": [],
+"loop": true,
+"name": &"new_animation",
+"speed": 5.0
+}]
+
+[sub_resource type="Curve" id="Curve_lrhn5"]
+_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
+point_count = 2
+
+[sub_resource type="CurveTexture" id="CurveTexture_okhi1"]
+curve = SubResource("Curve_lrhn5")
+
+[sub_resource type="Gradient" id="Gradient_my7n2"]
+colors = PackedColorArray(0.6267965, 0.35946804, 0.115510084, 0.3764706, 0.5640522, 0.46861154, 0.16076079, 0.627451)
+
+[sub_resource type="GradientTexture1D" id="GradientTexture1D_rkhd4"]
+gradient = SubResource("Gradient_my7n2")
+
+[sub_resource type="Curve" id="Curve_dp8ca"]
+_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
+point_count = 2
+
+[sub_resource type="CurveTexture" id="CurveTexture_deeqb"]
+curve = SubResource("Curve_dp8ca")
+
+[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_0lw5n"]
+lifetime_randomness = 0.73
+particle_flag_disable_z = true
+emission_shape = 1
+emission_sphere_radius = 1.0
+angle_min = 1.0728835e-05
+angle_max = 115.70001
+inherit_velocity_ratio = 0.154
+direction = Vector3(0, 0, 0)
+spread = 98.933
+initial_velocity_max = 2.0
+gravity = Vector3(0, 0, 0)
+linear_accel_min = 0.99999774
+linear_accel_max = 4.9999976
+scale_min = 0.19999999
+scale_max = 0.7
+scale_curve = SubResource("CurveTexture_deeqb")
+color_ramp = SubResource("GradientTexture1D_rkhd4")
+alpha_curve = SubResource("CurveTexture_okhi1")
+hue_variation_min = -0.11000002
+hue_variation_max = 0.089999974
+turbulence_enabled = true
+turbulence_noise_strength = 0.56
+turbulence_noise_scale = 4.861
+
+[sub_resource type="Curve" id="Curve_rkhd4"]
+_data = [Vector2(0, 0.007272601), 0.0, 0.0, 0, 0, Vector2(0.46874994, 0.758909), 0.0, 0.0, 0, 0, Vector2(0.73632807, 0.8865454), 0.0, 0.0, 0, 0]
+point_count = 3
+
+[sub_resource type="CurveTexture" id="CurveTexture_lrhn5"]
+curve = SubResource("Curve_rkhd4")
+
+[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_agfs1"]
+particle_flag_disable_z = true
+gravity = Vector3(0, 0, 0)
+linear_accel_min = -2.2351742e-06
+linear_accel_max = 6.4299974
+radial_accel_min = -2.2351742e-06
+radial_accel_max = 23.289997
+tangential_accel_min = -24.100002
+tangential_accel_max = 10.439998
+color = Color(0.84313726, 0.56078434, 0, 0.7921569)
+alpha_curve = SubResource("CurveTexture_lrhn5")
+
+[node name="Character" type="Node2D"]
+
+[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
+sprite_frames = SubResource("SpriteFrames_dkjbp")
+animation = &"idle"
+autoplay = "idle"
+frame_progress = 0.55149776
+
+[node name="Dust" type="GPUParticles2D" parent="."]
+position = Vector2(0, 11)
+amount = 100
+texture = ExtResource("2_rkhd4")
+lifetime = 10.0
+preprocess = 2.0
+explosiveness = 0.06
+randomness = 0.39
+process_material = SubResource("ParticleProcessMaterial_0lw5n")
+
+[node name="Shavings" type="GPUParticles2D" parent="."]
+position = Vector2(0, 8)
+preprocess = 2.0
+process_material = SubResource("ParticleProcessMaterial_agfs1")
diff --git a/scenes/game.tscn b/scenes/game.tscn
new file mode 100644
index 0000000..170b5f8
--- /dev/null
+++ b/scenes/game.tscn
@@ -0,0 +1,3 @@
+[gd_scene format=3 uid="uid://duhwm7m5hc506"]
+
+[node name="Game" type="Node3D"]
diff --git a/scenes/game2.tscn b/scenes/game2.tscn
new file mode 100644
index 0000000..38d73ee
--- /dev/null
+++ b/scenes/game2.tscn
@@ -0,0 +1,2118 @@
+[gd_scene load_steps=48 format=4 uid="uid://bqtexca6cdr54"]
+
+[ext_resource type="Texture2D" uid="uid://dqb5n2pilr3ir" path="res://assets/tiles/Floor Tiles1.png" id="1_7pxbb"]
+[ext_resource type="Texture2D" uid="uid://ctifw6ryyyap" path="res://assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 5.png" id="1_xrrf0"]
+[ext_resource type="Texture2D" uid="uid://dj4tc00olbrj7" path="res://assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 4.png" id="2_kh4a2"]
+[ext_resource type="Texture2D" uid="uid://t47pbn251mgv" path="res://assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 3.png" id="3_8j387"]
+[ext_resource type="Texture2D" uid="uid://c8rbauf6xfp00" path="res://assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 2.png" id="4_5dhap"]
+[ext_resource type="Texture2D" uid="uid://dunesyh5l88si" path="res://assets/tiles/GandalfHardcore Background layers/Autumn BG/GandalfHardcore Background layers_layer 1.png" id="5_s427y"]
+[ext_resource type="Texture2D" uid="uid://cu6cgp6q0hl2o" path="res://assets/tiles/Decor.png" id="7_kh4a2"]
+[ext_resource type="Texture2D" uid="uid://w5y2htfrpogp" path="res://assets/tiles/Tree3.png" id="8_8j387"]
+[ext_resource type="Texture2D" uid="uid://ceev8neekhxxs" path="res://assets/tiles/Other Tiles1.png" id="9_5dhap"]
+[ext_resource type="Texture2D" uid="uid://b2eb520uq6xan" path="res://assets/tiles/Weeping Willow2.png" id="10_8brng"]
+[ext_resource type="Texture2D" uid="uid://cvmx46huwupg8" path="res://assets/tiles/Birch2.png" id="11_w330p"]
+[ext_resource type="Texture2D" uid="uid://dk81mb6ukowsk" path="res://assets/tiles/Large Pine Tree.png" id="12_erv2c"]
+[ext_resource type="Texture2D" uid="uid://b7nof7f42c53k" path="res://assets/tiles/Pine Trees.png" id="13_5kdtj"]
+[ext_resource type="Texture2D" uid="uid://b170nuj8i5fu7" path="res://assets/tiles/autumn leaf.png" id="14_w330p"]
+[ext_resource type="Texture2D" uid="uid://ckvge3k08px5c" path="res://assets/tiles/sun.png" id="15_erv2c"]
+[ext_resource type="Script" uid="uid://cpimo8q5dcjxf" path="res://scenes/scripts/fire_light.gd" id="16_5kdtj"]
+[ext_resource type="PackedScene" uid="uid://cbrkq6jd5a4ho" path="res://scenes/character.tscn" id="17_1hpkv"]
+[ext_resource type="PackedScene" uid="uid://cnyxwsj6i27ja" path="res://scenes/stock_pile.tscn" id="17_deeqb"]
+[ext_resource type="PackedScene" uid="uid://bubjxrs8qmr4y" path="res://scenes/wood_pile.tscn" id="17_oibj5"]
+[ext_resource type="Script" uid="uid://cm84m3olmcc8o" path="res://scenes/scripts/ui_control.gd" id="17_q7h7c"]
+[ext_resource type="PackedScene" uid="uid://b0bmsqlrg77le" path="res://scenes/button.tscn" id="19_v4v8k"]
+[ext_resource type="Theme" uid="uid://bnbtwoxxd6cg5" path="res://assets/theme/clicker.theme" id="22_q7h7c"]
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_u48pd"]
+texture = ExtResource("1_7pxbb")
+0:0/0 = 0
+1:0/0 = 0
+2:0/0 = 0
+3:0/0 = 0
+4:0/0 = 0
+5:0/0 = 0
+6:0/0 = 0
+7:0/0 = 0
+8:0/0 = 0
+9:0/0 = 0
+10:0/0 = 0
+11:0/0 = 0
+12:0/0 = 0
+13:0/0 = 0
+14:0/0 = 0
+15:0/0 = 0
+16:0/0 = 0
+17:0/0 = 0
+0:1/0 = 0
+1:1/0 = 0
+2:1/0 = 0
+3:1/0 = 0
+4:1/0 = 0
+5:1/0 = 0
+6:1/0 = 0
+7:1/0 = 0
+8:1/0 = 0
+9:1/0 = 0
+10:1/0 = 0
+11:1/0 = 0
+12:1/0 = 0
+13:1/0 = 0
+14:1/0 = 0
+15:1/0 = 0
+16:1/0 = 0
+17:1/0 = 0
+0:2/0 = 0
+1:2/0 = 0
+2:2/0 = 0
+3:2/0 = 0
+4:2/0 = 0
+5:2/0 = 0
+6:2/0 = 0
+7:2/0 = 0
+10:2/0 = 0
+11:2/0 = 0
+12:2/0 = 0
+13:2/0 = 0
+16:2/0 = 0
+17:2/0 = 0
+0:3/0 = 0
+1:3/0 = 0
+2:3/0 = 0
+3:3/0 = 0
+4:3/0 = 0
+5:3/0 = 0
+6:3/0 = 0
+7:3/0 = 0
+10:3/0 = 0
+11:3/0 = 0
+12:3/0 = 0
+13:3/0 = 0
+16:3/0 = 0
+17:3/0 = 0
+0:4/0 = 0
+1:4/0 = 0
+2:4/0 = 0
+3:4/0 = 0
+4:4/0 = 0
+5:4/0 = 0
+6:4/0 = 0
+7:4/0 = 0
+8:4/0 = 0
+9:4/0 = 0
+10:4/0 = 0
+11:4/0 = 0
+12:4/0 = 0
+13:4/0 = 0
+14:4/0 = 0
+15:4/0 = 0
+16:4/0 = 0
+17:4/0 = 0
+0:5/0 = 0
+1:5/0 = 0
+2:5/0 = 0
+3:5/0 = 0
+4:5/0 = 0
+5:5/0 = 0
+6:5/0 = 0
+7:5/0 = 0
+8:5/0 = 0
+9:5/0 = 0
+10:5/0 = 0
+11:5/0 = 0
+12:5/0 = 0
+13:5/0 = 0
+14:5/0 = 0
+15:5/0 = 0
+16:5/0 = 0
+17:5/0 = 0
+2:6/0 = 0
+3:6/0 = 0
+4:6/0 = 0
+5:6/0 = 0
+8:6/0 = 0
+9:6/0 = 0
+10:6/0 = 0
+11:6/0 = 0
+12:6/0 = 0
+13:6/0 = 0
+14:6/0 = 0
+15:6/0 = 0
+16:6/0 = 0
+17:6/0 = 0
+2:7/0 = 0
+3:7/0 = 0
+4:7/0 = 0
+5:7/0 = 0
+8:7/0 = 0
+9:7/0 = 0
+10:7/0 = 0
+11:7/0 = 0
+12:7/0 = 0
+13:7/0 = 0
+14:7/0 = 0
+15:7/0 = 0
+16:7/0 = 0
+17:7/0 = 0
+0:8/0 = 0
+1:8/0 = 0
+2:8/0 = 0
+3:8/0 = 0
+4:8/0 = 0
+5:8/0 = 0
+6:8/0 = 0
+7:8/0 = 0
+8:8/0 = 0
+9:8/0 = 0
+10:8/0 = 0
+11:8/0 = 0
+12:8/0 = 0
+13:8/0 = 0
+14:8/0 = 0
+15:8/0 = 0
+16:8/0 = 0
+17:8/0 = 0
+0:9/0 = 0
+1:9/0 = 0
+2:9/0 = 0
+3:9/0 = 0
+4:9/0 = 0
+5:9/0 = 0
+6:9/0 = 0
+7:9/0 = 0
+8:9/0 = 0
+9:9/0 = 0
+10:9/0 = 0
+11:9/0 = 0
+12:9/0 = 0
+13:9/0 = 0
+2:10/0 = 0
+3:10/0 = 0
+4:10/0 = 0
+5:10/0 = 0
+8:10/0 = 0
+9:10/0 = 0
+10:10/0 = 0
+11:10/0 = 0
+12:10/0 = 0
+13:10/0 = 0
+14:10/0 = 0
+15:10/0 = 0
+16:10/0 = 0
+17:10/0 = 0
+2:11/0 = 0
+3:11/0 = 0
+4:11/0 = 0
+5:11/0 = 0
+8:11/0 = 0
+9:11/0 = 0
+10:11/0 = 0
+11:11/0 = 0
+12:11/0 = 0
+13:11/0 = 0
+14:11/0 = 0
+15:11/0 = 0
+16:11/0 = 0
+17:11/0 = 0
+0:12/0 = 0
+1:12/0 = 0
+2:12/0 = 0
+3:12/0 = 0
+4:12/0 = 0
+5:12/0 = 0
+6:12/0 = 0
+7:12/0 = 0
+8:12/0 = 0
+9:12/0 = 0
+10:12/0 = 0
+11:12/0 = 0
+12:12/0 = 0
+13:12/0 = 0
+14:12/0 = 0
+15:12/0 = 0
+16:12/0 = 0
+17:12/0 = 0
+0:13/0 = 0
+1:13/0 = 0
+2:13/0 = 0
+3:13/0 = 0
+4:13/0 = 0
+5:13/0 = 0
+6:13/0 = 0
+7:13/0 = 0
+8:13/0 = 0
+9:13/0 = 0
+10:13/0 = 0
+11:13/0 = 0
+12:13/0 = 0
+13:13/0 = 0
+14:13/0 = 0
+15:13/0 = 0
+16:13/0 = 0
+17:13/0 = 0
+0:14/0 = 0
+1:14/0 = 0
+2:14/0 = 0
+3:14/0 = 0
+4:14/0 = 0
+5:14/0 = 0
+6:14/0 = 0
+7:14/0 = 0
+10:14/0 = 0
+11:14/0 = 0
+12:14/0 = 0
+13:14/0 = 0
+16:14/0 = 0
+17:14/0 = 0
+0:15/0 = 0
+1:15/0 = 0
+2:15/0 = 0
+3:15/0 = 0
+4:15/0 = 0
+5:15/0 = 0
+6:15/0 = 0
+7:15/0 = 0
+10:15/0 = 0
+11:15/0 = 0
+12:15/0 = 0
+13:15/0 = 0
+16:15/0 = 0
+17:15/0 = 0
+0:16/0 = 0
+1:16/0 = 0
+2:16/0 = 0
+3:16/0 = 0
+4:16/0 = 0
+5:16/0 = 0
+6:16/0 = 0
+7:16/0 = 0
+8:16/0 = 0
+9:16/0 = 0
+10:16/0 = 0
+11:16/0 = 0
+12:16/0 = 0
+13:16/0 = 0
+14:16/0 = 0
+15:16/0 = 0
+16:16/0 = 0
+17:16/0 = 0
+0:17/0 = 0
+1:17/0 = 0
+2:17/0 = 0
+3:17/0 = 0
+4:17/0 = 0
+5:17/0 = 0
+6:17/0 = 0
+7:17/0 = 0
+8:17/0 = 0
+9:17/0 = 0
+10:17/0 = 0
+11:17/0 = 0
+12:17/0 = 0
+13:17/0 = 0
+14:17/0 = 0
+15:17/0 = 0
+16:17/0 = 0
+17:17/0 = 0
+2:18/0 = 0
+3:18/0 = 0
+4:18/0 = 0
+5:18/0 = 0
+8:18/0 = 0
+9:18/0 = 0
+10:18/0 = 0
+11:18/0 = 0
+12:18/0 = 0
+13:18/0 = 0
+14:18/0 = 0
+15:18/0 = 0
+16:18/0 = 0
+17:18/0 = 0
+2:19/0 = 0
+3:19/0 = 0
+4:19/0 = 0
+5:19/0 = 0
+8:19/0 = 0
+9:19/0 = 0
+10:19/0 = 0
+11:19/0 = 0
+12:19/0 = 0
+13:19/0 = 0
+14:19/0 = 0
+15:19/0 = 0
+16:19/0 = 0
+17:19/0 = 0
+0:20/0 = 0
+1:20/0 = 0
+2:20/0 = 0
+3:20/0 = 0
+4:20/0 = 0
+5:20/0 = 0
+6:20/0 = 0
+7:20/0 = 0
+8:20/0 = 0
+9:20/0 = 0
+10:20/0 = 0
+11:20/0 = 0
+12:20/0 = 0
+13:20/0 = 0
+14:20/0 = 0
+15:20/0 = 0
+16:20/0 = 0
+17:20/0 = 0
+0:21/0 = 0
+1:21/0 = 0
+2:21/0 = 0
+3:21/0 = 0
+4:21/0 = 0
+5:21/0 = 0
+6:21/0 = 0
+7:21/0 = 0
+8:21/0 = 0
+9:21/0 = 0
+10:21/0 = 0
+11:21/0 = 0
+12:21/0 = 0
+13:21/0 = 0
+2:22/0 = 0
+3:22/0 = 0
+4:22/0 = 0
+5:22/0 = 0
+8:22/0 = 0
+9:22/0 = 0
+10:22/0 = 0
+11:22/0 = 0
+12:22/0 = 0
+13:22/0 = 0
+14:22/0 = 0
+15:22/0 = 0
+16:22/0 = 0
+17:22/0 = 0
+2:23/0 = 0
+3:23/0 = 0
+4:23/0 = 0
+5:23/0 = 0
+8:23/0 = 0
+9:23/0 = 0
+10:23/0 = 0
+11:23/0 = 0
+12:23/0 = 0
+13:23/0 = 0
+14:23/0 = 0
+15:23/0 = 0
+16:23/0 = 0
+17:23/0 = 0
+0:24/0 = 0
+1:24/0 = 0
+2:24/0 = 0
+3:24/0 = 0
+4:24/0 = 0
+5:24/0 = 0
+6:24/0 = 0
+7:24/0 = 0
+8:24/0 = 0
+9:24/0 = 0
+10:24/0 = 0
+11:24/0 = 0
+12:24/0 = 0
+13:24/0 = 0
+14:24/0 = 0
+15:24/0 = 0
+16:24/0 = 0
+17:24/0 = 0
+0:25/0 = 0
+1:25/0 = 0
+2:25/0 = 0
+3:25/0 = 0
+4:25/0 = 0
+5:25/0 = 0
+6:25/0 = 0
+7:25/0 = 0
+8:25/0 = 0
+9:25/0 = 0
+10:25/0 = 0
+11:25/0 = 0
+12:25/0 = 0
+13:25/0 = 0
+14:25/0 = 0
+15:25/0 = 0
+16:25/0 = 0
+17:25/0 = 0
+0:26/0 = 0
+1:26/0 = 0
+2:26/0 = 0
+3:26/0 = 0
+4:26/0 = 0
+5:26/0 = 0
+6:26/0 = 0
+7:26/0 = 0
+10:26/0 = 0
+11:26/0 = 0
+12:26/0 = 0
+13:26/0 = 0
+16:26/0 = 0
+17:26/0 = 0
+0:27/0 = 0
+1:27/0 = 0
+2:27/0 = 0
+3:27/0 = 0
+4:27/0 = 0
+5:27/0 = 0
+6:27/0 = 0
+7:27/0 = 0
+10:27/0 = 0
+11:27/0 = 0
+12:27/0 = 0
+13:27/0 = 0
+16:27/0 = 0
+17:27/0 = 0
+0:28/0 = 0
+1:28/0 = 0
+2:28/0 = 0
+3:28/0 = 0
+4:28/0 = 0
+5:28/0 = 0
+6:28/0 = 0
+7:28/0 = 0
+8:28/0 = 0
+9:28/0 = 0
+10:28/0 = 0
+11:28/0 = 0
+12:28/0 = 0
+13:28/0 = 0
+14:28/0 = 0
+15:28/0 = 0
+16:28/0 = 0
+17:28/0 = 0
+0:29/0 = 0
+1:29/0 = 0
+2:29/0 = 0
+3:29/0 = 0
+4:29/0 = 0
+5:29/0 = 0
+6:29/0 = 0
+7:29/0 = 0
+8:29/0 = 0
+9:29/0 = 0
+10:29/0 = 0
+11:29/0 = 0
+12:29/0 = 0
+13:29/0 = 0
+14:29/0 = 0
+15:29/0 = 0
+16:29/0 = 0
+17:29/0 = 0
+2:30/0 = 0
+3:30/0 = 0
+4:30/0 = 0
+5:30/0 = 0
+8:30/0 = 0
+9:30/0 = 0
+10:30/0 = 0
+11:30/0 = 0
+12:30/0 = 0
+13:30/0 = 0
+14:30/0 = 0
+15:30/0 = 0
+16:30/0 = 0
+17:30/0 = 0
+2:31/0 = 0
+3:31/0 = 0
+4:31/0 = 0
+5:31/0 = 0
+8:31/0 = 0
+9:31/0 = 0
+10:31/0 = 0
+11:31/0 = 0
+12:31/0 = 0
+13:31/0 = 0
+14:31/0 = 0
+15:31/0 = 0
+16:31/0 = 0
+17:31/0 = 0
+0:32/0 = 0
+1:32/0 = 0
+2:32/0 = 0
+3:32/0 = 0
+4:32/0 = 0
+5:32/0 = 0
+6:32/0 = 0
+7:32/0 = 0
+8:32/0 = 0
+9:32/0 = 0
+10:32/0 = 0
+11:32/0 = 0
+12:32/0 = 0
+13:32/0 = 0
+14:32/0 = 0
+15:32/0 = 0
+16:32/0 = 0
+17:32/0 = 0
+0:33/0 = 0
+1:33/0 = 0
+2:33/0 = 0
+3:33/0 = 0
+4:33/0 = 0
+5:33/0 = 0
+6:33/0 = 0
+7:33/0 = 0
+8:33/0 = 0
+9:33/0 = 0
+10:33/0 = 0
+11:33/0 = 0
+12:33/0 = 0
+13:33/0 = 0
+2:34/0 = 0
+3:34/0 = 0
+4:34/0 = 0
+5:34/0 = 0
+8:34/0 = 0
+9:34/0 = 0
+10:34/0 = 0
+11:34/0 = 0
+12:34/0 = 0
+13:34/0 = 0
+14:34/0 = 0
+15:34/0 = 0
+16:34/0 = 0
+17:34/0 = 0
+2:35/0 = 0
+3:35/0 = 0
+4:35/0 = 0
+5:35/0 = 0
+8:35/0 = 0
+9:35/0 = 0
+10:35/0 = 0
+11:35/0 = 0
+12:35/0 = 0
+13:35/0 = 0
+14:35/0 = 0
+15:35/0 = 0
+16:35/0 = 0
+17:35/0 = 0
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8j387"]
+texture = ExtResource("7_kh4a2")
+2:0/0 = 0
+3:0/0 = 0
+4:0/0 = 0
+5:0/0 = 0
+6:0/0 = 0
+7:0/0 = 0
+12:0/0 = 0
+13:0/0 = 0
+14:0/0 = 0
+15:0/0 = 0
+18:0/0 = 0
+19:0/0 = 0
+22:0/0 = 0
+23:0/0 = 0
+0:1/0 = 0
+1:1/0 = 0
+2:1/0 = 0
+3:1/0 = 0
+4:1/0 = 0
+5:1/0 = 0
+6:1/0 = 0
+7:1/0 = 0
+8:1/0 = 0
+9:1/0 = 0
+10:1/0 = 0
+11:1/0 = 0
+12:1/0 = 0
+13:1/0 = 0
+14:1/0 = 0
+15:1/0 = 0
+16:1/0 = 0
+17:1/0 = 0
+18:1/0 = 0
+19:1/0 = 0
+20:1/0 = 0
+21:1/0 = 0
+22:1/0 = 0
+23:1/0 = 0
+24:1/0 = 0
+25:1/0 = 0
+16:2/0 = 0
+17:2/0 = 0
+18:2/0 = 0
+19:2/0 = 0
+1:3/0 = 0
+2:3/0 = 0
+3:3/0 = 0
+4:3/0 = 0
+7:3/0 = 0
+8:3/0 = 0
+9:3/0 = 0
+10:3/0 = 0
+16:3/0 = 0
+17:3/0 = 0
+18:3/0 = 0
+19:3/0 = 0
+20:3/0 = 0
+21:3/0 = 0
+22:3/0 = 0
+23:3/0 = 0
+24:3/0 = 0
+25:3/0 = 0
+0:4/0 = 0
+1:4/0 = 0
+2:4/0 = 0
+3:4/0 = 0
+4:4/0 = 0
+5:4/0 = 0
+6:4/0 = 0
+7:4/0 = 0
+8:4/0 = 0
+9:4/0 = 0
+10:4/0 = 0
+11:4/0 = 0
+13:4/0 = 0
+14:4/0 = 0
+16:4/0 = 0
+17:4/0 = 0
+18:4/0 = 0
+19:4/0 = 0
+0:5/0 = 0
+1:5/0 = 0
+2:5/0 = 0
+3:5/0 = 0
+4:5/0 = 0
+5:5/0 = 0
+6:5/0 = 0
+7:5/0 = 0
+8:5/0 = 0
+9:5/0 = 0
+10:5/0 = 0
+11:5/0 = 0
+12:5/0 = 0
+13:5/0 = 0
+14:5/0 = 0
+15:5/0 = 0
+16:5/0 = 0
+17:5/0 = 0
+18:5/0 = 0
+19:5/0 = 0
+20:5/0 = 0
+21:5/0 = 0
+22:5/0 = 0
+23:5/0 = 0
+24:5/0 = 0
+25:5/0 = 0
+2:6/0 = 0
+3:6/0 = 0
+4:6/0 = 0
+5:6/0 = 0
+12:6/0 = 0
+13:6/0 = 0
+14:6/0 = 0
+15:6/0 = 0
+16:6/0 = 0
+17:6/0 = 0
+18:6/0 = 0
+19:6/0 = 0
+20:6/0 = 0
+21:6/0 = 0
+0:7/0 = 0
+1:7/0 = 0
+2:7/0 = 0
+3:7/0 = 0
+4:7/0 = 0
+5:7/0 = 0
+6:7/0 = 0
+7:7/0 = 0
+8:7/0 = 0
+9:7/0 = 0
+10:7/0 = 0
+11:7/0 = 0
+12:7/0 = 0
+13:7/0 = 0
+14:7/0 = 0
+15:7/0 = 0
+16:7/0 = 0
+17:7/0 = 0
+18:7/0 = 0
+19:7/0 = 0
+20:7/0 = 0
+21:7/0 = 0
+22:7/0 = 0
+23:7/0 = 0
+24:7/0 = 0
+25:7/0 = 0
+20:8/0 = 0
+21:8/0 = 0
+22:8/0 = 0
+25:8/0 = 0
+0:9/0 = 0
+1:9/0 = 0
+2:9/0 = 0
+3:9/0 = 0
+4:9/0 = 0
+5:9/0 = 0
+6:9/0 = 0
+7:9/0 = 0
+8:9/0 = 0
+9:9/0 = 0
+10:9/0 = 0
+11:9/0 = 0
+12:9/0 = 0
+13:9/0 = 0
+14:9/0 = 0
+15:9/0 = 0
+16:9/0 = 0
+17:9/0 = 0
+20:9/0 = 0
+21:9/0 = 0
+22:9/0 = 0
+23:9/0 = 0
+24:9/0 = 0
+25:9/0 = 0
+18:10/0 = 0
+19:10/0 = 0
+20:10/0 = 0
+21:10/0 = 0
+22:10/0 = 0
+23:10/0 = 0
+24:10/0 = 0
+25:10/0 = 0
+0:11/0 = 0
+1:11/0 = 0
+2:11/0 = 0
+3:11/0 = 0
+4:11/0 = 0
+5:11/0 = 0
+6:11/0 = 0
+7:11/0 = 0
+8:11/0 = 0
+9:11/0 = 0
+10:11/0 = 0
+11:11/0 = 0
+12:11/0 = 0
+13:11/0 = 0
+14:11/0 = 0
+15:11/0 = 0
+16:11/0 = 0
+17:11/0 = 0
+18:11/0 = 0
+19:11/0 = 0
+20:11/0 = 0
+21:11/0 = 0
+22:11/0 = 0
+23:11/0 = 0
+24:11/0 = 0
+25:11/0 = 0
+19:12/0 = 0
+20:12/0 = 0
+0:13/0 = 0
+1:13/0 = 0
+2:13/0 = 0
+3:13/0 = 0
+4:13/0 = 0
+5:13/0 = 0
+6:13/0 = 0
+7:13/0 = 0
+8:13/0 = 0
+9:13/0 = 0
+10:13/0 = 0
+11:13/0 = 0
+12:13/0 = 0
+13:13/0 = 0
+14:13/0 = 0
+15:13/0 = 0
+16:13/0 = 0
+17:13/0 = 0
+18:13/0 = 0
+19:13/0 = 0
+20:13/0 = 0
+21:13/0 = 0
+22:13/0 = 0
+23:13/0 = 0
+24:13/0 = 0
+25:13/0 = 0
+3:14/0 = 0
+4:14/0 = 0
+9:14/0 = 0
+10:14/0 = 0
+15:14/0 = 0
+16:14/0 = 0
+18:14/0 = 0
+19:14/0 = 0
+20:14/0 = 0
+21:14/0 = 0
+0:15/0 = 0
+1:15/0 = 0
+2:15/0 = 0
+3:15/0 = 0
+4:15/0 = 0
+5:15/0 = 0
+6:15/0 = 0
+7:15/0 = 0
+8:15/0 = 0
+9:15/0 = 0
+10:15/0 = 0
+11:15/0 = 0
+12:15/0 = 0
+13:15/0 = 0
+14:15/0 = 0
+15:15/0 = 0
+16:15/0 = 0
+17:15/0 = 0
+19:15/0 = 0
+20:15/0 = 0
+24:16/0 = 0
+25:16/0 = 0
+2:17/0 = 0
+3:17/0 = 0
+4:17/0 = 0
+8:17/0 = 0
+9:17/0 = 0
+10:17/0 = 0
+14:17/0 = 0
+15:17/0 = 0
+16:17/0 = 0
+20:17/0 = 0
+21:17/0 = 0
+22:17/0 = 0
+24:17/0 = 0
+25:17/0 = 0
+1:18/0 = 0
+2:18/0 = 0
+3:18/0 = 0
+4:18/0 = 0
+5:18/0 = 0
+7:18/0 = 0
+8:18/0 = 0
+9:18/0 = 0
+10:18/0 = 0
+11:18/0 = 0
+13:18/0 = 0
+14:18/0 = 0
+15:18/0 = 0
+16:18/0 = 0
+17:18/0 = 0
+19:18/0 = 0
+20:18/0 = 0
+21:18/0 = 0
+22:18/0 = 0
+23:18/0 = 0
+24:18/0 = 0
+25:18/0 = 0
+0:19/0 = 0
+1:19/0 = 0
+2:19/0 = 0
+3:19/0 = 0
+4:19/0 = 0
+5:19/0 = 0
+6:19/0 = 0
+7:19/0 = 0
+8:19/0 = 0
+9:19/0 = 0
+10:19/0 = 0
+11:19/0 = 0
+12:19/0 = 0
+13:19/0 = 0
+14:19/0 = 0
+15:19/0 = 0
+16:19/0 = 0
+17:19/0 = 0
+18:19/0 = 0
+19:19/0 = 0
+20:19/0 = 0
+21:19/0 = 0
+22:19/0 = 0
+23:19/0 = 0
+24:19/0 = 0
+25:19/0 = 0
+2:20/0 = 0
+3:20/0 = 0
+4:20/0 = 0
+5:20/0 = 0
+6:20/0 = 0
+7:20/0 = 0
+12:20/0 = 0
+13:20/0 = 0
+14:20/0 = 0
+18:20/0 = 0
+19:20/0 = 0
+20:20/0 = 0
+10:21/0 = 0
+11:21/0 = 0
+12:21/0 = 0
+13:21/0 = 0
+14:21/0 = 0
+15:21/0 = 0
+16:21/0 = 0
+17:21/0 = 0
+18:21/0 = 0
+19:21/0 = 0
+20:21/0 = 0
+21:21/0 = 0
+1:22/0 = 0
+2:22/0 = 0
+3:22/0 = 0
+4:22/0 = 0
+5:22/0 = 0
+6:22/0 = 0
+7:22/0 = 0
+8:22/0 = 0
+1:23/0 = 0
+2:23/0 = 0
+3:23/0 = 0
+4:23/0 = 0
+5:23/0 = 0
+6:23/0 = 0
+7:23/0 = 0
+8:23/0 = 0
+10:23/0 = 0
+11:23/0 = 0
+12:23/0 = 0
+13:23/0 = 0
+14:23/0 = 0
+15:23/0 = 0
+16:23/0 = 0
+17:23/0 = 0
+1:24/0 = 0
+8:24/0 = 0
+1:25/0 = 0
+8:25/0 = 0
+0:26/0 = 0
+1:26/0 = 0
+2:26/0 = 0
+4:26/0 = 0
+0:27/0 = 0
+1:27/0 = 0
+2:27/0 = 0
+3:27/0 = 0
+4:27/0 = 0
+5:27/0 = 0
+6:27/0 = 0
+7:27/0 = 0
+0:28/0 = 0
+1:28/0 = 0
+2:28/0 = 0
+4:28/0 = 0
+0:29/0 = 0
+1:29/0 = 0
+2:29/0 = 0
+3:29/0 = 0
+4:29/0 = 0
+5:29/0 = 0
+6:29/0 = 0
+7:29/0 = 0
+0:30/0 = 0
+1:30/0 = 0
+2:30/0 = 0
+4:30/0 = 0
+0:31/0 = 0
+1:31/0 = 0
+2:31/0 = 0
+3:31/0 = 0
+4:31/0 = 0
+5:31/0 = 0
+6:31/0 = 0
+7:31/0 = 0
+0:12/0 = 0
+0:14/0 = 0
+0:16/0 = 0
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_5dhap"]
+texture = ExtResource("8_8j387")
+6:0/0 = 0
+7:0/0 = 0
+8:0/0 = 0
+9:0/0 = 0
+10:0/0 = 0
+4:1/0 = 0
+5:1/0 = 0
+6:1/0 = 0
+7:1/0 = 0
+8:1/0 = 0
+9:1/0 = 0
+10:1/0 = 0
+11:1/0 = 0
+12:1/0 = 0
+3:2/0 = 0
+4:2/0 = 0
+5:2/0 = 0
+6:2/0 = 0
+7:2/0 = 0
+8:2/0 = 0
+9:2/0 = 0
+10:2/0 = 0
+11:2/0 = 0
+12:2/0 = 0
+3:3/0 = 0
+4:3/0 = 0
+5:3/0 = 0
+6:3/0 = 0
+7:3/0 = 0
+8:3/0 = 0
+9:3/0 = 0
+10:3/0 = 0
+11:3/0 = 0
+12:3/0 = 0
+1:4/0 = 0
+2:4/0 = 0
+3:4/0 = 0
+4:4/0 = 0
+5:4/0 = 0
+6:4/0 = 0
+7:4/0 = 0
+8:4/0 = 0
+9:4/0 = 0
+10:4/0 = 0
+11:4/0 = 0
+12:4/0 = 0
+13:4/0 = 0
+0:5/0 = 0
+1:5/0 = 0
+2:5/0 = 0
+3:5/0 = 0
+4:5/0 = 0
+5:5/0 = 0
+6:5/0 = 0
+7:5/0 = 0
+8:5/0 = 0
+9:5/0 = 0
+10:5/0 = 0
+11:5/0 = 0
+12:5/0 = 0
+13:5/0 = 0
+14:5/0 = 0
+15:5/0 = 0
+0:6/0 = 0
+1:6/0 = 0
+2:6/0 = 0
+3:6/0 = 0
+4:6/0 = 0
+5:6/0 = 0
+6:6/0 = 0
+7:6/0 = 0
+8:6/0 = 0
+9:6/0 = 0
+10:6/0 = 0
+11:6/0 = 0
+12:6/0 = 0
+13:6/0 = 0
+14:6/0 = 0
+15:6/0 = 0
+1:7/0 = 0
+2:7/0 = 0
+3:7/0 = 0
+4:7/0 = 0
+5:7/0 = 0
+6:7/0 = 0
+7:7/0 = 0
+8:7/0 = 0
+9:7/0 = 0
+10:7/0 = 0
+11:7/0 = 0
+12:7/0 = 0
+13:7/0 = 0
+14:7/0 = 0
+15:7/0 = 0
+3:8/0 = 0
+4:8/0 = 0
+5:8/0 = 0
+6:8/0 = 0
+7:8/0 = 0
+8:8/0 = 0
+9:8/0 = 0
+10:8/0 = 0
+11:8/0 = 0
+12:8/0 = 0
+13:8/0 = 0
+14:8/0 = 0
+15:8/0 = 0
+6:9/0 = 0
+7:9/0 = 0
+8:9/0 = 0
+11:9/0 = 0
+12:9/0 = 0
+6:10/0 = 0
+7:10/0 = 0
+8:10/0 = 0
+6:11/0 = 0
+7:11/0 = 0
+8:11/0 = 0
+6:12/0 = 0
+7:12/0 = 0
+8:12/0 = 0
+9:12/0 = 0
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_s427y"]
+texture = ExtResource("9_5dhap")
+0:0/0 = 0
+1:0/0 = 0
+2:0/0 = 0
+6:0/0 = 0
+7:0/0 = 0
+8:0/0 = 0
+12:0/0 = 0
+13:0/0 = 0
+14:0/0 = 0
+0:1/0 = 0
+1:1/0 = 0
+2:1/0 = 0
+3:1/0 = 0
+6:1/0 = 0
+7:1/0 = 0
+8:1/0 = 0
+9:1/0 = 0
+12:1/0 = 0
+13:1/0 = 0
+14:1/0 = 0
+15:1/0 = 0
+0:2/0 = 0
+1:2/0 = 0
+2:2/0 = 0
+3:2/0 = 0
+6:2/0 = 0
+7:2/0 = 0
+8:2/0 = 0
+9:2/0 = 0
+12:2/0 = 0
+13:2/0 = 0
+14:2/0 = 0
+15:2/0 = 0
+0:3/0 = 0
+1:3/0 = 0
+2:3/0 = 0
+3:3/0 = 0
+4:3/0 = 0
+5:3/0 = 0
+6:3/0 = 0
+7:3/0 = 0
+8:3/0 = 0
+9:3/0 = 0
+10:3/0 = 0
+11:3/0 = 0
+12:3/0 = 0
+13:3/0 = 0
+14:3/0 = 0
+15:3/0 = 0
+16:3/0 = 0
+17:3/0 = 0
+2:4/0 = 0
+3:4/0 = 0
+4:4/0 = 0
+5:4/0 = 0
+8:4/0 = 0
+9:4/0 = 0
+10:4/0 = 0
+11:4/0 = 0
+14:4/0 = 0
+15:4/0 = 0
+16:4/0 = 0
+17:4/0 = 0
+2:5/0 = 0
+3:5/0 = 0
+4:5/0 = 0
+5:5/0 = 0
+8:5/0 = 0
+9:5/0 = 0
+10:5/0 = 0
+11:5/0 = 0
+14:5/0 = 0
+15:5/0 = 0
+16:5/0 = 0
+17:5/0 = 0
+0:6/0 = 0
+1:6/0 = 0
+2:6/0 = 0
+3:6/0 = 0
+4:6/0 = 0
+5:6/0 = 0
+6:6/0 = 0
+7:6/0 = 0
+8:6/0 = 0
+9:6/0 = 0
+10:6/0 = 0
+11:6/0 = 0
+12:6/0 = 0
+13:6/0 = 0
+14:6/0 = 0
+15:6/0 = 0
+0:7/0 = 0
+1:7/0 = 0
+2:7/0 = 0
+3:7/0 = 0
+4:7/0 = 0
+5:7/0 = 0
+6:7/0 = 0
+7:7/0 = 0
+8:7/0 = 0
+9:7/0 = 0
+10:7/0 = 0
+11:7/0 = 0
+12:7/0 = 0
+13:7/0 = 0
+14:7/0 = 0
+15:7/0 = 0
+0:8/0 = 0
+1:8/0 = 0
+2:8/0 = 0
+3:8/0 = 0
+4:8/0 = 0
+5:8/0 = 0
+6:8/0 = 0
+7:8/0 = 0
+10:8/0 = 0
+11:8/0 = 0
+12:8/0 = 0
+13:8/0 = 0
+14:8/0 = 0
+15:8/0 = 0
+0:9/0 = 0
+1:9/0 = 0
+2:9/0 = 0
+3:9/0 = 0
+4:9/0 = 0
+5:9/0 = 0
+6:9/0 = 0
+7:9/0 = 0
+10:9/0 = 0
+11:9/0 = 0
+12:9/0 = 0
+13:9/0 = 0
+14:9/0 = 0
+15:9/0 = 0
+0:10/0 = 0
+1:10/0 = 0
+2:10/0 = 0
+3:10/0 = 0
+4:10/0 = 0
+5:10/0 = 0
+6:10/0 = 0
+7:10/0 = 0
+10:10/0 = 0
+11:10/0 = 0
+0:11/0 = 0
+1:11/0 = 0
+2:11/0 = 0
+3:11/0 = 0
+4:11/0 = 0
+5:11/0 = 0
+6:11/0 = 0
+7:11/0 = 0
+10:11/0 = 0
+11:11/0 = 0
+0:12/0 = 0
+1:12/0 = 0
+2:12/0 = 0
+3:12/0 = 0
+4:12/0 = 0
+5:12/0 = 0
+6:12/0 = 0
+7:12/0 = 0
+8:12/0 = 0
+9:12/0 = 0
+0:13/0 = 0
+1:13/0 = 0
+2:13/0 = 0
+3:13/0 = 0
+4:13/0 = 0
+5:13/0 = 0
+6:13/0 = 0
+7:13/0 = 0
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_okhi1"]
+texture = ExtResource("10_8brng")
+4:0/0 = 0
+5:0/0 = 0
+6:0/0 = 0
+7:0/0 = 0
+8:0/0 = 0
+2:1/0 = 0
+3:1/0 = 0
+4:1/0 = 0
+5:1/0 = 0
+6:1/0 = 0
+7:1/0 = 0
+8:1/0 = 0
+9:1/0 = 0
+1:2/0 = 0
+2:2/0 = 0
+3:2/0 = 0
+4:2/0 = 0
+5:2/0 = 0
+6:2/0 = 0
+7:2/0 = 0
+8:2/0 = 0
+9:2/0 = 0
+10:2/0 = 0
+0:3/0 = 0
+1:3/0 = 0
+2:3/0 = 0
+3:3/0 = 0
+4:3/0 = 0
+5:3/0 = 0
+6:3/0 = 0
+7:3/0 = 0
+8:3/0 = 0
+9:3/0 = 0
+10:3/0 = 0
+11:3/0 = 0
+12:3/0 = 0
+0:4/0 = 0
+1:4/0 = 0
+2:4/0 = 0
+3:4/0 = 0
+4:4/0 = 0
+5:4/0 = 0
+6:4/0 = 0
+7:4/0 = 0
+8:4/0 = 0
+9:4/0 = 0
+10:4/0 = 0
+11:4/0 = 0
+12:4/0 = 0
+0:5/0 = 0
+1:5/0 = 0
+2:5/0 = 0
+3:5/0 = 0
+4:5/0 = 0
+5:5/0 = 0
+6:5/0 = 0
+7:5/0 = 0
+8:5/0 = 0
+9:5/0 = 0
+10:5/0 = 0
+11:5/0 = 0
+12:5/0 = 0
+13:5/0 = 0
+0:6/0 = 0
+1:6/0 = 0
+2:6/0 = 0
+3:6/0 = 0
+4:6/0 = 0
+5:6/0 = 0
+6:6/0 = 0
+7:6/0 = 0
+8:6/0 = 0
+9:6/0 = 0
+10:6/0 = 0
+11:6/0 = 0
+12:6/0 = 0
+13:6/0 = 0
+0:7/0 = 0
+1:7/0 = 0
+2:7/0 = 0
+3:7/0 = 0
+4:7/0 = 0
+5:7/0 = 0
+6:7/0 = 0
+7:7/0 = 0
+8:7/0 = 0
+9:7/0 = 0
+10:7/0 = 0
+11:7/0 = 0
+12:7/0 = 0
+13:7/0 = 0
+0:8/0 = 0
+1:8/0 = 0
+2:8/0 = 0
+3:8/0 = 0
+4:8/0 = 0
+5:8/0 = 0
+6:8/0 = 0
+7:8/0 = 0
+8:8/0 = 0
+9:8/0 = 0
+10:8/0 = 0
+11:8/0 = 0
+12:8/0 = 0
+13:8/0 = 0
+0:9/0 = 0
+1:9/0 = 0
+2:9/0 = 0
+3:9/0 = 0
+4:9/0 = 0
+5:9/0 = 0
+6:9/0 = 0
+7:9/0 = 0
+8:9/0 = 0
+9:9/0 = 0
+10:9/0 = 0
+11:9/0 = 0
+12:9/0 = 0
+13:9/0 = 0
+2:10/0 = 0
+3:10/0 = 0
+4:10/0 = 0
+5:10/0 = 0
+6:10/0 = 0
+7:10/0 = 0
+12:10/0 = 0
+5:11/0 = 0
+6:11/0 = 0
+7:11/0 = 0
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_2eeft"]
+texture = ExtResource("11_w330p")
+1:0/0 = 0
+2:0/0 = 0
+3:0/0 = 0
+0:1/0 = 0
+1:1/0 = 0
+2:1/0 = 0
+3:1/0 = 0
+4:1/0 = 0
+0:2/0 = 0
+1:2/0 = 0
+2:2/0 = 0
+3:2/0 = 0
+4:2/0 = 0
+0:3/0 = 0
+1:3/0 = 0
+2:3/0 = 0
+3:3/0 = 0
+4:3/0 = 0
+0:4/0 = 0
+1:4/0 = 0
+2:4/0 = 0
+3:4/0 = 0
+4:4/0 = 0
+1:5/0 = 0
+2:5/0 = 0
+2:6/0 = 0
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_v4v8k"]
+texture = ExtResource("12_erv2c")
+6:0/0 = 0
+4:1/0 = 0
+5:1/0 = 0
+6:1/0 = 0
+3:2/0 = 0
+4:2/0 = 0
+5:2/0 = 0
+6:2/0 = 0
+3:3/0 = 0
+4:3/0 = 0
+5:3/0 = 0
+6:3/0 = 0
+7:3/0 = 0
+2:4/0 = 0
+3:4/0 = 0
+4:4/0 = 0
+5:4/0 = 0
+6:4/0 = 0
+7:4/0 = 0
+2:5/0 = 0
+3:5/0 = 0
+4:5/0 = 0
+5:5/0 = 0
+6:5/0 = 0
+7:5/0 = 0
+1:6/0 = 0
+2:6/0 = 0
+3:6/0 = 0
+4:6/0 = 0
+5:6/0 = 0
+6:6/0 = 0
+0:7/0 = 0
+1:7/0 = 0
+2:7/0 = 0
+3:7/0 = 0
+4:7/0 = 0
+5:7/0 = 0
+6:7/0 = 0
+0:8/0 = 0
+1:8/0 = 0
+2:8/0 = 0
+3:8/0 = 0
+4:8/0 = 0
+5:8/0 = 0
+6:8/0 = 0
+0:9/0 = 0
+1:9/0 = 0
+2:9/0 = 0
+3:9/0 = 0
+4:9/0 = 0
+5:9/0 = 0
+0:10/0 = 0
+1:10/0 = 0
+2:10/0 = 0
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_oibj5"]
+texture = ExtResource("13_5kdtj")
+2:0/0 = 0
+3:0/0 = 0
+4:0/0 = 0
+5:0/0 = 0
+6:0/0 = 0
+7:0/0 = 0
+8:0/0 = 0
+9:0/0 = 0
+12:0/0 = 0
+13:0/0 = 0
+16:0/0 = 0
+17:0/0 = 0
+20:0/0 = 0
+21:0/0 = 0
+22:0/0 = 0
+23:0/0 = 0
+28:0/0 = 0
+29:0/0 = 0
+30:0/0 = 0
+31:0/0 = 0
+0:1/0 = 0
+1:1/0 = 0
+2:1/0 = 0
+3:1/0 = 0
+4:1/0 = 0
+5:1/0 = 0
+6:1/0 = 0
+7:1/0 = 0
+8:1/0 = 0
+9:1/0 = 0
+12:1/0 = 0
+13:1/0 = 0
+16:1/0 = 0
+17:1/0 = 0
+20:1/0 = 0
+21:1/0 = 0
+22:1/0 = 0
+23:1/0 = 0
+28:1/0 = 0
+29:1/0 = 0
+30:1/0 = 0
+31:1/0 = 0
+0:2/0 = 0
+1:2/0 = 0
+2:2/0 = 0
+3:2/0 = 0
+4:2/0 = 0
+5:2/0 = 0
+6:2/0 = 0
+7:2/0 = 0
+8:2/0 = 0
+9:2/0 = 0
+12:2/0 = 0
+13:2/0 = 0
+16:2/0 = 0
+17:2/0 = 0
+20:2/0 = 0
+21:2/0 = 0
+22:2/0 = 0
+23:2/0 = 0
+26:2/0 = 0
+27:2/0 = 0
+28:2/0 = 0
+29:2/0 = 0
+30:2/0 = 0
+31:2/0 = 0
+34:2/0 = 0
+35:2/0 = 0
+0:3/0 = 0
+1:3/0 = 0
+2:3/0 = 0
+3:3/0 = 0
+4:3/0 = 0
+5:3/0 = 0
+6:3/0 = 0
+7:3/0 = 0
+8:3/0 = 0
+9:3/0 = 0
+12:3/0 = 0
+13:3/0 = 0
+16:3/0 = 0
+17:3/0 = 0
+20:3/0 = 0
+21:3/0 = 0
+22:3/0 = 0
+23:3/0 = 0
+26:3/0 = 0
+27:3/0 = 0
+28:3/0 = 0
+29:3/0 = 0
+30:3/0 = 0
+31:3/0 = 0
+34:3/0 = 0
+35:3/0 = 0
+1:4/0 = 0
+2:4/0 = 0
+3:4/0 = 0
+4:4/0 = 0
+7:4/0 = 0
+8:4/0 = 0
+9:4/0 = 0
+10:4/0 = 0
+12:4/0 = 0
+13:4/0 = 0
+15:4/0 = 0
+16:4/0 = 0
+17:4/0 = 0
+18:4/0 = 0
+21:4/0 = 0
+22:4/0 = 0
+23:4/0 = 0
+24:4/0 = 0
+26:4/0 = 0
+27:4/0 = 0
+29:4/0 = 0
+30:4/0 = 0
+31:4/0 = 0
+32:4/0 = 0
+34:4/0 = 0
+35:4/0 = 0
+1:5/0 = 0
+2:5/0 = 0
+3:5/0 = 0
+4:5/0 = 0
+7:5/0 = 0
+8:5/0 = 0
+9:5/0 = 0
+10:5/0 = 0
+12:5/0 = 0
+13:5/0 = 0
+15:5/0 = 0
+16:5/0 = 0
+17:5/0 = 0
+18:5/0 = 0
+21:5/0 = 0
+22:5/0 = 0
+23:5/0 = 0
+24:5/0 = 0
+26:5/0 = 0
+27:5/0 = 0
+29:5/0 = 0
+30:5/0 = 0
+31:5/0 = 0
+32:5/0 = 0
+34:5/0 = 0
+35:5/0 = 0
+1:6/0 = 0
+2:6/0 = 0
+3:6/0 = 0
+4:6/0 = 0
+7:6/0 = 0
+8:6/0 = 0
+9:6/0 = 0
+10:6/0 = 0
+12:6/0 = 0
+13:6/0 = 0
+15:6/0 = 0
+16:6/0 = 0
+17:6/0 = 0
+18:6/0 = 0
+21:6/0 = 0
+22:6/0 = 0
+23:6/0 = 0
+24:6/0 = 0
+26:6/0 = 0
+27:6/0 = 0
+29:6/0 = 0
+30:6/0 = 0
+31:6/0 = 0
+32:6/0 = 0
+34:6/0 = 0
+35:6/0 = 0
+1:7/0 = 0
+2:7/0 = 0
+3:7/0 = 0
+4:7/0 = 0
+7:7/0 = 0
+8:7/0 = 0
+9:7/0 = 0
+10:7/0 = 0
+12:7/0 = 0
+13:7/0 = 0
+15:7/0 = 0
+16:7/0 = 0
+17:7/0 = 0
+18:7/0 = 0
+21:7/0 = 0
+22:7/0 = 0
+23:7/0 = 0
+24:7/0 = 0
+26:7/0 = 0
+27:7/0 = 0
+29:7/0 = 0
+30:7/0 = 0
+31:7/0 = 0
+32:7/0 = 0
+34:7/0 = 0
+35:7/0 = 0
+0:8/0 = 0
+1:8/0 = 0
+2:8/0 = 0
+3:8/0 = 0
+4:8/0 = 0
+5:8/0 = 0
+6:8/0 = 0
+7:8/0 = 0
+8:8/0 = 0
+9:8/0 = 0
+10:8/0 = 0
+11:8/0 = 0
+14:8/0 = 0
+15:8/0 = 0
+16:8/0 = 0
+17:8/0 = 0
+18:8/0 = 0
+19:8/0 = 0
+20:8/0 = 0
+21:8/0 = 0
+22:8/0 = 0
+23:8/0 = 0
+24:8/0 = 0
+25:8/0 = 0
+28:8/0 = 0
+29:8/0 = 0
+30:8/0 = 0
+31:8/0 = 0
+32:8/0 = 0
+33:8/0 = 0
+0:9/0 = 0
+1:9/0 = 0
+2:9/0 = 0
+3:9/0 = 0
+4:9/0 = 0
+5:9/0 = 0
+6:9/0 = 0
+7:9/0 = 0
+8:9/0 = 0
+9:9/0 = 0
+10:9/0 = 0
+11:9/0 = 0
+14:9/0 = 0
+15:9/0 = 0
+16:9/0 = 0
+17:9/0 = 0
+18:9/0 = 0
+19:9/0 = 0
+20:9/0 = 0
+21:9/0 = 0
+22:9/0 = 0
+23:9/0 = 0
+24:9/0 = 0
+25:9/0 = 0
+28:9/0 = 0
+29:9/0 = 0
+30:9/0 = 0
+31:9/0 = 0
+32:9/0 = 0
+33:9/0 = 0
+0:10/0 = 0
+1:10/0 = 0
+2:10/0 = 0
+3:10/0 = 0
+4:10/0 = 0
+5:10/0 = 0
+6:10/0 = 0
+7:10/0 = 0
+8:10/0 = 0
+9:10/0 = 0
+10:10/0 = 0
+11:10/0 = 0
+14:10/0 = 0
+15:10/0 = 0
+16:10/0 = 0
+17:10/0 = 0
+18:10/0 = 0
+19:10/0 = 0
+20:10/0 = 0
+21:10/0 = 0
+22:10/0 = 0
+23:10/0 = 0
+24:10/0 = 0
+25:10/0 = 0
+28:10/0 = 0
+29:10/0 = 0
+30:10/0 = 0
+31:10/0 = 0
+32:10/0 = 0
+33:10/0 = 0
+2:11/0 = 0
+3:11/0 = 0
+8:11/0 = 0
+9:11/0 = 0
+16:11/0 = 0
+17:11/0 = 0
+22:11/0 = 0
+23:11/0 = 0
+30:11/0 = 0
+31:11/0 = 0
+
+[sub_resource type="TileSet" id="TileSet_btr28"]
+sources/0 = SubResource("TileSetAtlasSource_u48pd")
+sources/1 = SubResource("TileSetAtlasSource_8j387")
+sources/2 = SubResource("TileSetAtlasSource_5dhap")
+sources/4 = SubResource("TileSetAtlasSource_s427y")
+sources/5 = SubResource("TileSetAtlasSource_okhi1")
+sources/6 = SubResource("TileSetAtlasSource_2eeft")
+sources/7 = SubResource("TileSetAtlasSource_v4v8k")
+sources/8 = SubResource("TileSetAtlasSource_oibj5")
+
+[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_w330p"]
+particles_animation = true
+particles_anim_h_frames = 4
+particles_anim_v_frames = 1
+particles_anim_loop = false
+
+[sub_resource type="Gradient" id="Gradient_w330p"]
+offsets = PackedFloat32Array(0, 0.13374485, 0.9053498, 1)
+colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
+
+[sub_resource type="GradientTexture1D" id="GradientTexture1D_erv2c"]
+gradient = SubResource("Gradient_w330p")
+
+[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_8brng"]
+particle_flag_disable_z = true
+emission_shape = 3
+emission_box_extents = Vector3(300, 80, 1)
+direction = Vector3(1, 1, 0)
+spread = 18.034
+initial_velocity_min = 20.0
+initial_velocity_max = 80.0
+angular_velocity_min = -1.6093254e-05
+angular_velocity_max = 49.99998
+orbit_velocity_min = 9.49949e-08
+orbit_velocity_max = 0.010000096
+gravity = Vector3(0, 10, 0)
+scale_min = 0.39999998
+scale_max = 0.7
+color_ramp = SubResource("GradientTexture1D_erv2c")
+anim_offset_max = 1.0
+
+[sub_resource type="Curve" id="Curve_5kdtj"]
+_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
+point_count = 2
+
+[sub_resource type="CurveTexture" id="CurveTexture_q7h7c"]
+curve = SubResource("Curve_5kdtj")
+
+[sub_resource type="Gradient" id="Gradient_2eeft"]
+colors = PackedColorArray(0, 0, 0, 0.3764706, 0.23921569, 0.23921569, 0.23921569, 0.627451)
+
+[sub_resource type="GradientTexture1D" id="GradientTexture1D_1hpkv"]
+gradient = SubResource("Gradient_2eeft")
+
+[sub_resource type="Curve" id="Curve_oibj5"]
+_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
+point_count = 2
+
+[sub_resource type="CurveTexture" id="CurveTexture_yam7v"]
+curve = SubResource("Curve_oibj5")
+
+[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_w330p"]
+lifetime_randomness = 0.73
+particle_flag_disable_z = true
+emission_shape = 1
+emission_sphere_radius = 1.0
+angle_min = 1.0728835e-05
+angle_max = 115.70001
+inherit_velocity_ratio = 0.154
+spread = 98.933
+initial_velocity_max = 2.0
+gravity = Vector3(2, -10, 0)
+linear_accel_min = 0.99999774
+linear_accel_max = 4.9999976
+scale_min = 0.19999999
+scale_max = 0.7
+scale_curve = SubResource("CurveTexture_yam7v")
+color_ramp = SubResource("GradientTexture1D_1hpkv")
+alpha_curve = SubResource("CurveTexture_q7h7c")
+hue_variation_min = -0.11000002
+hue_variation_max = 0.089999974
+turbulence_enabled = true
+turbulence_noise_strength = 0.56
+turbulence_noise_scale = 4.861
+
+[sub_resource type="Gradient" id="Gradient_erv2c"]
+colors = PackedColorArray(0.8627451, 0.17254902, 0, 1, 1, 1, 0.21568628, 0.44313726)
+
+[sub_resource type="GradientTexture1D" id="GradientTexture1D_5kdtj"]
+gradient = SubResource("Gradient_erv2c")
+
+[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_okhi1"]
+particle_flag_disable_z = true
+emission_shape = 1
+emission_sphere_radius = 3.0
+direction = Vector3(-1, 0, 0)
+gravity = Vector3(0, -10, 0)
+color_ramp = SubResource("GradientTexture1D_5kdtj")
+
+[sub_resource type="Gradient" id="Gradient_5kdtj"]
+offsets = PackedFloat32Array(0, 0.7264151)
+colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
+
+[sub_resource type="GradientTexture2D" id="GradientTexture2D_okhi1"]
+gradient = SubResource("Gradient_5kdtj")
+fill = 1
+fill_from = Vector2(0.5, 0.5)
+
+[node name="GameScene" type="Node2D"]
+
+[node name="Scene" type="Node2D" parent="."]
+metadata/_edit_lock_ = true
+
+[node name="Background" type="Node2D" parent="Scene"]
+metadata/_edit_lock_ = true
+
+[node name="Sprite2D" type="Sprite2D" parent="Scene/Background"]
+position = Vector2(43, -45)
+texture = ExtResource("1_xrrf0")
+
+[node name="Sprite2D2" type="Sprite2D" parent="Scene/Background"]
+position = Vector2(43, -45)
+texture = ExtResource("2_kh4a2")
+
+[node name="Sprite2D3" type="Sprite2D" parent="Scene/Background"]
+position = Vector2(43, -45)
+texture = ExtResource("3_8j387")
+
+[node name="Sprite2D4" type="Sprite2D" parent="Scene/Background"]
+position = Vector2(43, -45)
+texture = ExtResource("4_5dhap")
+
+[node name="Sprite2D5" type="Sprite2D" parent="Scene/Background"]
+position = Vector2(44, -45)
+texture = ExtResource("5_s427y")
+
+[node name="BGTrees2" type="TileMapLayer" parent="Scene"]
+position = Vector2(-49, 59)
+tile_map_data = PackedByteArray("AAACAPr/BgAAAAEAAAACAPv/BgAAAAIAAAACAPz/BgAAAAMAAAACAP3/BgAAAAQAAAADAPn/BgABAAAAAAADAPr/BgABAAEAAAADAPv/BgABAAIAAAADAPz/BgABAAMAAAADAP3/BgABAAQAAAADAP7/BgABAAUAAAAEAPn/BgACAAAAAAAEAPr/BgACAAEAAAAEAPv/BgACAAIAAAAEAPz/BgACAAMAAAAEAP3/BgACAAQAAAAEAP7/BgACAAUAAAAEAP//BgACAAYAAAAFAPn/BgADAAAAAAAFAPr/BgADAAEAAAAFAPv/BgADAAIAAAAFAPz/BgADAAMAAAAFAP3/BgADAAQAAAAGAPr/BgAEAAEAAAAGAPv/BgAEAAIAAAAGAPz/BgAEAAMAAAAGAP3/BgAEAAQAAAAOAPr/BgAAAAEAAAAOAPv/BgAAAAIAAAAOAPz/BgAAAAMAAAAOAP3/BgAAAAQAAAAPAPn/BgABAAAAAAAPAPr/BgABAAEAAAAPAPv/BgABAAIAAAAPAPz/BgABAAMAAAAPAP3/BgABAAQAAAAPAP7/BgABAAUAAAAQAPn/BgACAAAAAAAQAPr/BgACAAEAAAAQAPv/BgACAAIAAAAQAPz/BgACAAMAAAAQAP3/BgACAAQAAAAQAP7/BgACAAUAAAAQAP//BgACAAYAAAARAPn/BgADAAAAAAARAPr/BgADAAEAAAARAPv/BgADAAIAAAARAPz/BgADAAMAAAARAP3/BgADAAQAAAASAPr/BgAEAAEAAAASAPv/BgAEAAIAAAASAPz/BgAEAAMAAAASAP3/BgAEAAQAAAD5//z/BwAAAAcAAAD5//3/BwAAAAgAAAD5//7/BwAAAAkAAAD5////BwAAAAoAAAD6//v/BwABAAYAAAD6//z/BwABAAcAAAD6//3/BwABAAgAAAD6//7/BwABAAkAAAD6////BwABAAoAAAD7//n/BwACAAQAAAD7//r/BwACAAUAAAD7//v/BwACAAYAAAD7//z/BwACAAcAAAD7//3/BwACAAgAAAD7//7/BwACAAkAAAD7////BwACAAoAAAD8//f/BwADAAIAAAD8//j/BwADAAMAAAD8//n/BwADAAQAAAD8//r/BwADAAUAAAD8//v/BwADAAYAAAD8//z/BwADAAcAAAD8//3/BwADAAgAAAD8//7/BwADAAkAAAD9//b/BwAEAAEAAAD9//f/BwAEAAIAAAD9//j/BwAEAAMAAAD9//n/BwAEAAQAAAD9//r/BwAEAAUAAAD9//v/BwAEAAYAAAD9//z/BwAEAAcAAAD9//3/BwAEAAgAAAD9//7/BwAEAAkAAAD+//b/BwAFAAEAAAD+//f/BwAFAAIAAAD+//j/BwAFAAMAAAD+//n/BwAFAAQAAAD+//r/BwAFAAUAAAD+//v/BwAFAAYAAAD+//z/BwAFAAcAAAD+//3/BwAFAAgAAAD+//7/BwAFAAkAAAD///X/BwAGAAAAAAD///b/BwAGAAEAAAD///f/BwAGAAIAAAD///j/BwAGAAMAAAD///n/BwAGAAQAAAD///r/BwAGAAUAAAD///v/BwAGAAYAAAD///z/BwAGAAcAAAD///3/BwAGAAgAAAAAAPj/BwAHAAMAAAAAAPn/BwAHAAQAAAAAAPr/BwAHAAUAAAAMAP7/AQAMABQAAAAMAP//AQAMABUAAAANAP7/AQANABQAAAANAP//AQANABUAAAAOAP7/AQAOABQAAAAOAP//AQAOABUAAAAPAP//AQAPABUAAAAKAP//AQAKABUAAAALAP//AQALABUAAAAAAP7/AQAAABwAAAAAAP//AQAAAB0AAAABAP7/AQABABwAAAABAP//AQABAB0AAAACAP7/AQACABwAAAACAP//AQACAB0AAAADAP//AQADAB0AAAAVAP//AQAGAB0AAAAWAP//AQAHAB0AAAA=")
+tile_set = SubResource("TileSet_btr28")
+
+[node name="BGTrees1" type="TileMapLayer" parent="Scene"]
+position = Vector2(-49, 59)
+tile_map_data = PackedByteArray("AAD9//7/BAAKAAMAAAD9////BAAKAAQAAAD+////BAALAAQAAAAHAP7/AgAGAAsAAAAHAP//AgAGAAwAAAAIAP3/AgAHAAoAAAAIAP7/AgAHAAsAAAAIAP//AgAHAAwAAAAJAP7/AgAIAAsAAAAJAP//AgAIAAwAAAABAPj/AgAAAAUAAAABAPn/AgAAAAYAAAACAPf/AgABAAQAAAACAPj/AgABAAUAAAACAPn/AgABAAYAAAACAPr/AgABAAcAAAADAPf/AgACAAQAAAADAPj/AgACAAUAAAADAPn/AgACAAYAAAADAPr/AgACAAcAAAAEAPX/AgADAAIAAAAEAPb/AgADAAMAAAAEAPf/AgADAAQAAAAEAPj/AgADAAUAAAAEAPn/AgADAAYAAAAEAPr/AgADAAcAAAAEAPv/AgADAAgAAAAFAPT/AgAEAAEAAAAFAPX/AgAEAAIAAAAFAPb/AgAEAAMAAAAFAPf/AgAEAAQAAAAFAPj/AgAEAAUAAAAFAPn/AgAEAAYAAAAFAPr/AgAEAAcAAAAFAPv/AgAEAAgAAAAGAPT/AgAFAAEAAAAGAPX/AgAFAAIAAAAGAPb/AgAFAAMAAAAGAPf/AgAFAAQAAAAGAPj/AgAFAAUAAAAGAPn/AgAFAAYAAAAGAPr/AgAFAAcAAAAGAPv/AgAFAAgAAAAHAPP/AgAGAAAAAAAHAPT/AgAGAAEAAAAHAPX/AgAGAAIAAAAHAPb/AgAGAAMAAAAHAPf/AgAGAAQAAAAHAPj/AgAGAAUAAAAHAPn/AgAGAAYAAAAHAPr/AgAGAAcAAAAHAPv/AgAGAAgAAAAHAPz/AgAGAAkAAAAIAPP/AgAHAAAAAAAIAPT/AgAHAAEAAAAIAPX/AgAHAAIAAAAIAPb/AgAHAAMAAAAIAPf/AgAHAAQAAAAIAPj/AgAHAAUAAAAIAPn/AgAHAAYAAAAIAPr/AgAHAAcAAAAIAPv/AgAHAAgAAAAIAPz/AgAHAAkAAAAJAPP/AgAIAAAAAAAJAPT/AgAIAAEAAAAJAPX/AgAIAAIAAAAJAPb/AgAIAAMAAAAJAPf/AgAIAAQAAAAJAPj/AgAIAAUAAAAJAPn/AgAIAAYAAAAJAPr/AgAIAAcAAAAJAPv/AgAIAAgAAAAJAPz/AgAIAAkAAAAJAP3/AgAIAAoAAAAKAPP/AgAJAAAAAAAKAPT/AgAJAAEAAAAKAPX/AgAJAAIAAAAKAPb/AgAJAAMAAAAKAPf/AgAJAAQAAAAKAPj/AgAJAAUAAAAKAPn/AgAJAAYAAAAKAPr/AgAJAAcAAAAKAPv/AgAJAAgAAAAKAP//AgAJAAwAAAALAPP/AgAKAAAAAAALAPT/AgAKAAEAAAALAPX/AgAKAAIAAAALAPb/AgAKAAMAAAALAPf/AgAKAAQAAAALAPj/AgAKAAUAAAALAPn/AgAKAAYAAAALAPr/AgAKAAcAAAALAPv/AgAKAAgAAAAMAPT/AgALAAEAAAAMAPX/AgALAAIAAAAMAPb/AgALAAMAAAAMAPf/AgALAAQAAAAMAPj/AgALAAUAAAAMAPn/AgALAAYAAAAMAPr/AgALAAcAAAAMAPv/AgALAAgAAAAMAPz/AgALAAkAAAANAPT/AgAMAAEAAAANAPX/AgAMAAIAAAANAPb/AgAMAAMAAAANAPf/AgAMAAQAAAANAPj/AgAMAAUAAAANAPn/AgAMAAYAAAANAPr/AgAMAAcAAAANAPv/AgAMAAgAAAANAPz/AgAMAAkAAAAOAPf/AgANAAQAAAAOAPj/AgANAAUAAAAOAPn/AgANAAYAAAAOAPr/AgANAAcAAAAOAPv/AgANAAgAAAAPAPj/AgAOAAUAAAAPAPn/AgAOAAYAAAAPAPr/AgAOAAcAAAAPAPv/AgAOAAgAAAAQAPj/AgAPAAUAAAAQAPn/AgAPAAYAAAAQAPr/AgAPAAcAAAAQAPv/AgAPAAgAAAD5//v/BAAGAAAAAAD5//z/BAAGAAEAAAD5//3/BAAGAAIAAAD5//7/BAAGAAMAAAD6//v/BAAHAAAAAAD6//z/BAAHAAEAAAD6//3/BAAHAAIAAAD6//7/BAAHAAMAAAD7//v/BAAIAAAAAAD7//z/BAAIAAEAAAD7//3/BAAIAAIAAAD7//7/BAAIAAMAAAD7////BAAIAAQAAAD7/wAABAAIAAUAAAD8//z/BAAJAAEAAAD8//3/BAAJAAIAAAD8//7/BAAJAAMAAAD8////BAAJAAQAAAD8/wAABAAJAAUAAAD9/wAABAAKAAUAAAD+/wAABAALAAUAAAD5////BAAGAAMAAAD5/wAABAAGAAMAAAD6/wEABAAGAAMAAAD6/wIABAAGAAMAAAD6/wMABAAGAAMAAAD5/wMABAAGAAMAAAD5/wQABAAGAAMAAAD6/wQABAAGAAMAAAD7/wQABAAGAAMAAAD8/wQABAAGAAMAAAD9/wQABAAGAAMAAAD9/wMABAAGAAMAAAD8/wMABAAGAAMAAAD7/wMABAAGAAMAAAD4/wIABAAGAAMAAAD4/wEABAAGAAMAAAD5/wEABAAGAAMAAAD6/wAABAAGAAMAAAD6////BAAGAAMAAAD5/wIABAAGAAMAAAD7/wEABAAGAAMAAAD8/wEABAAGAAMAAAD9/wEABAAGAAMAAAD+/wEABAAGAAMAAAD+/wIABAAGAAMAAAD9/wIABAAGAAMAAAD8/wIABAAGAAMAAAD7/wIABAAGAAMAAAD+/wMABAAGAAMAAAD+/wQABAAGAAMAAAD4/wMABAAGAAMAAAD4/wQABAAGAAMAAAD4////BAAGAAMAAAD4//7/AAAEAA8AAAD4//3/AAAEAA4AAADx////AAACAA8AAADy////AAACAA8AAADz//7/AAADAA8AAADz////AAACAA8AAAD0//7/AAAEAA8AAAD0////AAACAA8AAAD1//7/AAABAA8AAAD1////AAACAA8AAAD2////AAACAA8AAAD1//v/AAABAAwAAAD1//z/AAABAA0AAAD1//3/AAABAA4AAAD2//v/AAACAAwAAAD2//z/AAACAA0AAAD2//3/AAACAA4AAAD2//7/AAACAA8AAAD3//v/AAADAAwAAAD3//z/AAADAA0AAAD3//3/AAADAA4AAAD3//7/AAADAA8AAAD4//v/AAAEAAwAAAD4//z/AAAEAA0AAADx//v/AAADAAwAAADx//z/AAADAA0AAADx//3/AAADAA4AAADx//7/AAADAA8AAADy//v/AAAEAAwAAADy//z/AAAEAA0AAADy//3/AAAEAA4AAADy//7/AAAEAA8AAADz//v/AAADAAwAAADz//z/AAADAA0AAADz//3/AAADAA4AAAD0//v/AAAEAAwAAAD0//z/AAAEAA0AAAD0//3/AAAEAA4AAADv//v/AAABAAwAAADv//z/AAABAA0AAADv//3/AAABAA4AAADv//7/AAABAA8AAADw//v/AAACAAwAAADw//z/AAACAA0AAADw//3/AAACAA4AAADw//7/AAACAA8AAAD3////AAACAA8AAADw////AAACAA8AAADv////AAACAA8AAAA=")
+tile_set = SubResource("TileSet_btr28")
+
+[node name="BGTrees0" type="TileMapLayer" parent="Scene"]
+position = Vector2(-49, 59)
+tile_map_data = PackedByteArray("AAARAPn/BgAAAAEAAAARAPr/BgAAAAIAAAARAPv/BgAAAAMAAAARAPz/BgAAAAQAAAASAPj/BgABAAAAAAASAPn/BgABAAEAAAASAPr/BgABAAIAAAASAPv/BgABAAMAAAASAPz/BgABAAQAAAASAP3/BgABAAUAAAATAPj/BgACAAAAAAATAPn/BgACAAEAAAATAPr/BgACAAIAAAATAPv/BgACAAMAAAATAPz/BgACAAQAAAATAP3/BgACAAUAAAATAP7/BgACAAYAAAAUAPj/BgADAAAAAAAUAPn/BgADAAEAAAAUAPr/BgADAAIAAAAUAPv/BgADAAMAAAAUAPz/BgADAAQAAAAVAPn/BgAEAAEAAAAVAPr/BgAEAAIAAAAVAPv/BgAEAAMAAAAVAPz/BgAEAAQAAADx//n/BgAAAAEAAADx//r/BgAAAAIAAADx//v/BgAAAAMAAADx//z/BgAAAAQAAADy//j/BgABAAAAAADy//n/BgABAAEAAADy//r/BgABAAIAAADy//v/BgABAAMAAADy//z/BgABAAQAAADy//3/BgABAAUAAADz//j/BgACAAAAAADz//n/BgACAAEAAADz//r/BgACAAIAAADz//v/BgACAAMAAADz//z/BgACAAQAAADz//3/BgACAAUAAADz//7/BgACAAYAAAD0//j/BgADAAAAAAD0//n/BgADAAEAAAD0//r/BgADAAIAAAD0//v/BgADAAMAAAD0//z/BgADAAQAAAD1//n/BgAEAAEAAAD1//r/BgAEAAIAAAD1//v/BgAEAAMAAAD1//z/BgAEAAQAAAD1//7/AQAAABwAAAD1////AQAAAB0AAAD2//7/AQABABwAAAD2////AQABAB0AAAD3//7/AQACABwAAAD3////AQACAB0AAAD4////AQADAB0AAADv//7/AQAAABwAAADv////AQAAAB0AAADw//7/AQABABwAAADw////AQABAB0AAADx//7/AQACABwAAADx////AQACAB0AAADy////AQADAB0AAAD5//v/CAAWAAAAAAD5//z/CAAWAAEAAAD5//3/CAAWAAIAAAD5//7/CAAWAAMAAAD6//v/CAAXAAAAAAD6//z/CAAXAAEAAAD6//3/CAAXAAIAAAD6//7/CAAXAAMAAAD5////CAAUAAMAAAD6////CAAVAAMAAAD3//n/CAAaAAIAAAD3//r/CAAaAAMAAAD4//n/CAAbAAIAAAD4//r/CAAbAAMAAAA=")
+tile_set = SubResource("TileSet_btr28")
+
+[node name="BackgroundDecor" type="TileMapLayer" parent="Scene"]
+position = Vector2(-49, 59)
+tile_map_data = PackedByteArray("AAD9//7/AQAAAAQAAAD9////AQAAAAUAAAD+//3/AQABAAMAAAD+//7/AQABAAQAAAD+////AQABAAUAAAD///3/AQACAAMAAAD///7/AQACAAQAAAD/////AQACAAUAAAAAAP3/AQADAAMAAAAAAP7/AQADAAQAAAAAAP//AQADAAUAAAABAP3/AQAEAAMAAAABAP7/AQAEAAQAAAABAP//AQAEAAUAAAACAP7/AQAFAAQAAAACAP//AQAFAAUAAAAEAP7/AQAGAAQAAAAEAP//AQAGAAUAAAAFAP3/AQAHAAMAAAAFAP7/AQAHAAQAAAAFAP//AQAHAAUAAAAGAP3/AQAIAAMAAAAGAP7/AQAIAAQAAAAGAP//AQAIAAUAAAAHAP3/AQAJAAMAAAAHAP7/AQAJAAQAAAAHAP//AQAJAAUAAAAIAP3/AQAKAAMAAAAIAP7/AQAKAAQAAAAIAP//AQAKAAUAAAAJAP7/AQALAAQAAAAJAP//AQALAAUAAADx////AQAKABUAAADy////AQALABUAAADz//7/AQAMABQAAADz////AQAMABUAAAD0//7/AQANABQAAAD0////AQANABUAAAD1//7/AQAOABQAAAD1////AQAOABUAAAD2////AQAPABUAAAARAP//AQAKABUAAAASAP//AQALABUAAAATAP7/AQAMABQAAAATAP//AQAMABUAAAAUAP7/AQANABQAAAAUAP//AQANABUAAAAVAP7/AQAOABQAAAAVAP//AQAOABUAAAAWAP//AQAPABUAAAA=")
+tile_set = SubResource("TileSet_btr28")
+
+[node name="LeafParticles" type="GPUParticles2D" parent="Scene"]
+material = SubResource("CanvasItemMaterial_w330p")
+amount = 2
+texture = ExtResource("14_w330p")
+lifetime = 3.0
+visibility_rect = Rect2(-250, -100, 500, 200)
+process_material = SubResource("ParticleProcessMaterial_8brng")
+metadata/_edit_lock_ = true
+
+[node name="FireContainer" type="Node2D" parent="Scene"]
+metadata/_edit_lock_ = true
+
+[node name="Smoke" type="GPUParticles2D" parent="Scene/FireContainer"]
+position = Vector2(1, 54)
+amount = 100
+texture = ExtResource("15_erv2c")
+lifetime = 10.0
+explosiveness = 0.06
+randomness = 0.39
+process_material = SubResource("ParticleProcessMaterial_w330p")
+
+[node name="Fire" type="GPUParticles2D" parent="Scene/FireContainer"]
+position = Vector2(0, 53)
+amount = 20
+process_material = SubResource("ParticleProcessMaterial_okhi1")
+
+[node name="FireLight" type="PointLight2D" parent="Scene/FireContainer"]
+position = Vector2(0, 54)
+color = Color(0.65882355, 0.21960784, 0.13333334, 1)
+energy = 2.0
+texture = SubResource("GradientTexture2D_okhi1")
+script = ExtResource("16_5kdtj")
+
+[node name="Floor" type="TileMapLayer" parent="Scene"]
+position = Vector2(-49, 59)
+tile_map_data = PackedByteArray("AAD9/wAAAAABAAwAAAD+/wAAAAACAAwAAAD//wAAAAADAAwAAAAAAAAAAAABAAwAAAABAAAAAAACAAwAAAACAAAAAAADAAwAAAADAAAAAAABAAwAAAAEAAAAAAACAAwAAAAFAAAAAAADAAwAAAAGAAAAAAABAAwAAAAHAAAAAAACAAwAAAAIAAAAAAADAAwAAAAJAAAAAAABAAwAAAAKAAAAAAACAAwAAAAKAAEAAAACAA0AAAAKAAIAAAACAA4AAAAKAAMAAAADAA4AAAAKAAQAAAADAA8AAAAHAAEAAAACAA0AAAAHAAIAAAACAA4AAAAHAAMAAAACAA4AAAAIAAEAAAADAA0AAAAIAAIAAAADAA4AAAAIAAMAAAADAA4AAAAJAAEAAAABAA0AAAAJAAIAAAABAA4AAAAJAAMAAAACAA4AAAAEAAEAAAACAA0AAAAEAAIAAAACAA4AAAAEAAMAAAADAA4AAAAFAAEAAAADAA0AAAAFAAIAAAADAA4AAAAFAAMAAAACAA4AAAAGAAEAAAABAA0AAAAGAAIAAAABAA4AAAAGAAMAAAADAA4AAAABAAEAAAACAA0AAAABAAIAAAACAA4AAAABAAMAAAACAA4AAAACAAEAAAADAA0AAAACAAIAAAADAA4AAAACAAMAAAADAA4AAAADAAEAAAABAA0AAAADAAIAAAABAA4AAAADAAMAAAACAA4AAAD+/wEAAAACAA0AAAD+/wIAAAACAA4AAAD+/wMAAAACAA8AAAD//wEAAAADAA0AAAD//wIAAAADAA4AAAD//wMAAAADAA8AAAAAAAEAAAABAA0AAAAAAAIAAAABAA4AAAAAAAMAAAABAA8AAAD9/wEAAAABAA0AAAD9/wIAAAABAA4AAAD9/wMAAAABAA8AAAAHAAQAAAACAA8AAAAIAAQAAAADAA8AAAAJAAQAAAACAA8AAAAEAAQAAAADAA8AAAAFAAQAAAACAA8AAAAGAAQAAAADAA8AAAABAAQAAAACAA8AAAACAAQAAAADAA8AAAADAAQAAAACAA8AAAD+/wQAAAACABAAAAD//wQAAAADABAAAAAAAAQAAAABABAAAAD9/wQAAAABABAAAADw/wAAAAAAAAwAAADw/wEAAAACAA4AAADw/wIAAAACAA8AAADw/wMAAAACAA4AAADw/wQAAAACAA8AAADx/wAAAAABAAwAAADx/wEAAAADAA4AAADx/wIAAAADAA8AAADx/wMAAAADAA4AAADx/wQAAAADAA8AAADy/wAAAAACAAwAAADy/wEAAAACAA0AAADy/wIAAAACAA4AAADy/wMAAAACAA8AAADy/wQAAAACABAAAADz/wAAAAADAAwAAADz/wEAAAADAA0AAADz/wIAAAADAA4AAADz/wMAAAADAA8AAADz/wQAAAADABAAAAD0/wAAAAABAAwAAAD0/wEAAAABAA0AAAD0/wIAAAABAA4AAAD0/wMAAAABAA8AAAD0/wQAAAABABAAAAD1/wAAAAACAAwAAAD1/wEAAAACAA0AAAD1/wIAAAACAA4AAAD1/wMAAAACAA8AAAD1/wQAAAACABAAAAD2/wAAAAADAAwAAAD2/wEAAAADAA0AAAD2/wIAAAADAA4AAAD2/wMAAAADAA8AAAD2/wQAAAADABAAAAD3/wAAAAABAAwAAAD3/wEAAAABAA0AAAD3/wIAAAABAA4AAAD3/wMAAAABAA8AAAD3/wQAAAABABAAAAD4/wAAAAACAAwAAAD4/wEAAAACAA0AAAD4/wIAAAACAA4AAAD4/wMAAAACAA8AAAD4/wQAAAACABAAAAD5/wAAAAADAAwAAAD5/wEAAAADAA0AAAD5/wIAAAADAA4AAAD5/wMAAAADAA8AAAD5/wQAAAADABAAAAD6/wAAAAABAAwAAAD6/wEAAAABAA0AAAD6/wIAAAABAA4AAAD6/wMAAAABAA8AAAD6/wQAAAABABAAAAD7/wAAAAACAAwAAAD7/wEAAAACAA0AAAD7/wIAAAACAA4AAAD7/wMAAAACAA8AAAD7/wQAAAACABAAAAD8/wAAAAADAAwAAAD8/wEAAAADAA0AAAD8/wIAAAADAA4AAAD8/wMAAAADAA8AAAD8/wQAAAADABAAAAALAAAAAAADAAwAAAALAAEAAAADAA0AAAALAAIAAAADAA4AAAALAAMAAAADAA8AAAALAAQAAAADABAAAAAMAAAAAAABAAwAAAAMAAEAAAABAA0AAAAMAAIAAAABAA4AAAAMAAMAAAABAA8AAAAMAAQAAAABABAAAAANAAAAAAACAAwAAAANAAEAAAACAA0AAAANAAIAAAACAA4AAAANAAMAAAACAA8AAAANAAQAAAACABAAAAAOAAAAAAADAAwAAAAOAAEAAAADAA0AAAAOAAIAAAADAA4AAAAOAAMAAAADAA8AAAAOAAQAAAADABAAAAAPAAAAAAABAAwAAAAPAAEAAAABAA0AAAAPAAIAAAABAA4AAAAPAAMAAAABAA8AAAAPAAQAAAABABAAAAAQAAAAAAACAAwAAAAQAAEAAAACAA0AAAAQAAIAAAACAA4AAAAQAAMAAAACAA8AAAAQAAQAAAACABAAAAARAAAAAAABAAwAAAARAAEAAAABAA0AAAARAAIAAAABAA4AAAARAAMAAAABAA8AAAARAAQAAAABABAAAAASAAAAAAACAAwAAAASAAEAAAACAA0AAAASAAIAAAACAA4AAAASAAMAAAACAA8AAAASAAQAAAACABAAAAATAAAAAAADAAwAAAATAAEAAAADAA0AAAATAAIAAAADAA4AAAATAAMAAAADAA8AAAATAAQAAAADABAAAAAUAAAAAAABAAwAAAAUAAEAAAABAA0AAAAUAAIAAAABAA4AAAAUAAMAAAABAA8AAAAUAAQAAAABABAAAAAVAAAAAAACAAwAAAAVAAEAAAACAA0AAAAVAAIAAAACAA4AAAAVAAMAAAACAA8AAAAVAAQAAAACABAAAAAWAAAAAAADAAwAAAAWAAEAAAADAA0AAAAWAAIAAAADAA4AAAAWAAMAAAADAA8AAAAWAAQAAAADABAAAADx/wUAAAADAA4AAADx/wYAAAADAA8AAADy/wUAAAADAA4AAADy/wYAAAADAA8AAADz/wUAAAACAA4AAADz/wYAAAACAA8AAAD0/wUAAAADAA4AAAD0/wYAAAADAA8AAAD1/wUAAAACAA4AAAD1/wYAAAACAA8AAAD2/wUAAAADAA4AAAD2/wYAAAADAA8AAAD3/wUAAAACAA4AAAD3/wYAAAACAA8AAAD4/wUAAAADAA4AAAD4/wYAAAADAA8AAAD5/wUAAAACAA4AAAD5/wYAAAACAA8AAAD6/wUAAAADAA4AAAD6/wYAAAADAA8AAAD7/wUAAAACAA4AAAD7/wYAAAACAA8AAAD8/wUAAAADAA4AAAD8/wYAAAADAA8AAAD9/wUAAAACAA4AAAD9/wYAAAACAA8AAAD+/wUAAAADAA4AAAD+/wYAAAADAA8AAAD//wUAAAACAA4AAAD//wYAAAACAA8AAAAAAAUAAAADAA4AAAAAAAYAAAADAA8AAAABAAUAAAACAA4AAAABAAYAAAACAA8AAAACAAUAAAADAA4AAAACAAYAAAADAA8AAAADAAUAAAACAA4AAAADAAYAAAACAA8AAAAEAAUAAAADAA4AAAAEAAYAAAADAA8AAAAFAAUAAAACAA4AAAAFAAYAAAACAA8AAAAGAAUAAAADAA4AAAAGAAYAAAADAA8AAAAHAAUAAAACAA4AAAAHAAYAAAACAA8AAAAIAAUAAAADAA4AAAAIAAYAAAADAA8AAAAJAAUAAAACAA4AAAAJAAYAAAACAA8AAAAKAAUAAAADAA4AAAAKAAYAAAADAA8AAAALAAUAAAACAA4AAAALAAYAAAACAA8AAAAMAAUAAAADAA4AAAAMAAYAAAADAA8AAAANAAUAAAACAA4AAAANAAYAAAACAA8AAAAOAAUAAAADAA4AAAAOAAYAAAADAA8AAAAPAAUAAAACAA4AAAAPAAYAAAACAA8AAAAQAAUAAAADAA4AAAAQAAYAAAADAA8AAAARAAUAAAACAA4AAAARAAYAAAACAA8AAAASAAUAAAADAA4AAAASAAYAAAADAA8AAAATAAUAAAACAA4AAAATAAYAAAACAA8AAAAUAAUAAAADAA4AAAAUAAYAAAADAA8AAAAVAAUAAAACAA4AAAAVAAYAAAACAA8AAAAWAAUAAAADAA4AAAAWAAYAAAADAA8AAADw/wUAAAACAA4AAADw/wYAAAACAA8AAAAKAP7/AQAOAAAAAAAKAP//AQAOAAEAAAALAP7/AQAPAAAAAAALAP//AQAPAAEAAAA=")
+tile_set = SubResource("TileSet_btr28")
+
+[node name="InteractionLayer" type="Node2D" parent="Scene"]
+
+[node name="Character" parent="Scene/InteractionLayer" instance=ExtResource("17_1hpkv")]
+position = Vector2(-62, 29)
+
+[node name="StockPile" parent="Scene/InteractionLayer" instance=ExtResource("17_deeqb")]
+position = Vector2(-215, 51)
+
+[node name="WoodPile" parent="Scene/InteractionLayer" groups=["wood_pile"] instance=ExtResource("17_oibj5")]
+unique_name_in_owner = true
+position = Vector2(164, 48)
+
+[node name="ForegroundDecor" type="TileMapLayer" parent="Scene"]
+position = Vector2(-49, 59)
+tile_map_data = PackedByteArray("AAACAP7/AQACAAYAAAACAP//AQACAAcAAAADAP7/AQADAAYAAAADAP//AQADAAcAAAAHAP//AQAYAAcAAAAIAP//AQAZAAcAAADz////AQAIAAkAAAD0////AQAJAAkAAAD3////AQAKAAkAAAD4////AQALAAkAAADw////AQAWAAcAAADx////AQAXAAcAAAD8////AQAGAA0AAAD9////AQAHAA0AAAD5////AQAGAA8AAAD6////AQAHAA8AAAAOAP//AQAIAA8AAAAPAP7/AQAJAA4AAAAPAP//AQAJAA8AAAAQAP7/AQAKAA4AAAAQAP//AQAKAA8AAAARAP//AQALAA8AAAATAP//AQAGAA0AAAAUAP//AQAHAA0AAAAJAP//AQAGAA0AAAAKAP//AQAHAA0AAAALAP//AQAKAAkAAAAMAP//AQALAAkAAAA=")
+tile_set = SubResource("TileSet_btr28")
+
+[node name="Camera2D" type="Camera2D" parent="."]
+zoom = Vector2(2, 2)
+
+[node name="UI" type="Control" parent="."]
+layout_mode = 3
+anchors_preset = 0
+offset_right = 40.0
+offset_bottom = 40.0
+theme = ExtResource("22_q7h7c")
+script = ExtResource("17_q7h7c")
+
+[node name="Panel" type="Panel" parent="UI"]
+layout_mode = 0
+offset_left = 150.0
+offset_top = -133.0
+offset_right = 195.0
+offset_bottom = -133.0
+theme = ExtResource("22_q7h7c")
+
+[node name="ModifiersLabel" type="Label" parent="UI/Panel"]
+unique_name_in_owner = true
+layout_mode = 0
+offset_top = -16.0
+offset_right = 45.0
+offset_bottom = -5.0
+theme_override_font_sizes/font_size = 12
+
+[node name="Currencies" type="VBoxContainer" parent="UI"]
+layout_mode = 0
+offset_left = -284.0
+offset_top = -159.0
+offset_right = -239.0
+offset_bottom = -103.0
+theme_override_constants/separation = 5
+alignment = 1
+
+[node name="CurrencyLabel" type="Label" parent="UI/Currencies"]
+unique_name_in_owner = true
+layout_mode = 2
+theme = ExtResource("22_q7h7c")
+text = "Currency"
+
+[node name="WoodLabel" type="Label" parent="UI/Currencies"]
+unique_name_in_owner = true
+layout_mode = 2
+theme = ExtResource("22_q7h7c")
+text = "0"
+
+[node name="StockLabel" type="Label" parent="UI/Currencies"]
+unique_name_in_owner = true
+layout_mode = 2
+theme = ExtResource("22_q7h7c")
+text = "0"
+
+[node name="UnlockContainer" type="GridContainer" parent="UI"]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_left = -282.0
+offset_top = 79.0
+offset_right = 242.0
+offset_bottom = 115.0
+grow_horizontal = 2
+grow_vertical = 2
+columns = 5
+
+[node name="TextureButton" parent="UI/UnlockContainer" instance=ExtResource("19_v4v8k")]
+layout_mode = 2
+size_flags_horizontal = 0
+size_flags_vertical = 0
diff --git a/scenes/scripts/arrow.gd b/scenes/scripts/arrow.gd
new file mode 100644
index 0000000..b602bc2
--- /dev/null
+++ b/scenes/scripts/arrow.gd
@@ -0,0 +1,21 @@
+extends Sprite2D
+
+@export var bounce_height: float = 10.0 # How high it bounces in pixels
+@export var bounce_duration: float = 0.5 # Time for one bounce cycle
+var tween: Tween
+var start_position: Vector2
+
+func _ready():
+ start_position = position
+ start_continuous_bounce()
+
+func start_continuous_bounce():
+ tween = create_tween()
+ tween.set_loops() # Makes it loop infinitely
+ tween.tween_property(self, "position:y", start_position.y - bounce_height, bounce_duration / 2)
+ tween.tween_property(self, "position:y", start_position.y, bounce_duration / 2)
+
+func stop_bounce():
+ if tween:
+ tween.kill()
+ position = start_position
\ No newline at end of file
diff --git a/scenes/scripts/arrow.gd.uid b/scenes/scripts/arrow.gd.uid
new file mode 100644
index 0000000..230abb9
--- /dev/null
+++ b/scenes/scripts/arrow.gd.uid
@@ -0,0 +1 @@
+uid://i6lg61o0jnkp
diff --git a/scenes/scripts/button.gd b/scenes/scripts/button.gd
new file mode 100644
index 0000000..29cf786
--- /dev/null
+++ b/scenes/scripts/button.gd
@@ -0,0 +1,58 @@
+extends TextureButton
+@onready var label: Label = $CenterContainer/Label # Adjust path to your Label node
+
+var unlock_id = "" # Store the unlock ID
+
+func _ready():
+ label.visible = false # Hide label initially
+ adjust_label_font_size()
+ # Connect the pressed signal
+ pressed.connect(_on_button_pressed)
+
+func setup(unlock_data):
+ Log.pr("Setting up button for unlock:", unlock_data.unlock_name)
+ unlock_id = unlock_data.unlock_id # Store the ID
+ if label:
+ label.visible = false
+ label.text = unlock_data.unlock_name + " " + str(unlock_data.get_next_rank())
+ label.text = label.text + " - " + Global.currency_symbol + str(unlock_data.get_next_cost())
+ label.text = label.text + "\n" + unlock_data.get_next_modifiers_string()
+ #self.disabled = unlock_data.is_unlocked
+ adjust_label_font_size()
+ else:
+ Log.pr("Warning: Label node not found in button.")
+
+func _on_button_pressed():
+ Log.pr("Button pressed, unlocking item:", unlock_id)
+ Unlocks.unlock_item(unlock_id)
+
+func adjust_label_font_size():
+ if not label:
+ return
+ var available_width = size.x - 10
+ var available_height = size.y - 10
+ # Start with a reasonable font size
+ var font_size = 32
+ var min_font_size = 8
+ # Get or create a font
+ var font = label.get_theme_font("font")
+ # Binary search for the optimal font size
+ while font_size > min_font_size:
+ label.add_theme_font_size_override("font_size", font_size)
+ # Force update and get the actual text size
+ await get_tree().process_frame
+ var text_size = font.get_string_size(label.text, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size)
+ # Check if it fits
+ if text_size.x <= available_width and text_size.y <= available_height:
+ break
+ # Reduce font size and try again
+ font_size -= 1
+ label.add_theme_font_size_override("font_size", font_size)
+ label.visible = true # Show label after resizing is complete
+
+# Call this function whenever you change the label text
+func set_label_text(new_text: String):
+ if label:
+ label.visible = false # Hide while resizing
+ label.text = new_text
+ adjust_label_font_size()
diff --git a/scenes/scripts/button.gd.uid b/scenes/scripts/button.gd.uid
new file mode 100644
index 0000000..040840b
--- /dev/null
+++ b/scenes/scripts/button.gd.uid
@@ -0,0 +1 @@
+uid://dj7uoaxxat5n4
diff --git a/scenes/scripts/fire_light.gd b/scenes/scripts/fire_light.gd
new file mode 100644
index 0000000..3c4917f
--- /dev/null
+++ b/scenes/scripts/fire_light.gd
@@ -0,0 +1,25 @@
+extends PointLight2D
+
+# Flicker parameters
+@export var flicker_speed: float = 10.0 # How fast the flicker changes
+@export var flicker_intensity: float = 0.3 # How much it flickers (0-1)
+@export var base_energy: float = 1.0 # Base brightness
+
+# For smooth variation
+var time_passed: float = 0.0
+
+func _ready():
+ # Store the initial energy value
+ energy = base_energy
+
+func _process(delta):
+ time_passed += delta * flicker_speed
+
+ # Use Perlin-like noise for natural flickering
+ var flicker = sin(time_passed) * 0.5 + 0.5 # 0 to 1
+ flicker += sin(time_passed * 2.3) * 0.3 # Add secondary variation
+ flicker += sin(time_passed * 4.7) * 0.2 # Add tertiary variation
+ flicker /= 2.0 # Normalize
+
+ # Apply flicker to energy
+ energy = base_energy + (flicker - 0.5) * flicker_intensity * 2.0
\ No newline at end of file
diff --git a/scenes/scripts/fire_light.gd.uid b/scenes/scripts/fire_light.gd.uid
new file mode 100644
index 0000000..ba080e2
--- /dev/null
+++ b/scenes/scripts/fire_light.gd.uid
@@ -0,0 +1 @@
+uid://cpimo8q5dcjxf
diff --git a/scenes/scripts/ui_control.gd b/scenes/scripts/ui_control.gd
new file mode 100644
index 0000000..474c0cc
--- /dev/null
+++ b/scenes/scripts/ui_control.gd
@@ -0,0 +1,101 @@
+extends Control
+
+@onready var currency_label: Label = %CurrencyLabel
+@onready var wood_label: Label = %WoodLabel
+@onready var stock_label: Label = %StockLabel
+
+@onready var modifiers_label: Label = %ModifiersLabel
+
+func _ready():
+ populate_modifiers_display()
+ populate_unlock_buttons()
+ update_currency_label()
+ update_wood_label()
+ update_stock_label()
+
+ currency_label.add_theme_color_override("font_color", Global.money_color)
+ wood_label.add_theme_color_override("font_color", Global.wood_color)
+ stock_label.add_theme_color_override("font_color", Global.stock_color)
+
+ Inventory.currency_changed.connect(_on_currency_changed)
+ Inventory.currency_added.connect(spawn_currency_increase)
+ Inventory.wood_changed.connect(_on_currency_changed)
+ Inventory.wood_added.connect(spawn_wood_increase)
+ Inventory.stock_added.connect(spawn_stock_increase)
+ Inventory.stock_changed.connect(_on_currency_changed)
+ Unlocks.item_unlocked.connect(populate_unlock_buttons)
+
+func update_currency_label():
+ currency_label.text = Global.currency_symbol + " " + str(int(Inventory.get_currency()))
+
+func update_wood_label():
+ wood_label.text = "W: " + str(int(Inventory.get_wood()))
+
+func update_stock_label():
+ stock_label.text = "S: " + str(int(Inventory.get_stock()))
+
+func spawn_currency_increase(value, _total):
+ spawn_inventory_change_value(value, _total, "+", Global.currency_symbol, Global.money_color)
+
+func spawn_wood_increase(value, _total):
+ spawn_inventory_change_value(value, _total, "+", "", Global.wood_color)
+
+func spawn_stock_increase(value, _total):
+ spawn_inventory_change_value(value, _total, "+", "", Global.stock_color)
+
+func spawn_inventory_change_value(value, _total, display_sign: String = "+", symbol: String = "", label_color: Color = Color.WHITE):
+ var float_label = Label.new()
+ float_label.text = display_sign + symbol + str(int(abs(value)))
+ float_label.add_theme_font_size_override("font_size", 16)
+ float_label.modulate = label_color
+
+ # Add random offset around center
+ var random_x = randf_range(-60, 30)
+ var random_y = randf_range(-40, 20)
+ float_label.position = Vector2(random_x, random_y)
+ add_child(float_label)
+
+ # Animate the label
+ var tween = create_tween()
+ tween.set_parallel(true) # Run both animations simultaneously
+ # Move up
+ tween.tween_property(float_label, "position:y", float_label.position.y - 50, 1.0)
+ # Fade out
+ tween.tween_property(float_label, "modulate:a", 0.0, 1.0)
+ # Remove from scene when done
+ tween.chain().tween_callback(float_label.queue_free)
+
+
+func populate_unlock_buttons():
+ var unlocks_container = $UnlockContainer
+ for child in unlocks_container.get_children():
+ child.free()
+
+ for unlock_data in Unlocks.unlocks.unlocks:
+ var unlock_button_scene = load("res://scenes/button.tscn")
+ var unlock_button = unlock_button_scene.instantiate()
+ unlocks_container.add_child(unlock_button)
+ unlock_button.setup(unlock_data)
+
+func populate_modifiers_display():
+ var modifiers_text = ""
+
+ modifiers_text = modifiers_text + "Sale Price: " + Global.currency_symbol + str(Unlocks.get_sale_price_per_item()) + "\n"
+ modifiers_text = modifiers_text + "Items Produced Per Tick: " + str(Unlocks.get_items_produced_per_tick()) + "\n"
+ modifiers_text = modifiers_text + "Wood per Click: " + str(Unlocks.get_wood_per_click()) + "\n\n"
+ modifiers_text = modifiers_text + "Demand: " + str(int(Unlocks.get_sale_demand())) + "\n\n"
+
+ modifiers_text = modifiers_text + "Current Modifiers:\n"
+ for key in Unlocks.current_modifiers.keys():
+ var display_name = key.replace("_modifier", "").replace("_", " ").capitalize()
+ var percentage = int((Unlocks.current_modifiers[key] - 1.0) * 100)
+ modifiers_text += "%s: %s%%\n" % [display_name, str(percentage)]
+
+ modifiers_label.text = modifiers_text
+
+
+func _on_currency_changed(_value):
+ populate_modifiers_display()
+ update_currency_label()
+ update_wood_label()
+ update_stock_label()
diff --git a/scenes/scripts/ui_control.gd.uid b/scenes/scripts/ui_control.gd.uid
new file mode 100644
index 0000000..8cc34cc
--- /dev/null
+++ b/scenes/scripts/ui_control.gd.uid
@@ -0,0 +1 @@
+uid://cm84m3olmcc8o
diff --git a/scenes/scripts/wood_pile.gd b/scenes/scripts/wood_pile.gd
new file mode 100644
index 0000000..3831b9b
--- /dev/null
+++ b/scenes/scripts/wood_pile.gd
@@ -0,0 +1,22 @@
+extends Sprite2D
+
+@export var fade_duration: float = 0.5
+var tween: Tween
+
+func _ready():
+ # Start with outline invisible
+ material.set_shader_parameter("outline_alpha", 0.0)
+ start_continuous_fade()
+
+func start_continuous_fade():
+ tween = create_tween()
+ tween.set_loops() # Makes it loop infinitely
+ tween.tween_method(set_outline_alpha, 0.0, 1.0, fade_duration)
+ tween.tween_method(set_outline_alpha, 1.0, 0.0, fade_duration)
+
+func set_outline_alpha(value: float):
+ material.set_shader_parameter("outline_alpha", value)
+
+func stop_fade():
+ if tween:
+ tween.kill()
diff --git a/scenes/scripts/wood_pile.gd.uid b/scenes/scripts/wood_pile.gd.uid
new file mode 100644
index 0000000..91273b6
--- /dev/null
+++ b/scenes/scripts/wood_pile.gd.uid
@@ -0,0 +1 @@
+uid://nntb8jg35j6j
diff --git a/scenes/scripts/wood_pile_interaction.gd b/scenes/scripts/wood_pile_interaction.gd
new file mode 100644
index 0000000..599cd49
--- /dev/null
+++ b/scenes/scripts/wood_pile_interaction.gd
@@ -0,0 +1,93 @@
+extends Node2D
+
+@onready var area = $ClickArea
+@onready var arrow = $Arrow
+
+var respawn_timer: Timer
+var original_y: float = 0.0
+
+func _ready():
+ area.input_event.connect(_on_area_input_event)
+ area.mouse_entered.connect(_on_mouse_entered)
+ area.mouse_exited.connect(_on_mouse_exited)
+
+ # Create the respawn timer
+ respawn_timer = Timer.new()
+ respawn_timer.one_shot = true
+ respawn_timer.timeout.connect(_on_respawn_timer_timeout)
+ add_child(respawn_timer)
+
+func _on_area_input_event(_viewport, event, _shape_idx):
+ if event is InputEventMouseButton:
+ if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
+ on_clicked()
+
+func _on_mouse_entered():
+ Input.set_default_cursor_shape(Input.CURSOR_POINTING_HAND)
+
+func _on_mouse_exited():
+ Input.set_default_cursor_shape(Input.CURSOR_ARROW)
+
+func on_clicked():
+ Audio.play_chop_sound()
+ Inventory.add_wood(Unlocks.get_wood_per_click())
+ play_pop_animation()
+
+func play_pop_animation():
+ arrow.visible = false
+
+ # Store original position for reset
+ original_y = position.y
+
+ # Create a tween for smooth animation
+ var tween = create_tween()
+ tween.set_parallel(true) # Run animations simultaneously
+
+ # Scale up quickly (pop effect)
+ tween.tween_property(self, "scale", scale * 1.3, 0.1).set_ease(Tween.EASE_OUT)
+
+ # Fade out
+ tween.tween_property(self, "modulate:a", 0.0, 0.2)
+
+ # Optional: slight upward movement for extra effect
+ tween.tween_property(self, "position:y", position.y - 3, 0.2)
+
+ # Hide and disable, then start respawn timer
+ tween.finished.connect(func():
+ visible = false
+ area.monitoring = false
+ area.monitorable = false
+
+ # Start the respawn timer with the value from Unlocks
+ var respawn_time = Unlocks.get_wood_respawn_time()
+ respawn_timer.start(respawn_time)
+ )
+
+func _on_respawn_timer_timeout():
+ pop_back_in()
+
+func pop_back_in():
+ if visible:
+ return # Already visible
+
+ position.y = original_y
+
+ # Reset properties
+ visible = true
+ arrow.visible = true
+ area.monitoring = true
+ area.monitorable = true
+
+ # Create a tween for the pop-in animation
+ var tween = create_tween()
+ tween.set_parallel(true)
+
+ # Start from scaled down and transparent
+ scale = Vector2.ONE * 0.7
+ modulate.a = 0.0
+
+ # Scale up to normal
+ tween.tween_property(self, "scale", Vector2.ONE, 0.2).set_ease(Tween.EASE_OUT)
+
+ # Fade in
+ tween.tween_property(self, "modulate:a", 1.0, 0.2)
diff --git a/scenes/scripts/wood_pile_interaction.gd.uid b/scenes/scripts/wood_pile_interaction.gd.uid
new file mode 100644
index 0000000..f96f1f4
--- /dev/null
+++ b/scenes/scripts/wood_pile_interaction.gd.uid
@@ -0,0 +1 @@
+uid://dw8q7mx6co84v
diff --git a/scenes/stock_pile.tscn b/scenes/stock_pile.tscn
new file mode 100644
index 0000000..75b0651
--- /dev/null
+++ b/scenes/stock_pile.tscn
@@ -0,0 +1,25 @@
+[gd_scene load_steps=2 format=3 uid="uid://cnyxwsj6i27ja"]
+
+[ext_resource type="Texture2D" uid="uid://cu6cgp6q0hl2o" path="res://assets/tiles/Decor.png" id="1_8wwdp"]
+
+[node name="StockPile" type="Node2D"]
+
+[node name="BoxSprite2" type="Sprite2D" parent="."]
+position = Vector2(22, -8)
+texture = ExtResource("1_8wwdp")
+region_enabled = true
+region_rect = Rect2(33.91002, 0.009158134, 27.459976, 32.36215)
+
+[node name="BoxSprite1" type="Sprite2D" parent="."]
+position = Vector2(703, 338)
+texture = ExtResource("1_8wwdp")
+offset = Vector2(-703, -338)
+region_enabled = true
+region_rect = Rect2(2.1627102, 15.374939, 26.802752, 17.392681)
+
+[node name="BoxSprite3" type="Sprite2D" parent="."]
+position = Vector2(753, 338)
+texture = ExtResource("1_8wwdp")
+offset = Vector2(-703, -338)
+region_enabled = true
+region_rect = Rect2(2.1627102, 15.374939, 26.802752, 17.392681)
diff --git a/scenes/wood_pile.tscn b/scenes/wood_pile.tscn
new file mode 100644
index 0000000..d3ceba5
--- /dev/null
+++ b/scenes/wood_pile.tscn
@@ -0,0 +1,44 @@
+[gd_scene load_steps=9 format=3 uid="uid://bubjxrs8qmr4y"]
+
+[ext_resource type="Script" uid="uid://dw8q7mx6co84v" path="res://scenes/scripts/wood_pile_interaction.gd" id="1_akglv"]
+[ext_resource type="Shader" uid="uid://dadchcj2lrp2l" path="res://shaders/glow.gdshader" id="1_djslm"]
+[ext_resource type="Texture2D" uid="uid://cu6cgp6q0hl2o" path="res://assets/tiles/Decor.png" id="2_akglv"]
+[ext_resource type="Script" uid="uid://nntb8jg35j6j" path="res://scenes/scripts/wood_pile.gd" id="3_ayqi8"]
+[ext_resource type="Texture2D" uid="uid://w4ohc0xysdl7" path="res://assets/ui/arrowBlue_right.png" id="4_ynj3s"]
+[ext_resource type="Script" uid="uid://i6lg61o0jnkp" path="res://scenes/scripts/arrow.gd" id="5_87nld"]
+
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_q7h7c"]
+shader = ExtResource("1_djslm")
+shader_parameter/outline_color = Color(0.94509804, 0.92156863, 0.42352942, 1)
+shader_parameter/outline_width = 1.0
+shader_parameter/outline_alpha = 1.0
+
+[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_akglv"]
+radius = 31.0
+height = 72.0
+
+[node name="WoodPile" type="Node2D"]
+script = ExtResource("1_akglv")
+
+[node name="WoodSprite" type="Sprite2D" parent="."]
+material = SubResource("ShaderMaterial_q7h7c")
+texture = ExtResource("2_akglv")
+region_enabled = true
+region_rect = Rect2(200.15366, 74.126976, 48.803345, 22.335625)
+script = ExtResource("3_ayqi8")
+fade_duration = 1.0
+
+[node name="Arrow" type="Sprite2D" parent="."]
+position = Vector2(-1, -32)
+rotation = 1.5707964
+scale = Vector2(0.6, 0.6)
+texture = ExtResource("4_ynj3s")
+script = ExtResource("5_87nld")
+bounce_height = 6.0
+bounce_duration = 3.0
+
+[node name="ClickArea" type="Area2D" parent="."]
+
+[node name="ClickShape" type="CollisionShape2D" parent="ClickArea"]
+position = Vector2(1, -10)
+shape = SubResource("CapsuleShape2D_akglv")
diff --git a/scripts/audio.gd b/scripts/audio.gd
new file mode 100644
index 0000000..0ffe7d4
--- /dev/null
+++ b/scripts/audio.gd
@@ -0,0 +1,35 @@
+class_name AudioManager
+extends Node
+
+# When the game starts, play background music
+func _ready():
+ if Global.play_background_music:
+ play_background_music()
+
+func play_chop_sound():
+ ## Pick one of the chopping sounds randomly
+ var chop_sounds = [
+ "res://assets/audio/ogg/SFX/Chopping and Mining/chop 1.ogg",
+ "res://assets/audio/ogg/SFX/Chopping and Mining/chop 2.ogg",
+ "res://assets/audio/ogg/SFX/Chopping and Mining/chop 3.ogg",
+ "res://assets/audio/ogg/SFX/Chopping and Mining/chop 4.ogg"
+ ]
+ var random_index = randi() % chop_sounds.size()
+ play_sound_effect(chop_sounds[random_index])
+
+
+func play_sound_effect(sound_path: String):
+ var sfx_player = AudioStreamPlayer.new()
+ sfx_player.stream = load(sound_path)
+ sfx_player.volume_db = -5 # Set volume for sound effects
+ add_child(sfx_player)
+ sfx_player.play()
+ sfx_player.connect("finished", sfx_player.queue_free)
+
+func play_background_music():
+ var music_player = AudioStreamPlayer.new()
+ music_player.stream = load("res://assets/audio/background_music.ogg")
+ music_player.volume_db = -10 # Set volume to a comfortable level
+ music_player.autoplay = true
+ add_child(music_player)
+ music_player.play()
\ No newline at end of file
diff --git a/scripts/audio.gd.uid b/scripts/audio.gd.uid
new file mode 100644
index 0000000..3ec7dfd
--- /dev/null
+++ b/scripts/audio.gd.uid
@@ -0,0 +1 @@
+uid://brmgwlrichckd
diff --git a/scripts/game_manager.gd b/scripts/game_manager.gd
new file mode 100644
index 0000000..69732ff
--- /dev/null
+++ b/scripts/game_manager.gd
@@ -0,0 +1,23 @@
+extends Node
+var tick: Timer
+var tick_count: int = 0
+@onready var tick_process: TickProcess = TickProcess.new()
+
+func _ready():
+ #var simulator = UnlockSimulator.new()
+ #add_child(simulator)
+ Unlocks.apply_modifiers()
+ setup_tick_timer()
+
+func setup_tick_timer():
+ tick = Timer.new()
+ tick.wait_time = 1.0
+ tick.connect("timeout", _on_tick_timeout)
+ add_child(tick)
+ tick.start()
+
+func _on_tick_timeout():
+ tick_count += 1
+ tick_process.tick()
+ Log.pr("Tick", str(tick_count))
+ Log.pr("Current Currency:", Inventory.get_currency())
diff --git a/scripts/game_manager.gd.uid b/scripts/game_manager.gd.uid
new file mode 100644
index 0000000..dc42244
--- /dev/null
+++ b/scripts/game_manager.gd.uid
@@ -0,0 +1 @@
+uid://beoq13ju6x7pk
diff --git a/scripts/globals.gd b/scripts/globals.gd
new file mode 100644
index 0000000..99492e3
--- /dev/null
+++ b/scripts/globals.gd
@@ -0,0 +1,27 @@
+extends Node
+
+# SETTINGS
+var play_background_music: bool = false
+
+# STRINGS
+var currency_symbol: String = "¥"
+
+# COLORS
+var money_color: Color = Color(1.0, 0.85, 0.4) # Bright golden yellow (autumn sun)
+var wood_color: Color = Color(0.95, 0.6, 0.35) # Light pumpkin orange (autumn leaves)
+var stock_color: Color = Color(0.6, 0.75, 0.95) # Light periwinkle blue (clear autumn sky)
+
+# GAMEPLAY VALUES
+var base_sale_price: float = 100
+var base_wood_respawn: float = 5 # seconds
+var wood_per_click: float = 5
+var cost_per_whittle: float = 1 # This is how many items can be produced per tick
+var base_purchase_rate: float = 1
+
+var wholesale_unlock_id = 5
+var wholesale_bundle_size = 100
+var wholesale_discount_multiplier = 1.2
+
+var multicraft_unlock_id = 6
+
+var autowood_unlock_id = 7
\ No newline at end of file
diff --git a/scripts/globals.gd.uid b/scripts/globals.gd.uid
new file mode 100644
index 0000000..74ed42b
--- /dev/null
+++ b/scripts/globals.gd.uid
@@ -0,0 +1 @@
+uid://cgb5ptg2ktqbk
diff --git a/scripts/inputs.gd b/scripts/inputs.gd
new file mode 100644
index 0000000..e2c1f7e
--- /dev/null
+++ b/scripts/inputs.gd
@@ -0,0 +1,6 @@
+class_name InputsClass
+extends Node
+
+func _ready():
+ var cursor_texture = load("res://assets/ui/cursorHand_blue.png")
+ Input.set_custom_mouse_cursor(cursor_texture, Input.CURSOR_POINTING_HAND, Vector2(0, 0))
\ No newline at end of file
diff --git a/scripts/inputs.gd.uid b/scripts/inputs.gd.uid
new file mode 100644
index 0000000..944655d
--- /dev/null
+++ b/scripts/inputs.gd.uid
@@ -0,0 +1 @@
+uid://bp0n5t22hq361
diff --git a/scripts/inventory.gd b/scripts/inventory.gd
new file mode 100644
index 0000000..9084bfb
--- /dev/null
+++ b/scripts/inventory.gd
@@ -0,0 +1,63 @@
+class_name InventoryClass
+extends Node
+
+signal currency_changed(new_amount: float)
+signal currency_added(amount: float, new_total: float)
+signal currency_spent(amount: float, new_total: float)
+signal wood_changed(new_amount: float)
+signal wood_added(amount: float, new_total: float)
+signal wood_spent(amount: float, new_total: float)
+signal stock_changed(new_amount: float)
+signal stock_added(amount: float, new_total: float)
+signal stock_spent(amount: float, new_total: float)
+
+var inventory: InventoryResource = load("res://resources/InventoryData.tres")
+
+func get_currency() -> float:
+ return inventory.currency
+
+func add_currency(amount: float):
+ inventory.currency += amount
+ currency_added.emit(amount, inventory.currency)
+ currency_changed.emit(inventory.currency)
+
+func spend_currency(amount: float) -> bool:
+ if inventory.currency >= amount:
+ inventory.currency -= amount
+ currency_spent.emit(amount, inventory.currency)
+ currency_changed.emit(inventory.currency)
+ return true
+ return false
+
+func get_wood() -> float:
+ return inventory.wood
+
+func add_wood(amount: float):
+ inventory.wood += amount
+ wood_added.emit(amount, inventory.wood)
+ wood_changed.emit(inventory.wood)
+
+func spend_wood(amount: float) -> bool:
+ if inventory.wood >= amount:
+ inventory.wood -= amount
+ wood_spent.emit(amount, inventory.wood)
+ wood_changed.emit(inventory.wood)
+ return true
+ return false
+
+func get_stock() -> float:
+ return inventory.stock
+
+func add_stock(amount: float):
+ Log.pr("Adding stock: " + str(amount))
+ inventory.stock += amount
+ stock_added.emit(amount, inventory.stock)
+ stock_changed.emit(inventory.stock)
+
+func spend_stock(amount: float) -> bool:
+ if inventory.stock >= amount:
+ inventory.stock -= amount
+ stock_spent.emit(amount, inventory.stock)
+ stock_changed.emit(inventory.stock)
+ return true
+ return false
diff --git a/scripts/inventory.gd.uid b/scripts/inventory.gd.uid
new file mode 100644
index 0000000..7cf8981
--- /dev/null
+++ b/scripts/inventory.gd.uid
@@ -0,0 +1 @@
+uid://b8nmlowx54de0
diff --git a/scripts/sim.gd b/scripts/sim.gd
new file mode 100644
index 0000000..5b9d084
--- /dev/null
+++ b/scripts/sim.gd
@@ -0,0 +1,417 @@
+class_name UnlockSimulator
+extends Node
+
+# Load the actual game resources
+var unlock_collection: UnlockDataCollection = load("res://resources/UnlockData.tres")
+var inventory_resource: InventoryResource = load("res://resources/InventoryData.tres")
+
+# Results tracking
+var all_results: Array[Dictionary] = []
+var results_mutex: Mutex = Mutex.new()
+
+# Manual thread pool
+var num_threads: int = 12 # Increase this for more CPU usage
+var threads: Array[Thread] = []
+var task_queue: Array[Dictionary] = []
+var queue_mutex: Mutex = Mutex.new()
+var completed_count: int = 0
+var completed_mutex: Mutex = Mutex.new()
+var active_threads: int = 0
+var threads_done: bool = false
+
+var start_time: int = 0
+var total_combinations: int = 0
+var last_progress_time: int = 0
+var monitoring_active: bool = false
+
+func _ready():
+ print("=== Unlock Simulator Started ===")
+ var cpu_count = OS.get_processor_count()
+ print("CPU cores detected: %d" % cpu_count)
+ print("Creating %d worker threads (adjust num_threads variable for more/less)" % num_threads)
+ run_comprehensive_test()
+
+func _process(_delta):
+ if monitoring_active:
+ # Only update progress once per second
+ var current_time = Time.get_ticks_msec()
+ if current_time - last_progress_time >= 1000:
+ last_progress_time = current_time
+ update_progress()
+
+func update_progress():
+ """Update progress display"""
+ var current_count = 0
+ completed_mutex.lock()
+ current_count = completed_count
+ completed_mutex.unlock()
+
+ # Check if all work is complete
+ if current_count >= total_combinations:
+ monitoring_active = false
+ finish_processing()
+ return
+
+ var percent = float(current_count) / total_combinations * 100.0
+ var elapsed = (Time.get_ticks_msec() - start_time) / 1000.0
+ var rate = current_count / elapsed if elapsed > 0 else 0
+ var eta_seconds = (total_combinations - current_count) / rate if rate > 0 else 0
+
+ # Format ETA
+ var eta_str = ""
+ if eta_seconds > 0:
+ var eta_minutes = int(eta_seconds) / 60
+ var eta_secs = int(eta_seconds) % 60
+ if eta_minutes > 0:
+ eta_str = "%dm %ds" % [eta_minutes, eta_secs]
+ else:
+ eta_str = "%ds" % eta_secs
+ else:
+ eta_str = "calculating..."
+
+ print("Progress: %.1f%% (%d/%d) - %.1f combos/sec - ETA: %s" % [
+ percent, current_count, total_combinations, rate, eta_str
+ ])
+
+func worker_thread(thread_id: int):
+ """Worker thread function that pulls tasks from the queue"""
+ while true:
+ # Get next task from queue
+ var task_data = null
+ queue_mutex.lock()
+ if task_queue.size() > 0:
+ task_data = task_queue.pop_front()
+ queue_mutex.unlock()
+
+ # If no more tasks, exit
+ if task_data == null:
+ break
+
+ # Process the task
+ var result = simulate_rank_combination_pure(task_data.combo, task_data.unlock_data, 100000)
+
+ # Store result
+ results_mutex.lock()
+ all_results.append(result)
+ results_mutex.unlock()
+
+ # Increment counter
+ completed_mutex.lock()
+ completed_count += 1
+ completed_mutex.unlock()
+
+func simulate_rank_combination_pure(rank_targets: Dictionary, unlock_data_array: Array, max_ticks: int) -> Dictionary:
+ """Pure simulation function that can run in parallel"""
+ var currency: float = 0.0
+ var stock: float = 0.0
+
+ # Create unlock instances from serialized data
+ var unlocks: Array = []
+ for unlock_data in unlock_data_array:
+ var unlock = UnlockDataResource.new()
+ unlock.unlock_id = unlock_data.unlock_id
+ unlock.unlock_name = unlock_data.unlock_name
+ unlock.base_cost = unlock_data.base_cost
+ unlock.is_scaling = unlock_data.is_scaling
+ unlock.max_rank = unlock_data.max_rank
+ unlock.cost_scaling_multiplier = unlock_data.cost_scaling_multiplier
+ unlock.effect_scaling_multiplier = unlock_data.effect_scaling_multiplier
+ unlock.base_modifiers = unlock_data.base_modifiers.duplicate()
+ unlock.is_unlocked = false
+ unlock.current_rank = 0
+ unlocks.append(unlock)
+
+ var ticks = 0
+ var purchases: Array[Dictionary] = []
+ var current_ranks = {}
+
+ # Initialize current ranks
+ for unlock_id in rank_targets.keys():
+ current_ranks[unlock_id] = 0
+
+ # Helper to check if all targets reached
+ var all_targets_reached = func() -> bool:
+ for unlock_id in rank_targets.keys():
+ if current_ranks[unlock_id] < rank_targets[unlock_id]:
+ return false
+ return true
+
+ # Calculate modifiers helper
+ var calc_modifiers = func() -> Dictionary:
+ var mods = {
+ "sale_price_modifier": 1.0,
+ "speed_modifier": 1.0,
+ "efficiency_modifier": 1.0,
+ "wood_respawn_modifier": 1.0,
+ "wood_per_click_modifier": 1.0,
+ "purchase_rate_modifier": 1.0,
+ }
+ for unlock in unlocks:
+ if unlock.is_unlocked:
+ var unlock_modifiers = unlock.get_current_modifiers()
+ for key in unlock_modifiers.keys():
+ if mods.has(key):
+ mods[key] *= unlock_modifiers[key]
+ return mods
+
+ var modifiers = calc_modifiers.call()
+
+ while ticks < max_ticks and currency < 100000.0:
+ # Try to buy the cheapest available unlock that hasn't reached its target
+ var cheapest_unlock_id = null
+ var cheapest_cost = INF
+ var cheapest_unlock_obj = null
+
+ for unlock_id in rank_targets.keys():
+ if current_ranks[unlock_id] < rank_targets[unlock_id]:
+ # Find the unlock object
+ var unlock = null
+ for u in unlocks:
+ if u.unlock_id == unlock_id:
+ unlock = u
+ break
+
+ if unlock and unlock.can_rank_up():
+ var cost = unlock.get_next_cost()
+ if cost < cheapest_cost and currency >= cost:
+ cheapest_cost = cost
+ cheapest_unlock_id = unlock_id
+ cheapest_unlock_obj = unlock
+
+ # Purchase the cheapest unlock if found
+ if cheapest_unlock_obj != null:
+ currency -= cheapest_cost
+ cheapest_unlock_obj.unlock()
+ current_ranks[cheapest_unlock_id] += 1
+
+ # Recalculate modifiers
+ modifiers = calc_modifiers.call()
+
+ purchases.append({
+ "tick": ticks,
+ "unlock_id": cheapest_unlock_id,
+ "unlock_name": cheapest_unlock_obj.unlock_name,
+ "rank": cheapest_unlock_obj.current_rank,
+ "currency": currency,
+ "cost_paid": cheapest_cost,
+ "modifiers_after": modifiers.duplicate()
+ })
+
+ # Simulate one tick
+ var items_per_tick = Global.cost_per_whittle * modifiers.get("efficiency_modifier", 1.0)
+ stock += items_per_tick
+
+ var demand = Global.base_purchase_rate * modifiers.get("purchase_rate_modifier", 1.0)
+ var items_sold = min(stock, demand)
+ stock -= items_sold
+
+ var price_per_item = Global.base_sale_price * modifiers.get("sale_price_modifier", 1.0)
+ var revenue = items_sold * price_per_item
+ currency += revenue
+
+ ticks += 1
+
+ # Check if we've reached target and 10K
+ if all_targets_reached.call() and currency >= 100000.0:
+ break
+
+ var success = currency >= 100000.0
+
+ return {
+ "rank_targets": rank_targets,
+ "success": success,
+ "ticks": ticks if success else -1,
+ "final_currency": currency,
+ "purchases": purchases,
+ "time_formatted": format_time(ticks) if success else "Failed"
+ }
+
+func format_time(ticks: int) -> String:
+ var seconds = ticks
+ var minutes = seconds / 60
+ var hours = minutes / 60
+
+ if hours > 0:
+ return "%dh %dm %ds" % [hours, minutes % 60, seconds % 60]
+ elif minutes > 0:
+ return "%dm %ds" % [minutes, seconds % 60]
+ else:
+ return "%ds" % seconds
+
+func generate_rank_combinations(max_ranks_per_unlock: int = 10) -> Array[Dictionary]:
+ """Generate all combinations of ranks for the first 4 unlocks"""
+ var combinations: Array[Dictionary] = []
+
+ # Get first 4 unlock IDs
+ var unlock_ids = []
+ for i in range(min(4, unlock_collection.unlocks.size())):
+ unlock_ids.append(unlock_collection.unlocks[i].unlock_id)
+
+ print("Generating combinations for unlocks: ", unlock_ids)
+
+ # Generate all combinations (0 to max_ranks for each unlock)
+ for rank1 in range(max_ranks_per_unlock + 1):
+ for rank2 in range(max_ranks_per_unlock + 1):
+ for rank3 in range(max_ranks_per_unlock + 1):
+ for rank4 in range(max_ranks_per_unlock + 1):
+ # Skip the all-zeros case
+ if rank1 == 0 and rank2 == 0 and rank3 == 0 and rank4 == 0:
+ continue
+
+ var combination = {}
+ if rank1 > 0:
+ combination[unlock_ids[0]] = rank1
+ if rank2 > 0:
+ combination[unlock_ids[1]] = rank2
+ if rank3 > 0:
+ combination[unlock_ids[2]] = rank3
+ if rank4 > 0:
+ combination[unlock_ids[3]] = rank4
+
+ combinations.append(combination)
+
+ return combinations
+
+func serialize_unlock_data() -> Array:
+ """Convert unlock collection to serializable data for threads"""
+ var unlock_data = []
+ for unlock in unlock_collection.unlocks:
+ unlock_data.append({
+ "unlock_id": unlock.unlock_id,
+ "unlock_name": unlock.unlock_name,
+ "base_cost": unlock.base_cost,
+ "is_scaling": unlock.is_scaling,
+ "max_rank": unlock.max_rank,
+ "cost_scaling_multiplier": unlock.cost_scaling_multiplier,
+ "effect_scaling_multiplier": unlock.effect_scaling_multiplier,
+ "base_modifiers": unlock.base_modifiers.duplicate()
+ })
+ return unlock_data
+
+func run_comprehensive_test(max_ranks: int = 10):
+ """Test all combinations of ranks up to max_ranks for each unlock"""
+ print("\n=== Available Unlocks ===")
+ for unlock in unlock_collection.unlocks:
+ print("ID: %d | %s | Base Cost: %d | Scaling: %s" % [
+ unlock.unlock_id,
+ unlock.unlock_name,
+ unlock.base_cost,
+ "Yes" if unlock.is_scaling else "No"
+ ])
+ print(" Modifiers: ", unlock.base_modifiers)
+
+ print("\n=== Global Constants ===")
+ print("Base Sale Price: %s" % Global.base_sale_price)
+ print("Base Purchase Rate: %s" % Global.base_purchase_rate)
+ print("Cost Per Whittle: %s" % Global.cost_per_whittle)
+
+ # Generate all combinations
+ var combinations = generate_rank_combinations(max_ranks)
+ total_combinations = combinations.size()
+ print("\n=== Testing %d Combinations ===" % total_combinations)
+
+ # Serialize unlock data for threads
+ var unlock_data = serialize_unlock_data()
+
+ # Fill task queue
+ task_queue.clear()
+ for combo in combinations:
+ task_queue.append({
+ "combo": combo,
+ "unlock_data": unlock_data
+ })
+
+ # Reset counters
+ completed_count = 0
+ all_results.clear()
+ threads_done = false
+ start_time = Time.get_ticks_msec()
+ last_progress_time = start_time
+ monitoring_active = true
+
+ # Create and start threads
+ print("Starting %d worker threads..." % num_threads)
+ for i in range(num_threads):
+ var thread = Thread.new()
+ thread.start(worker_thread.bind(i))
+ threads.append(thread)
+
+ print("All threads started, processing...")
+
+func finish_processing():
+ """Called when all processing is complete"""
+ print("\nAll combinations complete! Waiting for threads to finish...")
+
+ # Wait for all threads to finish
+ for thread in threads:
+ thread.wait_to_finish()
+ threads.clear()
+ threads_done = true
+
+ print("All threads finished. Processing results...")
+
+ var total_time = (Time.get_ticks_msec() - start_time) / 1000.0
+
+ # Print results
+ print("\n=== RESULTS ===")
+ print("Total time: %.1f seconds" % total_time)
+ print("Total combinations tested: %d" % all_results.size())
+
+ var successful = all_results.filter(func(r): return r.success)
+ print("Successful strategies: %d" % successful.size())
+
+ if successful.size() > 0:
+ # Sort by ticks (fastest first)
+ successful.sort_custom(func(a, b): return a.ticks < b.ticks)
+
+ print("\n=== TOP 10 FASTEST STRATEGIES ===")
+ for i in range(min(10, successful.size())):
+ var result = successful[i]
+ print("\n#%d: %s (%d ticks)" % [i + 1, result.time_formatted, result.ticks])
+
+ # Format ranks with unlock names
+ var rank_display = []
+ for unlock_id in result.rank_targets.keys():
+ var unlock_name = get_unlock_name_by_id(unlock_id)
+ var ranks = result.rank_targets[unlock_id]
+ rank_display.append("%s: %d" % [unlock_name, ranks])
+ print("Target Ranks: %s" % ", ".join(rank_display))
+
+ # Show purchase order
+ print("Purchase Order:")
+ for purchase in result.purchases:
+ var key_mods = ""
+ if purchase.has("modifiers_after"):
+ var mods = purchase.modifiers_after
+ key_mods = " [Sale:%.2fx Eff:%.2fx Demand:%.2fx]" % [
+ mods.get("sale_price_modifier", 1.0),
+ mods.get("efficiency_modifier", 1.0),
+ mods.get("purchase_rate_modifier", 1.0)
+ ]
+ var cost_info = ""
+ if purchase.has("cost_paid"):
+ cost_info = " (paid %d)" % purchase.cost_paid
+ print(" @%s: %s -> Rank %d%s - %.0f currency%s" % [
+ format_time(purchase.tick),
+ purchase.unlock_name,
+ purchase.rank,
+ cost_info,
+ purchase.currency,
+ key_mods
+ ])
+ else:
+ print("\nNo successful strategies found!")
+
+func get_unlock_name_by_id(unlock_id: int) -> String:
+ """Helper function to get unlock name by ID"""
+ for unlock in unlock_collection.unlocks:
+ if unlock.unlock_id == unlock_id:
+ return unlock.unlock_name
+ return "Unknown"
+
+func _exit_tree():
+ # Clean up threads
+ monitoring_active = false
+ for thread in threads:
+ if thread.is_alive():
+ thread.wait_to_finish()
\ No newline at end of file
diff --git a/scripts/sim.gd.uid b/scripts/sim.gd.uid
new file mode 100644
index 0000000..e6cfc40
--- /dev/null
+++ b/scripts/sim.gd.uid
@@ -0,0 +1 @@
+uid://daala7g4otu04
diff --git a/scripts/tick_process.gd b/scripts/tick_process.gd
new file mode 100644
index 0000000..fac8e94
--- /dev/null
+++ b/scripts/tick_process.gd
@@ -0,0 +1,73 @@
+class_name TickProcess
+extends Node
+
+func tick():
+ Log.pr("Tick Process Ticking...")
+ do_autowood()
+ do_whittling()
+ do_selling()
+
+func do_autowood():
+ # If the autowood unlock is unlocked then automatically gain wood based on the modifier
+ var autowood_unlock = Unlocks.get_unlock_by_id(Global.autowood_unlock_id)
+ if autowood_unlock and autowood_unlock.is_unlocked:
+ Log.pr("Autowood modifier", str(Unlocks.get_modifier_value("autowood_modifier")))
+ var wood_to_gather = max(Unlocks.get_wood_per_click() * Unlocks.get_modifier_value("autowood_modifier"), 1)
+ Inventory.add_wood(wood_to_gather)
+ Log.pr("Auto-gathered", str(wood_to_gather), "wood via autowood unlock.")
+
+func do_whittling():
+ # If there's more than 1 whole wood available, then whittle based on the efficiency modifier
+ if Inventory.get_wood() >= 1:
+ whittle_max_wood_possible()
+
+ ## If multicraft is unlocked, whittle additional wood based on multicraft unlock
+ var multicraft_unlock = Unlocks.get_unlock_by_id(Global.multicraft_unlock_id)
+ if multicraft_unlock and multicraft_unlock.is_unlocked:
+ var additional_whittles = multicraft_unlock.current_rank # Each rank allows one additional whittling action
+ for i in range(additional_whittles):
+ if Inventory.get_wood() >= 1:
+ whittle_max_wood_possible()
+ else:
+ break
+
+func do_selling():
+ # If the wholesale unlock is purchased, sell blocks of 100 whittled wood if possible
+ var wholesale_unlock = Unlocks.get_unlock_by_id(Global.wholesale_unlock_id)
+ if wholesale_unlock and wholesale_unlock.is_unlocked:
+ while Inventory.get_stock() >= Global.wholesale_bundle_size:
+ Inventory.spend_stock(Global.wholesale_bundle_size)
+ var currency_earned = Global.wholesale_bundle_size * Unlocks.get_sale_price_per_item() * Global.wholesale_discount_multiplier
+ Inventory.add_currency(currency_earned)
+ Log.pr("Sold 100 whittled wood for", str(currency_earned), "currency via wholesale unlock.")
+
+
+ # If there's whittled wood available to sell, sell it for currency
+ if Inventory.get_stock() > 0:
+ var whittle_wood_to_sell = Inventory.get_stock()
+ # Sell whatever people are willing to buy
+ var purchase_rate = Global.base_purchase_rate * Unlocks.get_modifier_value("purchase_rate_modifier")
+ var max_stock_to_sell = floor(purchase_rate)
+
+ # Sell up to the max stock to sell this tick, but no more than available stock
+ # We should always sell at least one, up to the max
+ var actual_stock_to_sell = min(whittle_wood_to_sell, max(1, max_stock_to_sell))
+
+ Inventory.spend_stock(actual_stock_to_sell)
+ var currency_earned = actual_stock_to_sell * Unlocks.get_sale_price_per_item()
+ Inventory.add_currency(currency_earned)
+
+
+func whittle_max_wood_possible():
+ # Get the items that can be produced per tick
+ var items_produced_per_tick = Unlocks.get_items_produced_per_tick()
+ Log.pr("Items produced per tick:", str(items_produced_per_tick))
+ var wood_needed = ceil(items_produced_per_tick)
+
+ # Whittle as much wood as possible this tick, up to the max allowed by efficiency
+ var wood_to_whittle = min(Inventory.get_wood(), wood_needed)
+ var actual_items_produced = wood_to_whittle
+
+ Inventory.spend_wood(wood_to_whittle)
+ Inventory.add_stock(actual_items_produced)
+ Log.pr("Whittled", str(wood_to_whittle), "wood into", str(actual_items_produced), "whittle wood.")
diff --git a/scripts/tick_process.gd.uid b/scripts/tick_process.gd.uid
new file mode 100644
index 0000000..a09d316
--- /dev/null
+++ b/scripts/tick_process.gd.uid
@@ -0,0 +1 @@
+uid://oxqv2ru5tj0t
diff --git a/scripts/unlocks.gd b/scripts/unlocks.gd
new file mode 100644
index 0000000..48bd041
--- /dev/null
+++ b/scripts/unlocks.gd
@@ -0,0 +1,106 @@
+class_name UnlocksClass
+extends Node
+
+var unlocks: UnlockDataCollection = load("res://resources/UnlockData.tres")
+
+var base_modifiers: Dictionary = {
+ "sale_price_modifier": 1.0,
+ "speed_modifier": 1.0,
+ "efficiency_modifier": 1.0,
+ "wood_respawn_modifier": 1.0,
+ "wood_per_click_modifier": 1.0,
+ "purchase_rate_modifier": 1.0,
+ "autowood_modifier": 1.0
+}
+
+var current_modifiers: Dictionary = base_modifiers.duplicate()
+
+signal item_unlocked()
+
+func reset_modifiers():
+ current_modifiers = base_modifiers.duplicate()
+ Log.pr("Modifiers reset to base values.")
+
+func apply_modifiers():
+ Log.pr("Applying modifiers for unlocked items...")
+ reset_modifiers()
+ for unlock in unlocks.unlocks:
+ if unlock.is_unlocked:
+ Log.pr("Applying modifier for unlocked item:", unlock.unlock_name)
+ var apply_unlock_modifiers = unlock.get_current_modifiers()
+ for key in apply_unlock_modifiers.keys():
+ if current_modifiers.has(key):
+ Log.pr(" - Current", key, "modifier before:", current_modifiers[key])
+ current_modifiers[key] *= apply_unlock_modifiers[key]
+ Log.pr(" - Applied", key, "modifier:", apply_unlock_modifiers[key], "New value:", current_modifiers[key])
+ else:
+ Log.pr(" - Warning: Unknown modifier key:", key)
+
+func get_modifier_value(modifier_key: String) -> float:
+ if current_modifiers.has(modifier_key):
+ return current_modifiers[modifier_key]
+ return 1.0
+
+func get_unlock_by_id(unlock_id: int) -> UnlockDataResource:
+ for unlock in unlocks.unlocks:
+ if unlock.unlock_id == unlock_id:
+ return unlock
+ return null
+
+func unlock_item(unlock_id: int) -> bool:
+ var unlock_data = get_unlock_by_id(unlock_id)
+ if not unlock_data:
+ return false
+
+ # Check if this unlock can be ranked up (handles both scaling and non-scaling)
+ if not unlock_data.can_rank_up():
+ Log.pr("Cannot rank up:", unlock_data.unlock_name, "- Already at max rank/unlocked")
+ return false
+
+ # Get the cost for the next rank/unlock
+ var cost = unlock_data.get_next_cost()
+
+ # Try to spend the currency
+ if Inventory.spend_currency(cost):
+ # Store previous rank for logging
+ var previous_rank = unlock_data.current_rank
+
+ # Unlock or rank up
+ unlock_data.unlock()
+
+ # Log appropriate message based on unlock type
+ if unlock_data.is_scaling:
+ Log.pr("Ranked up %s: Rank %d -> %d" % [unlock_data.unlock_name, previous_rank, unlock_data.current_rank])
+ else:
+ Log.pr("Unlocked:", unlock_data.unlock_name)
+
+ # Apply modifiers again (now using updated rank)
+ apply_modifiers()
+ call_deferred("_refresh_ui")
+
+ return true
+ else:
+ if unlock_data.is_scaling:
+ Log.pr("Not enough currency to rank up %s to rank %d (Cost: %d)" % [unlock_data.unlock_name, unlock_data.get_next_rank(), cost])
+ else:
+ Log.pr("Not enough currency to unlock %s (Cost: %d)" % [unlock_data.unlock_name, cost])
+
+ return false
+
+func get_sale_price_per_item():
+ return Global.base_sale_price * get_modifier_value("sale_price_modifier")
+
+func get_wood_per_click():
+ return Global.wood_per_click * get_modifier_value("wood_per_click_modifier")
+
+func get_wood_respawn_time():
+ return Global.base_wood_respawn * get_modifier_value("wood_respawn_modifier")
+
+func get_items_produced_per_tick():
+ return Global.cost_per_whittle * get_modifier_value("efficiency_modifier")
+
+func get_sale_demand():
+ return Global.base_purchase_rate * get_modifier_value("purchase_rate_modifier")
+
+func _refresh_ui():
+ item_unlocked.emit()
diff --git a/scripts/unlocks.gd.uid b/scripts/unlocks.gd.uid
new file mode 100644
index 0000000..33cc7c2
--- /dev/null
+++ b/scripts/unlocks.gd.uid
@@ -0,0 +1 @@
+uid://p52rtx3sv8jc
diff --git a/shaders/glow.gdshader b/shaders/glow.gdshader
new file mode 100644
index 0000000..ccccc06
--- /dev/null
+++ b/shaders/glow.gdshader
@@ -0,0 +1,26 @@
+shader_type canvas_item;
+
+uniform vec4 outline_color : source_color = vec4(1.0, 1.0, 1.0, 1.0);
+uniform float outline_width : hint_range(0.0, 10.0) = 1.0;
+uniform float outline_alpha : hint_range(0.0, 1.0) = 1.0;
+
+void fragment() {
+ vec2 size = TEXTURE_PIXEL_SIZE * outline_width;
+ vec4 sprite_color = texture(TEXTURE, UV);
+ float outline = 0.0;
+
+ // Left
+ outline += texture(TEXTURE, UV + vec2(-size.x, 0)).a;
+ // Right
+ outline += texture(TEXTURE, UV + vec2(size.x, 0)).a;
+ // Top
+ outline += texture(TEXTURE, UV + vec2(0, -size.y)).a;
+ // Top-left
+ outline += texture(TEXTURE, UV + vec2(-size.x, -size.y)).a;
+ // Top-right
+ outline += texture(TEXTURE, UV + vec2(size.x, -size.y)).a;
+
+ outline = min(outline, 1.0);
+ vec4 final_color = mix(outline_color, sprite_color, sprite_color.a);
+ COLOR = vec4(final_color.rgb, max(sprite_color.a, outline * outline_color.a * outline_alpha));
+}
\ No newline at end of file
diff --git a/shaders/glow.gdshader.uid b/shaders/glow.gdshader.uid
new file mode 100644
index 0000000..cd8fbd3
--- /dev/null
+++ b/shaders/glow.gdshader.uid
@@ -0,0 +1 @@
+uid://dadchcj2lrp2l