5 Commits
Author SHA1 Message Date
TheRailGoat 656026aa09 Minor Level Tweaks +Hat
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-29 23:07:44 -05:00
TheRailGoat 43b38b2428 Saw updates + experimental new level
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-28 23:28:40 -05:00
TheRailGoat 3b0b981337 Swinging Saws (plus prototype level select)
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-25 22:51:51 -05:00
TheRailGoat 4fd5347f85 More Meat Boys
ci/woodpecker/push/woodpecker Pipeline was successful
Ah, just pick one.
2026-10-19 21:01:05 -05:00
TheRailGoat 4cb37c624d Meat Boy Hat
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-19 20:52:34 -05:00
31 changed files with 1328 additions and 9 deletions

No files matched your search

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbjb5a353bq5p"
path="res://.godot/imported/+Y6tTX.png-727916852968e76cc993d8b7d6d6d93a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/+Y6tTX.png"
dest_files=["res://.godot/imported/+Y6tTX.png-727916852968e76cc993d8b7d6d6d93a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/high_quality_mode=0
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
mipmaps/preserve_alpha_test_coverage=false
mipmaps/alpha_test_threshold=0.5
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
+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cgyp2d3phoeqd"
path="res://.godot/imported/CwIZf+.png-d1acec1f682e0950ce7b5cc0bfb297db.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/CwIZf+.png"
dest_files=["res://.godot/imported/CwIZf+.png-d1acec1f682e0950ce7b5cc0bfb297db.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/high_quality_mode=0
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
mipmaps/preserve_alpha_test_coverage=false
mipmaps/alpha_test_threshold=0.5
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
Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0sasam50end2"
path="res://.godot/imported/meatboy1.png-d06dfded7f5d860bfd690ed307415e07.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/hats/meatboy1.png"
dest_files=["res://.godot/imported/meatboy1.png-d06dfded7f5d860bfd690ed307415e07.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/high_quality_mode=0
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
mipmaps/preserve_alpha_test_coverage=false
mipmaps/alpha_test_threshold=0.5
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
Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfqdhwfoqlwy"
path="res://.godot/imported/meatboy2.png-bf250d529a9f88dbbd30439e9acead90.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/hats/meatboy2.png"
dest_files=["res://.godot/imported/meatboy2.png-bf250d529a9f88dbbd30439e9acead90.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/high_quality_mode=0
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
mipmaps/preserve_alpha_test_coverage=false
mipmaps/alpha_test_threshold=0.5
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
Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://donreb0qheu16"
path="res://.godot/imported/meatboy3.png-a2941ef2fc3948671036a07f525032ab.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/hats/meatboy3.png"
dest_files=["res://.godot/imported/meatboy3.png-a2941ef2fc3948671036a07f525032ab.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/high_quality_mode=0
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
mipmaps/preserve_alpha_test_coverage=false
mipmaps/alpha_test_threshold=0.5
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
Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cnxgew788j5y"
path="res://.godot/imported/meatboy4.png-1b02cf586297202cfeafe72bb5606f1e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/hats/meatboy4.png"
dest_files=["res://.godot/imported/meatboy4.png-1b02cf586297202cfeafe72bb5606f1e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/high_quality_mode=0
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
mipmaps/preserve_alpha_test_coverage=false
mipmaps/alpha_test_threshold=0.5
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
+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wfsj2b8bpr56"
path="res://.godot/imported/ie382o.png-08c93a780308d3a3514a4445a6140b23.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ie382o.png"
dest_files=["res://.godot/imported/ie382o.png-08c93a780308d3a3514a4445a6140b23.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/high_quality_mode=0
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
mipmaps/preserve_alpha_test_coverage=false
mipmaps/alpha_test_threshold=0.5
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
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d22jcb3da431q"
path="res://.godot/imported/saw_chain.png-426bf95addbff87985501cf0b0665d08.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/saw_chain.png"
dest_files=["res://.godot/imported/saw_chain.png-426bf95addbff87985501cf0b0665d08.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/high_quality_mode=0
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
mipmaps/preserve_alpha_test_coverage=false
mipmaps/alpha_test_threshold=0.5
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
+20
View File
@@ -0,0 +1,20 @@
[gd_scene format=3 uid="uid://1wpbevbqjvxc"]
[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_4o75i"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(16, 14)
[node name="DoubleBlockS" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0
freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
scale = Vector2(2, 1)
shape = SubResource("RectangleShape2D_f3sb7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
texture_repeat = 2
texture = ExtResource("1_4o75i")
region_enabled = true
region_rect = Rect2(-32, -16, 32, 16)
+20
View File
@@ -0,0 +1,20 @@
[gd_scene format=3 uid="uid://crmvdya3m7mll"]
[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_c1qw8"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(16, 14)
[node name="LevelBorderBlock" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0
freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
scale = Vector2(64, 1)
shape = SubResource("RectangleShape2D_f3sb7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
texture_repeat = 2
texture = ExtResource("1_c1qw8")
region_enabled = true
region_rect = Rect2(-1024, -16, 1024, 16)
+21
View File
@@ -0,0 +1,21 @@
[gd_scene format=3 uid="uid://b4221qweamyvs"]
[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_jmk5n"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(16, 14)
[node name="LevelBorderBlockV" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0
freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
scale = Vector2(1, 36.56)
shape = SubResource("RectangleShape2D_f3sb7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
texture_repeat = 2
rotation = 1.5707964
texture = ExtResource("1_jmk5n")
region_enabled = true
region_rect = Rect2(-512, 16, 512, 16)
+20
View File
@@ -0,0 +1,20 @@
[gd_scene format=3 uid="uid://c6n6v8ko733yd"]
[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_m7sdc"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(16, 14)
[node name="LongBlockS" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0
freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
scale = Vector2(10, 1)
shape = SubResource("RectangleShape2D_f3sb7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
texture_repeat = 2
texture = ExtResource("1_m7sdc")
region_enabled = true
region_rect = Rect2(-160, -16, 160, 16)
+20
View File
@@ -0,0 +1,20 @@
[gd_scene format=3 uid="uid://co7sblp40sat2"]
[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_l676e"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(16, 14)
[node name="LongishBlockS" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0
freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
scale = Vector2(5, 1)
shape = SubResource("RectangleShape2D_f3sb7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
texture_repeat = 2
texture = ExtResource("1_l676e")
region_enabled = true
region_rect = Rect2(-80, -16, 80, 16)
+7 -3
View File
@@ -1,17 +1,21 @@
extends Node2D
@export var max_distance = 260.0
@export var max_distance_x = 100.0
@export var max_distance_y = 100.0
@export var moving = true
var alt_position = Vector2(position.x + max_distance,0)
var alt_position = Vector2(position.x + max_distance_x,0)
var alt_position2 = Vector2(position.x - max_distance_x,0)
@export var move_speed = 0.0
func _ready() -> void:
alt_position = Vector2(position.x + max_distance,0)
alt_position = Vector2(position.x + max_distance_x,0)
alt_position2 = Vector2(position.x - max_distance_x,0)
func _process(delta: float) -> void:
if position.x != alt_position.x:
position.x = move_toward(position.x, alt_position.x, move_speed)
else:
position.x = move_toward(position.x, alt_position2.x, move_speed)
moving = false
%Player2D.is_on_moving_platform = false
#%Player2D.platform_speed = 0.0
+6 -6
View File
@@ -5,8 +5,8 @@
[ext_resource type="Texture2D" uid="uid://dfdjachaibh2u" path="res://art/saw2.png" id="3_tse5f"]
[ext_resource type="Texture2D" uid="uid://cwvvgwo87pct0" path="res://art/saw3.png" id="4_yv4k5"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(32, 26)
[sub_resource type="CircleShape2D" id="CircleShape2D_axvpk"]
radius = 16.0
[sub_resource type="SpriteFrames" id="SpriteFrames_lmieu"]
animations = [{
@@ -25,8 +25,8 @@ animations = [{
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3uo2v"]
size = Vector2(34, 28)
[sub_resource type="CircleShape2D" id="CircleShape2D_xp7he"]
radius = 18.0
[node name="Saw" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0
@@ -34,7 +34,7 @@ freeze = true
script = ExtResource("1_reoe3")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
shape = SubResource("RectangleShape2D_f3sb7")
shape = SubResource("CircleShape2D_axvpk")
[node name="Sprite2D" type="AnimatedSprite2D" parent="." unique_id=790714481]
texture_filter = 1
@@ -48,7 +48,7 @@ rotation = -6.834404e-05
[node name="ShapeCast2D" type="CollisionShape2D" parent="Area2D" unique_id=934904308]
position = Vector2(-18.999523, -7.0012984)
shape = SubResource("RectangleShape2D_3uo2v")
shape = SubResource("CircleShape2D_xp7he")
[connection signal="body_entered" from="Area2D" to="." method="on_contact"]
[connection signal="body_exited" from="Area2D" to="." method="on_leave"]
+184
View File
@@ -0,0 +1,184 @@
[gd_scene format=3 uid="uid://b0swgdy4faaac"]
[ext_resource type="Script" uid="uid://by82tj263c628" path="res://saw_swinging.gd" id="1_6frwm"]
[ext_resource type="Texture2D" uid="uid://cpftgnwkpx1rp" path="res://art/saw.png" id="2_4wovf"]
[ext_resource type="Texture2D" uid="uid://dfdjachaibh2u" path="res://art/saw2.png" id="3_v0hit"]
[ext_resource type="Texture2D" uid="uid://cwvvgwo87pct0" path="res://art/saw3.png" id="4_h1a5w"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ryup7"]
radius = 16.0
[sub_resource type="Animation" id="Animation_vwlp5"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_3wt0e"]
resource_name = "fullswing_ccw"
length = 2.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, -6.2831855]
}
[sub_resource type="Animation" id="Animation_31jf1"]
resource_name = "fullswing_cw"
length = 2.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 6.2831855]
}
[sub_resource type="Animation" id="Animation_x3ve6"]
resource_name = "halfswing_ccw"
length = 4.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 5
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1, 2, 3, 4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [0.0, -1.3089969389957472, 0.0, 1.3089969389957472, 0.0]
}
[sub_resource type="Animation" id="Animation_xp7he"]
resource_name = "halfswing_ccw_2"
length = 4.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 5
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1, 2, 3, 4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [3.141592653589793, 1.8325957145940461, 3.141592653589793, 4.4505895925855405, 3.141592653589793]
}
[sub_resource type="Animation" id="Animation_g2k3i"]
resource_name = "halfswing_cw"
length = 4.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 5
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1, 2, 3, 4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [0.0, 1.3089969389957472, 0.0, -1.3089969389957472, 0.0]
}
[sub_resource type="Animation" id="Animation_axvpk"]
resource_name = "halfswing_cw_2"
length = 4.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 5
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1, 2, 3, 4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [3.141592653589793, 4.4505895925855405, 3.141592653589793, 1.8325957145940461, 3.141592653589793]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3wt0e"]
_data = {
&"RESET": SubResource("Animation_vwlp5"),
&"fullswing_ccw": SubResource("Animation_3wt0e"),
&"fullswing_cw": SubResource("Animation_31jf1"),
&"halfswing_ccw": SubResource("Animation_x3ve6"),
&"halfswing_ccw_2": SubResource("Animation_xp7he"),
&"halfswing_cw": SubResource("Animation_g2k3i"),
&"halfswing_cw_2": SubResource("Animation_axvpk")
}
[sub_resource type="SpriteFrames" id="SpriteFrames_lmieu"]
animations = [{
"frames": [{
"duration": 0.3,
"texture": ExtResource("2_4wovf")
}, {
"duration": 0.3,
"texture": ExtResource("3_v0hit")
}, {
"duration": 0.3,
"texture": ExtResource("4_h1a5w")
}],
"loop": 1,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_vwlp5"]
radius = 18.0
[node name="SawMoving" type="AnimatableBody2D" unique_id=1098290500]
script = ExtResource("1_6frwm")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1907671557]
position = Vector2(1.5258789e-05, 0)
shape = SubResource("CircleShape2D_ryup7")
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1221437574]
libraries/ = SubResource("AnimationLibrary_3wt0e")
[node name="SawBlade" type="AnimatedSprite2D" parent="." unique_id=760707152]
texture_filter = 1
position = Vector2(1.5258789e-05, 0)
sprite_frames = SubResource("SpriteFrames_lmieu")
autoplay = "default"
frame_progress = 0.40998712
[node name="Area2D" type="Area2D" parent="." unique_id=1356546922]
position = Vector2(19.000013, 7)
rotation = -6.834404e-05
[node name="ShapeCast2D" type="CollisionShape2D" parent="Area2D" unique_id=1586514592]
position = Vector2(-18.999523, -7.0012984)
shape = SubResource("CircleShape2D_vwlp5")
[connection signal="body_entered" from="Area2D" to="." method="on_contact"]
+28
View File
@@ -0,0 +1,28 @@
extends Node2D
@export var max_distance = 260.0
@export var spawn_delay = 0.0
var alt_position = Vector2(position.x + max_distance,0)
@export var fullswing_cw = false
@export var fullswing_ccw = false
@export var halfswing_cw = false
@export var halfswing_ccw = false
func _ready() -> void:
alt_position = Vector2(position.x + max_distance,0)
func _process(delta: float) -> void:
await get_tree().create_timer(spawn_delay).timeout
if fullswing_cw: $AnimationPlayer.play("fullswing_cw")
elif fullswing_ccw: $AnimationPlayer.play("fullswing_ccw")
elif halfswing_cw: $AnimationPlayer.play("halfswing_cw")
elif halfswing_ccw: $AnimationPlayer.play("halfswing_ccw")
else:
$AnimationPlayer.play("RESET")
%Player2D.is_on_moving_platform = false
func on_contact(body: Node2D) -> void:
if body==%Player2D and %Player2D.death_cooldown == 0:
print("SLASH KILL")
%Player2D/Jetpack/DeathSound.play()
%Player2D.on_death(false,%Player2D.position)
+1
View File
@@ -0,0 +1 @@
uid://by82tj263c628
+151
View File
@@ -0,0 +1,151 @@
[gd_scene format=3 uid="uid://dgxovyasrduo5"]
[ext_resource type="Script" uid="uid://by82tj263c628" path="res://saw_swinging.gd" id="1_n4mys"]
[ext_resource type="Texture2D" uid="uid://d22jcb3da431q" path="res://art/saw_chain.png" id="2_31jf1"]
[ext_resource type="Texture2D" uid="uid://cpftgnwkpx1rp" path="res://art/saw.png" id="2_vwlp5"]
[ext_resource type="Texture2D" uid="uid://dfdjachaibh2u" path="res://art/saw2.png" id="3_31jf1"]
[ext_resource type="Texture2D" uid="uid://cwvvgwo87pct0" path="res://art/saw3.png" id="4_3wt0e"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ryup7"]
radius = 16.0
[sub_resource type="Animation" id="Animation_vwlp5"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_3wt0e"]
resource_name = "fullswing_ccw"
length = 2.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, -6.2831855]
}
[sub_resource type="Animation" id="Animation_31jf1"]
resource_name = "fullswing_cw"
length = 2.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 6.2831855]
}
[sub_resource type="Animation" id="Animation_x3ve6"]
resource_name = "halfswing_ccw"
length = 2.0
loop_mode = 2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 5
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [1.3089969389957472, -1.3089969389957472]
}
[sub_resource type="Animation" id="Animation_g2k3i"]
resource_name = "halfswing_cw"
length = 2.0
loop_mode = 2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 5
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [-1.3089969389957472, 1.3089969389957472]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3wt0e"]
_data = {
&"RESET": SubResource("Animation_vwlp5"),
&"fullswing_ccw": SubResource("Animation_3wt0e"),
&"fullswing_cw": SubResource("Animation_31jf1"),
&"halfswing_ccw": SubResource("Animation_x3ve6"),
&"halfswing_cw": SubResource("Animation_g2k3i")
}
[sub_resource type="SpriteFrames" id="SpriteFrames_lmieu"]
animations = [{
"frames": [{
"duration": 0.3,
"texture": ExtResource("2_vwlp5")
}, {
"duration": 0.3,
"texture": ExtResource("3_31jf1")
}, {
"duration": 0.3,
"texture": ExtResource("4_3wt0e")
}],
"loop": 1,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_vwlp5"]
radius = 18.0
[node name="SawSwinging" type="AnimatableBody2D" unique_id=1098290500]
script = ExtResource("1_n4mys")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1907671557]
position = Vector2(1.5195612e-05, 76)
shape = SubResource("CircleShape2D_ryup7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=141912847]
position = Vector2(5.9447484e-06, 34)
texture = ExtResource("2_31jf1")
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1221437574]
libraries/ = SubResource("AnimationLibrary_3wt0e")
[node name="SawBlade" type="AnimatedSprite2D" parent="." unique_id=760707152]
texture_filter = 1
position = Vector2(1.5195612e-05, 76)
sprite_frames = SubResource("SpriteFrames_lmieu")
autoplay = "default"
frame_progress = 0.40998712
[node name="Area2D" type="Area2D" parent="." unique_id=1356546922]
position = Vector2(19.000013, 83)
rotation = -6.834404e-05
[node name="ShapeCast2D" type="CollisionShape2D" parent="Area2D" unique_id=1586514592]
position = Vector2(-18.999523, -7.0012984)
shape = SubResource("CircleShape2D_vwlp5")
[connection signal="body_entered" from="Area2D" to="." method="on_contact"]
+28
View File
@@ -0,0 +1,28 @@
extends Node2D
@export var max_distance = 260.0
@export var spawn_delay = 0.0
var alt_position = Vector2(position.x + max_distance,0)
@export var halfswing_cw = false
@export var halfswing_ccw = false
@export var halfswing_cw_2 = false
@export var halfswing_ccw_2 = false
func _ready() -> void:
alt_position = Vector2(position.x + max_distance,0)
func _process(delta: float) -> void:
await get_tree().create_timer(spawn_delay).timeout
if halfswing_cw: $AnimationPlayer.play("halfswing_cw")
elif halfswing_ccw: $AnimationPlayer.play("halfswing_ccw")
elif halfswing_cw_2: $AnimationPlayer.play("halfswing_cw_2")
elif halfswing_ccw_2: $AnimationPlayer.play("halfswing_ccw_2")
else:
$AnimationPlayer.play("RESET")
%Player2D.is_on_moving_platform = false
func on_contact(body: Node2D) -> void:
if body==%Player2D and %Player2D.death_cooldown == 0:
print("SLASH KILL")
%Player2D/Jetpack/DeathSound.play()
%Player2D.on_death(false,%Player2D.position)
+1
View File
@@ -0,0 +1 @@
uid://chhyeigrkk5ux
+190
View File
@@ -0,0 +1,190 @@
[gd_scene format=3 uid="uid://c4o2dhhuwq4ty"]
[ext_resource type="Script" uid="uid://chhyeigrkk5ux" path="res://saw_swinging_b.gd" id="1_xp7he"]
[ext_resource type="Texture2D" uid="uid://d22jcb3da431q" path="res://art/saw_chain.png" id="2_axvpk"]
[ext_resource type="Texture2D" uid="uid://cpftgnwkpx1rp" path="res://art/saw.png" id="3_rlgbm"]
[ext_resource type="Texture2D" uid="uid://dfdjachaibh2u" path="res://art/saw2.png" id="4_42yyr"]
[ext_resource type="Texture2D" uid="uid://cwvvgwo87pct0" path="res://art/saw3.png" id="5_xd3ji"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ryup7"]
radius = 16.0
[sub_resource type="Animation" id="Animation_vwlp5"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_3wt0e"]
resource_name = "fullswing_ccw"
length = 2.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, -6.2831855]
}
[sub_resource type="Animation" id="Animation_31jf1"]
resource_name = "fullswing_cw"
length = 2.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 6.2831855]
}
[sub_resource type="Animation" id="Animation_x3ve6"]
resource_name = "halfswing_ccw"
length = 4.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 5
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1, 2, 3, 4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [0.0, -1.3089969389957472, 0.0, 1.3089969389957472, 0.0]
}
[sub_resource type="Animation" id="Animation_xp7he"]
resource_name = "halfswing_ccw_2"
length = 4.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 5
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1, 2, 3, 4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [3.141592653589793, 1.8325957145940461, 3.141592653589793, 4.4505895925855405, 3.141592653589793]
}
[sub_resource type="Animation" id="Animation_g2k3i"]
resource_name = "halfswing_cw"
length = 4.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 5
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1, 2, 3, 4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [0.0, 1.3089969389957472, 0.0, -1.3089969389957472, 0.0]
}
[sub_resource type="Animation" id="Animation_axvpk"]
resource_name = "halfswing_cw_2"
length = 4.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 5
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1, 2, 3, 4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [3.141592653589793, 4.4505895925855405, 3.141592653589793, 1.8325957145940461, 3.141592653589793]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3wt0e"]
_data = {
&"RESET": SubResource("Animation_vwlp5"),
&"fullswing_ccw": SubResource("Animation_3wt0e"),
&"fullswing_cw": SubResource("Animation_31jf1"),
&"halfswing_ccw": SubResource("Animation_x3ve6"),
&"halfswing_ccw_2": SubResource("Animation_xp7he"),
&"halfswing_cw": SubResource("Animation_g2k3i"),
&"halfswing_cw_2": SubResource("Animation_axvpk")
}
[sub_resource type="SpriteFrames" id="SpriteFrames_lmieu"]
animations = [{
"frames": [{
"duration": 0.3,
"texture": ExtResource("3_rlgbm")
}, {
"duration": 0.3,
"texture": ExtResource("4_42yyr")
}, {
"duration": 0.3,
"texture": ExtResource("5_xd3ji")
}],
"loop": 1,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_vwlp5"]
radius = 18.0
[node name="SawSwingingB" type="AnimatableBody2D" unique_id=1098290500]
script = ExtResource("1_xp7he")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1907671557]
position = Vector2(1.5195612e-05, 76)
shape = SubResource("CircleShape2D_ryup7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=141912847]
position = Vector2(5.9447484e-06, 34)
texture = ExtResource("2_axvpk")
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1221437574]
libraries/ = SubResource("AnimationLibrary_3wt0e")
speed_scale = 1.5
[node name="SawBlade" type="AnimatedSprite2D" parent="." unique_id=760707152]
texture_filter = 1
position = Vector2(1.5195612e-05, 76)
sprite_frames = SubResource("SpriteFrames_lmieu")
autoplay = "default"
frame_progress = 0.40998712
[node name="Area2D" type="Area2D" parent="." unique_id=1356546922]
position = Vector2(19.000013, 83)
rotation = -6.834404e-05
[node name="ShapeCast2D" type="CollisionShape2D" parent="Area2D" unique_id=1586514592]
position = Vector2(-18.999523, -7.0012984)
shape = SubResource("CircleShape2D_vwlp5")
[connection signal="body_entered" from="Area2D" to="." method="on_contact"]
+21
View File
@@ -0,0 +1,21 @@
[gd_scene format=3 uid="uid://c6u0t3ur7qbj6"]
[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_78i3v"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(16, 14)
[node name="VerticalDoubleBlockS" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0
freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
scale = Vector2(1, 2.29)
shape = SubResource("RectangleShape2D_f3sb7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
texture_repeat = 2
rotation = 1.5707964
texture = ExtResource("1_78i3v")
region_enabled = true
region_rect = Rect2(-32, 16, 32, 16)
+21
View File
@@ -0,0 +1,21 @@
[gd_scene format=3 uid="uid://cdgp3pqy2ioid"]
[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_514qt"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(16, 14)
[node name="VerticalLongBlockS" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0
freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
scale = Vector2(1, 11.4)
shape = SubResource("RectangleShape2D_f3sb7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
texture_repeat = 2
rotation = 1.5707964
texture = ExtResource("1_514qt")
region_enabled = true
region_rect = Rect2(-160, 16, 160, 16)
+21
View File
@@ -0,0 +1,21 @@
[gd_scene format=3 uid="uid://bydpw6svxkwk4"]
[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_74jic"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(16, 14)
[node name="VerticalLongishBlockS" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0
freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
scale = Vector2(1, 5.7)
shape = SubResource("RectangleShape2D_f3sb7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
texture_repeat = 2
rotation = 1.5707964
texture = ExtResource("1_74jic")
region_enabled = true
region_rect = Rect2(-80, 16, 80, 16)
+224
View File
@@ -36,7 +36,17 @@
[ext_resource type="PackedScene" uid="uid://div6quttr84u1" path="res://horizontal_moving_block.tscn" id="34_w44yn"]
[ext_resource type="PackedScene" uid="uid://b61sumdnt0qqh" path="res://hidden_horizontal_moving_block.tscn" id="35_6ah6f"]
[ext_resource type="PackedScene" uid="uid://c13khrhjy5nrj" path="res://saw.tscn" id="37_my276"]
[ext_resource type="PackedScene" uid="uid://crmvdya3m7mll" path="res://level_border_block_h.tscn" id="38_1ew0l"]
[ext_resource type="PackedScene" uid="uid://bnuiagw3bblfh" path="res://hat_pickup.tscn" id="38_yx0jh"]
[ext_resource type="PackedScene" uid="uid://b4221qweamyvs" path="res://level_border_block_v.tscn" id="39_ryup7"]
[ext_resource type="PackedScene" uid="uid://dgxovyasrduo5" path="res://saw_swinging.tscn" id="40_ryup7"]
[ext_resource type="PackedScene" uid="uid://cdgp3pqy2ioid" path="res://vertical_long_block_s.tscn" id="41_xpnt2"]
[ext_resource type="PackedScene" uid="uid://c6n6v8ko733yd" path="res://long_block_s.tscn" id="42_ruyqm"]
[ext_resource type="PackedScene" uid="uid://bydpw6svxkwk4" path="res://vertical_longish_block_s.tscn" id="43_fnoqa"]
[ext_resource type="PackedScene" uid="uid://c6u0t3ur7qbj6" path="res://vertical_double_block_s.tscn" id="44_nx736"]
[ext_resource type="PackedScene" uid="uid://1wpbevbqjvxc" path="res://double_block_s.tscn" id="45_55kwu"]
[ext_resource type="PackedScene" uid="uid://c4o2dhhuwq4ty" path="res://saw_swinging_b.tscn" id="46_ruyqm"]
[ext_resource type="PackedScene" uid="uid://hqmkjtv5shyk" path="res://down_spike.tscn" id="47_fnoqa"]
[node name="World" type="Node2D" unique_id=1327991900]
process_mode = 1
@@ -2765,4 +2775,218 @@ hat_type = "cap1"
position = Vector2(8510, -958.0709)
hat_type = "wizard1"
[node name="LevelBorderBlockH" parent="." unique_id=974826545 instance=ExtResource("38_1ew0l")]
position = Vector2(-4760, -1535.0798)
[node name="LevelBorderBlockH3" parent="." unique_id=1943781212 instance=ExtResource("38_1ew0l")]
position = Vector2(-6716, -100.435)
[node name="LevelBorderBlockH2" parent="." unique_id=203676189 instance=ExtResource("38_1ew0l")]
position = Vector2(-4760, -2058.9175)
[node name="LevelBorderBlockV" parent="." unique_id=1863499464 instance=ExtResource("39_ryup7")]
position = Vector2(-5264, -1796.9983)
[node name="LevelBorderBlockV2" parent="." unique_id=1584857951 instance=ExtResource("39_ryup7")]
position = Vector2(-4256, -1796.9983)
[node name="TeleporterLevelSelect" parent="." unique_id=1457473782 instance=ExtResource("4_gbfbk")]
position = Vector2(-5222, 353.49173)
paired_teleporter = "LVLSELECT"
[node name="TeleporterLevelSelect2" parent="." unique_id=639660602 instance=ExtResource("4_gbfbk")]
position = Vector2(-7174, -172.31491)
paired_teleporter = "LVLSELECT"
[node name="TeleporterLv1A2" parent="." unique_id=503216712 instance=ExtResource("4_gbfbk")]
position = Vector2(-6987, -128.99002)
paired_teleporter = "LVL1A"
[node name="TeleporterLv1B2" parent="." unique_id=527073843 instance=ExtResource("4_gbfbk")]
position = Vector2(-7021, -687.29034)
paired_teleporter = "LVL1B"
[node name="TeleporterLv1A" parent="." unique_id=789720442 instance=ExtResource("4_gbfbk")]
position = Vector2(-5228, -1644.3766)
paired_teleporter = "LVL1A"
[node name="TeleporterLv1B" parent="." unique_id=1909239859 instance=ExtResource("4_gbfbk")]
position = Vector2(-4305, -1570.5273)
paired_teleporter = "LVL1B"
[node name="Sign15" parent="." unique_id=1071149314 instance=ExtResource("24_wjb0r")]
position = Vector2(-7176, -110.28155)
sign_text = "LEVEL SELECT"
[node name="Sign17" parent="." unique_id=364469894 instance=ExtResource("24_wjb0r")]
position = Vector2(-7176, -110.28155)
sign_text = "LEVEL SELECT"
[node name="Sign16" parent="." unique_id=671241159 instance=ExtResource("24_wjb0r")]
position = Vector2(-7078, -142.77518)
scale = Vector2(-1, -1)
sign_text = "LEVEL 1"
[node name="LongBlock12" parent="." unique_id=514950089 instance=ExtResource("3_dwbse")]
position = Vector2(-7031, -151.63712)
[node name="SawSwinging" parent="." unique_id=1098290500 instance=ExtResource("40_ryup7")]
position = Vector2(-5048, -1800.937)
fullswing_cw = true
[node name="SawSwinging7" parent="." unique_id=564257755 instance=ExtResource("40_ryup7")]
position = Vector2(-5131, -2056.9465)
spawn_delay = 1.5
fullswing_ccw = true
[node name="SawSwinging8" parent="." unique_id=1057653964 instance=ExtResource("40_ryup7")]
position = Vector2(-5265, -2056.9465)
fullswing_cw = true
[node name="SawSwinging2" parent="." unique_id=1548905534 instance=ExtResource("40_ryup7")]
position = Vector2(-4788, -1800.937)
fullswing_cw = true
[node name="SawSwinging3" parent="." unique_id=1600959540 instance=ExtResource("40_ryup7")]
position = Vector2(-4583, -1694.5941)
fullswing_cw = true
[node name="SawSwinging4" parent="." unique_id=1089263633 instance=ExtResource("40_ryup7")]
position = Vector2(-4583, -1890.5406)
fullswing_ccw = true
[node name="Saw6" parent="." unique_id=960224204 instance=ExtResource("37_my276")]
position = Vector2(-4916, -1799.9523)
[node name="Saw7" parent="." unique_id=1044426919 instance=ExtResource("37_my276")]
position = Vector2(-4916, -1650.2844)
[node name="Saw10" parent="." unique_id=1793805616 instance=ExtResource("37_my276")]
position = Vector2(-4916, -1545.9109)
[node name="Saw13" parent="." unique_id=1372152815 instance=ExtResource("37_my276")]
position = Vector2(-5161, -1545.9109)
[node name="Saw11" parent="." unique_id=1617763882 instance=ExtResource("37_my276")]
position = Vector2(-4376, -2048.0857)
[node name="Saw12" parent="." unique_id=316237595 instance=ExtResource("37_my276")]
position = Vector2(-4376, -1542.9564)
[node name="Saw8" parent="." unique_id=855093163 instance=ExtResource("37_my276")]
position = Vector2(-4621, -1567.5734)
[node name="Saw9" parent="." unique_id=1835080331 instance=ExtResource("37_my276")]
position = Vector2(-4545, -1567.5734)
[node name="VerticalLongBlockS" parent="." unique_id=1771329865 instance=ExtResource("41_xpnt2")]
position = Vector2(-5131, -1974.2366)
[node name="VerticalLongBlockS2" parent="." unique_id=1534400762 instance=ExtResource("41_xpnt2")]
position = Vector2(-5131, -1621.7292)
[node name="VerticalLongBlockS6" parent="." unique_id=483239911 instance=ExtResource("41_xpnt2")]
position = Vector2(-5192, -1621.7292)
[node name="VerticalLongBlockS7" parent="." unique_id=1103722376 instance=ExtResource("41_xpnt2")]
position = Vector2(-5192, -1781.2434)
[node name="VerticalLongBlockS8" parent="." unique_id=1021386434 instance=ExtResource("41_xpnt2")]
position = Vector2(-5192, -1923.0339)
[node name="VerticalLongBlockS3" parent="." unique_id=1935447756 instance=ExtResource("41_xpnt2")]
position = Vector2(-5131, -1878.7252)
[node name="LongBlockS" parent="." unique_id=366742113 instance=ExtResource("42_ruyqm")]
position = Vector2(-5045, -1921.0651)
[node name="VerticalLongishBlockS" parent="." unique_id=2077142940 instance=ExtResource("43_fnoqa")]
position = Vector2(-4972, -1966.3594)
[node name="VerticalLongishBlockS2" parent="." unique_id=553307512 instance=ExtResource("43_fnoqa")]
position = Vector2(-4847, -1580.3744)
[node name="VerticalDoubleBlockS" parent="." unique_id=1030244604 instance=ExtResource("44_nx736")]
position = Vector2(-4972, -2022.4846)
[node name="VerticalDoubleBlockS2" parent="." unique_id=1638795877 instance=ExtResource("44_nx736")]
position = Vector2(-4982, -1555.7573)
[node name="Block35" parent="." unique_id=780204810 instance=ExtResource("25_mc2jv")]
position = Vector2(-4972, -2045.1316)
[node name="DoubleBlockS" parent="." unique_id=1178926121 instance=ExtResource("45_55kwu")]
position = Vector2(-5048, -1801.9218)
[node name="DoubleBlockS2" parent="." unique_id=1252003938 instance=ExtResource("45_55kwu")]
position = Vector2(-4788, -1801.9218)
[node name="SawSwinging5" parent="." unique_id=1227610881 instance=ExtResource("40_ryup7")]
position = Vector2(-4352, -1796.0132)
fullswing_cw = true
[node name="SawSwinging9" parent="." unique_id=653414671 instance=ExtResource("40_ryup7")]
position = Vector2(-4303, -2054.9783)
fullswing_cw = true
[node name="SawSwinging10" parent="." unique_id=2137330479 instance=ExtResource("40_ryup7")]
position = Vector2(-4303, -2054.9783)
spawn_delay = 0.5
fullswing_ccw = true
[node name="SawSwinging6" parent="." unique_id=87552658 instance=ExtResource("40_ryup7")]
position = Vector2(-4352, -1796.0132)
scale = Vector2(-1, -1)
spawn_delay = 1.0
fullswing_cw = true
[node name="DoubleBlockS5" parent="." unique_id=1778950439 instance=ExtResource("45_55kwu")]
position = Vector2(-4352, -1796.9985)
[node name="DoubleBlockS3" parent="." unique_id=1205670033 instance=ExtResource("45_55kwu")]
position = Vector2(-4583, -1891.5259)
[node name="DoubleBlockS4" parent="." unique_id=785942200 instance=ExtResource("45_55kwu")]
position = Vector2(-4583, -1695.5793)
[node name="SawSwingingB" parent="." unique_id=1184270235 instance=ExtResource("46_ruyqm")]
position = Vector2(-4696, -2053.0088)
halfswing_cw = true
[node name="SawSwingingB2" parent="." unique_id=345082484 instance=ExtResource("46_ruyqm")]
position = Vector2(-4483, -2053.0088)
spawn_delay = 0.3
halfswing_ccw = true
[node name="SawSwingingB3" parent="." unique_id=225166195 instance=ExtResource("46_ruyqm")]
position = Vector2(-5055, -1533.1104)
halfswing_cw_2 = true
[node name="SawSwingingB4" parent="." unique_id=1694721354 instance=ExtResource("46_ruyqm")]
position = Vector2(-4790, -1533.1105)
spawn_delay = 0.3
halfswing_ccw_2 = true
[node name="VerticalLongBlockS4" parent="." unique_id=1000566359 instance=ExtResource("41_xpnt2")]
position = Vector2(-4352, -1973.2518)
[node name="VerticalLongBlockS5" parent="." unique_id=1164828260 instance=ExtResource("41_xpnt2")]
position = Vector2(-4352, -1620.7446)
[node name="Pharaoh8" parent="." unique_id=1265608911 instance=ExtResource("15_hiqwa")]
position = Vector2(-5228, -1540.9878)
[node name="Spike19" parent="." unique_id=1013613610 instance=ExtResource("47_fnoqa")]
position = Vector2(-4920, -2045.1318)
[node name="Spike20" parent="." unique_id=722069947 instance=ExtResource("47_fnoqa")]
position = Vector2(-4904, -2045.1318)
[node name="Spike21" parent="." unique_id=755059167 instance=ExtResource("47_fnoqa")]
position = Vector2(-4870, -2045.1318)
[node name="HatPickup5" parent="." unique_id=2139510891 instance=ExtResource("38_yx0jh")]
position = Vector2(-4303, -2014.6074)
hat_type = "meatboy3"
[connection signal="toggled" from="CanvasLayer/MusicButton" to="CanvasLayer/MusicButton" method="_on_toggled"]