From c5b441196b8b7034667607728ae309f829640d7f Mon Sep 17 00:00:00 2001 From: Wynd Date: Sat, 21 Sep 2024 23:38:05 +0300 Subject: [PATCH] Added button sfx and, export presets and checkpoints --- .gitignore | 1 + entities/player/player.gd | 13 ++- export_presets.cfg | 146 ++++++++++++++++++++++++ puzzles/button/button.gd | 4 +- puzzles/button/button.tscn | 7 +- puzzles/checkpoint.gd | 9 ++ puzzles/room_manager/prison_manager.gd | 8 ++ scenes/assets/jingles/button.ceol | 1 + scenes/assets/jingles/button.wav | Bin 0 -> 106540 bytes scenes/assets/jingles/button.wav.import | 24 ++++ scenes/assets/tileset.png | Bin 1018 -> 1034 bytes scenes/main.tscn | 115 +++++++++++++++---- 12 files changed, 302 insertions(+), 26 deletions(-) create mode 100644 export_presets.cfg create mode 100644 puzzles/checkpoint.gd create mode 100644 scenes/assets/jingles/button.ceol create mode 100644 scenes/assets/jingles/button.wav create mode 100644 scenes/assets/jingles/button.wav.import diff --git a/.gitignore b/.gitignore index 0af181c..26ac34b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ # Godot 4+ specific ignores .godot/ /android/ +out/ diff --git a/entities/player/player.gd b/entities/player/player.gd index 73f05c4..e7542fc 100644 --- a/entities/player/player.gd +++ b/entities/player/player.gd @@ -6,12 +6,14 @@ extends CharacterBody2D @onready var map: MainLevel = get_tree().root.get_child(0).get_node("TileMap") @onready var tile_map: TileMapLayer = get_tree().root.get_child(0).get_node("TileMap/TileMapLayer") @onready var camera: Camera2D = $Sprite2D/Camera2D - -@export var speed: float = 40 -@export var respawn_point: Marker2D +@onready var start_point: Node2D = get_tree().root.get_child(0).get_node("Start") const TILE_SIZE = 8 +@export var speed: float = 40 +@export var checkpoints: Array[Node2D] +@export var current_checkpoint := 0 + var is_moving = false var should_move = false var is_dead = false @@ -41,7 +43,10 @@ func _physics_process(delta): _try_move(delta) func _respawn(): - position = respawn_point.position + if checkpoints.size() > 0 and checkpoints[current_checkpoint]: + position = checkpoints[current_checkpoint].position + else: + position = start_point.position sprite.global_position = position is_dead = false is_moving = false diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..7097567 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,146 @@ +[preset.0] + +name="Web" +platform="Web" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="out/web/GBJAM12.html" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +variant/extensions_support=false +variant/thread_support=false +vram_texture_compression/for_desktop=true +vram_texture_compression/for_mobile=false +html/export_icon=true +html/custom_html_shell="" +html/head_include="" +html/canvas_resize_policy=2 +html/focus_canvas_on_start=true +html/experimental_virtual_keyboard=false +progressive_web_app/enabled=false +progressive_web_app/ensure_cross_origin_isolation_headers=true +progressive_web_app/offline_page="" +progressive_web_app/display=1 +progressive_web_app/orientation=0 +progressive_web_app/icon_144x144="" +progressive_web_app/icon_180x180="" +progressive_web_app/icon_512x512="" +progressive_web_app/background_color=Color(0, 0, 0, 1) + +[preset.1] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="out/win/GBJAM12.exe" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +binary_format/architecture="x86_64" +codesign/enable=false +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PackedStringArray() +application/modify_resources=true +application/icon="" +application/console_wrapper_icon="" +application/icon_interpolation=4 +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="" +application/file_description="" +application/copyright="" +application/trademarks="" +application/export_angle=0 +application/export_d3d12=0 +application/d3d12_agility_sdk_multiarch=true +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' +$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' +$trigger = New-ScheduledTaskTrigger -Once -At 00:00 +$settings = New-ScheduledTaskSettingsSet +$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings +Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true +Start-ScheduledTask -TaskName godot_remote_debug +while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" +ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue +Remove-Item -Recurse -Force '{temp_dir}'" + +[preset.2] + +name="Linux" +platform="Linux" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="out/linux/GBJAM12.x86_64" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.2.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +binary_format/architecture="x86_64" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +export DISPLAY=:0 +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +\"{temp_dir}/{exe_name}\" {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" diff --git a/puzzles/button/button.gd b/puzzles/button/button.gd index 4a8ac05..004be2d 100644 --- a/puzzles/button/button.gd +++ b/puzzles/button/button.gd @@ -1,7 +1,8 @@ class_name GroundButton extends Area2D -@onready var sprite = $Sprite2D +@onready var sprite: Sprite2D = $Sprite2D +@onready var audio_player: AudioStreamPlayer2D = $AudioStreamPlayer2D @export var nodes: Array[Node2D] @export var is_active = false @@ -15,6 +16,7 @@ func _on_body_entered(body): if body is Player: is_active = not is_active _flip() + audio_player.play() func _flip(): $Sprite2D.frame = 1 if is_active else 0 diff --git a/puzzles/button/button.tscn b/puzzles/button/button.tscn index 1228061..cf76772 100644 --- a/puzzles/button/button.tscn +++ b/puzzles/button/button.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=4 format=3 uid="uid://bdlyuun4o4val"] +[gd_scene load_steps=5 format=3 uid="uid://bdlyuun4o4val"] [ext_resource type="Texture2D" uid="uid://d02y0dsfaynbl" path="res://puzzles/assets/button.png" id="1_atyp4"] [ext_resource type="Script" path="res://puzzles/button/button.gd" id="1_gpasp"] +[ext_resource type="AudioStream" uid="uid://scqlma1158w3" path="res://scenes/assets/jingles/button.wav" id="3_b8x25"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_xj0k4"] size = Vector2(6, 6) @@ -16,4 +17,8 @@ hframes = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("RectangleShape2D_xj0k4") +[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource("3_b8x25") +volume_db = -6.0 + [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/puzzles/checkpoint.gd b/puzzles/checkpoint.gd new file mode 100644 index 0000000..3b4075f --- /dev/null +++ b/puzzles/checkpoint.gd @@ -0,0 +1,9 @@ +extends Node + +@onready var player: Player = get_tree().root.get_child(0).get_node("Player") + +@export var checkpoint_id := 0 + +func _on_body_entered(body): + if body is Player: + (body as Player).current_checkpoint = checkpoint_id diff --git a/puzzles/room_manager/prison_manager.gd b/puzzles/room_manager/prison_manager.gd index b7cf655..3651c5f 100644 --- a/puzzles/room_manager/prison_manager.gd +++ b/puzzles/room_manager/prison_manager.gd @@ -1,6 +1,14 @@ extends PuzzleManager @export var next_room_wall: Node2D +@export var box_puzzle_light: Sprite2D +@export var switch_puzzle_light: Sprite2D func _on_finish_room(): next_room_wall.queue_free() + +func _on_simple_box_puzzle_complete_puzzle(): + box_puzzle_light.frame = 17 + +func _on_simple_switch_puzzle_complete_puzzle(): + switch_puzzle_light.frame = 17 diff --git a/scenes/assets/jingles/button.ceol b/scenes/assets/jingles/button.ceol new file mode 100644 index 0000000..5b9b27b --- /dev/null +++ b/scenes/assets/jingles/button.ceol @@ -0,0 +1 @@ +3,0,0,0,120,4,4,1,94,0,4,128,0,256,1,0,0,0,0,1,36,2,0,0,0,1,0,1,0,-1,-1,-1,-1,-1,-1,-1, \ No newline at end of file diff --git a/scenes/assets/jingles/button.wav b/scenes/assets/jingles/button.wav new file mode 100644 index 0000000000000000000000000000000000000000..4371260e6a7311dca3ead3814114b4928211c1fd GIT binary patch literal 106540 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
;&cC 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 bcNNER4B;C4+NiZbuG8n&6pX?M^v3@KFr(4j literal 0 HcmV?d00001 diff --git a/scenes/assets/jingles/button.wav.import b/scenes/assets/jingles/button.wav.import new file mode 100644 index 0000000..9eedb65 --- /dev/null +++ b/scenes/assets/jingles/button.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://scqlma1158w3" +path="res://.godot/imported/button.wav-2051c3133f81351a8e18d5705f2e0936.sample" + +[deps] + +source_file="res://scenes/assets/jingles/button.wav" +dest_files=["res://.godot/imported/button.wav-2051c3133f81351a8e18d5705f2e0936.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/scenes/assets/tileset.png b/scenes/assets/tileset.png index ffb3087e9f7446bded249e408828b379c4f6eb3f..aee0db72c8be87341bc87962502dd52efed6a350 100644 GIT binary patch delta 999 zcmVCiH8xtM_8X)KSB5~4^b!`uuW*gE zSf|NX5Jf_ISp-QLEc^!6S80>RLW{j3H=B90Gw(fhJumuxu-_!AEEYU*wkuVFTs!qx4yvEFEPV9@KrY%#9T_K%QWq-Ny0G}LCDOaIVu0o^LN!KVp z@KnS3g|C9UfGWKWDN@WPQ&o=mxlg*ik37eGUo7X)Xmv8FMEeK;fD4xrw$Mf4w>1=1 z-o*hf2VqaoQ7KoAJ>&iTIK4X!fC5utcC8FrMC^k>udDX@X*Cdt5)D$c2_oezANxWh zLKg=tmVa~gofzgCd^o@;gPMn3Dc}p&XEA`B3a&oDR_9%fQenMWS^EH=PHP{$3?B>i zsGZ>0=NWn)$2()aStaYuDtU`vjXS;SQ9CJ>E{&@mwY~RCrAuRs7aG4FwUccWq37}U zC7Go$Un{IPs|3T0-vP{467vyB2U&JJ8p2{ZPk+~OO!p}$J4;^FB0)NrTLjoH^cM9T z^)g+ja~=is40-_ofS$K0g!_1&%P&PDzxa7)8FX=g@BZC=1mn>#Q=c_O0X`$aW|VC? zDs!HDTjB!E!>$P7`6hV+;4=cWNZ_955x{d?I;-)6Q3WI}z^^S^9=rDG9!3I=UxtsF zPk(ZJmPY{pjraH8hvxvvx_QiL70~h(Wwh<@E041e`2OvOS8YBPd?P@OP+R?X8Rvh1 zZy%ubDPkXhm`$eevvzY55dZ)N_oQ%fK<*Of3|oHlsFwKPY&bxLt^R+N2;hCjHkH8n zE$~$$z}2Uy`05-Wb(vBZda`}Mz9?#cKwxO=CkKi6C?OtOzC$CVz_A55Hj4b8lCy)Y z2?`tlfdft+83UXhCusFQaKK*#4mfdyZ-MYFaONBk5D*X$5D*X$5D*X$5D;*F_yg%D V#!|;dU*`Y-002ovPDHLkV1gn+&65BC delta 983 zcmV;|11S882>J(*F@Lm4L_t(|ob8#tZsI@?$Hypl#WilAqUH@!L|2|7Aw(ZV2*fK~ zlNwQ{$txfbiqc0G5=t3S@CMXZL6e383SW^MXLdaM0rp-L*q>xMyIzK!-I@Q6NfgKR z6bvMfW7A_NTDLu|oy+ShSk4!4d3~kycl!gFjE1nBFLL9N<$rtu597pX4zuT}(r&gp z000n`y#VN}?#|(kON$}((>5*^h4$5|4RNmP&8qwb0LbsSsr@ica+BxSoVUSuA8EEb zP_cg6LhH7t+yU~7COMDe(Rmu`)G5h%yf5bqn2d(mh4y&cL@5zq%5mFxDcmV#Xu#}w zsw_HEN(2DpcYm1Pc|RXd;X4oT?l3wnrGaVZX=)W0Xi}bXx;Xdi%*`T>(hN+ z5+N6k(E#2D0Pwrl%KB)#Vsp?mY5L42dXg@nBj^lPg@3e7o#oC0d}u(e+JIWM0p0!} z>!bR>Qw`e}t_~gpb@~udq%7wP?L3mlF{$?6^BnViy;(uGKggvLts?*cE^JPiLKi20 z=t5EFZ5m+PAgt**wQ56orq~}R+1@*OB5*MUmnuwIM z{BKuuLVsw}fc0jjwTWS_!$kv>V^FulwiIy1_F4=er-H2xFrD+ZLMhtqx5hf)`?nvF z(Sn7W&YjWz)AT;VF;CNbr|+WUZT79~_Sa7P%A9$h>3OusEY(?T+s;do&snem70oL zw?BZV>3#M-f(v6?09??ww?E4KO?5xQzu)N?ECPy9v)zH&^E7upOK?pv?Xt_;pm99U z4XymDxyJbF8X#4f zwDLRoI-n>OUAbFE8T=)XgpUg1XV1?!Ay5TAdjg+Lh5x7I>@XEUK?5LYz{!(afV0yC z(+{FS10ZO?$rIiM!n?qkYd|0n2m}IwKp+qZ1OkEc<1f{8wa}@#6!riB002ovPDHLk FV1mTn;fDYK diff --git a/scenes/main.tscn b/scenes/main.tscn index 08924a3..a7720db 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=32 format=4 uid="uid://cbg46c4q2ian4"] +[gd_scene load_steps=37 format=4 uid="uid://cbg46c4q2ian4"] [ext_resource type="TileSet" uid="uid://beqyyhtlgk8tg" path="res://scenes/assets/main_tileset.tres" id="1_maeo5"] [ext_resource type="PackedScene" uid="uid://chmxabjea27ay" path="res://puzzles/grave/grave.tscn" id="2_fe1sr"] @@ -7,6 +7,7 @@ [ext_resource type="PackedScene" uid="uid://cjus07bbbn4wd" path="res://puzzles/box/box.tscn" id="3_jiwuy"] [ext_resource type="AudioStream" uid="uid://dptmnectas0m2" path="res://scenes/assets/jingles/grave_jingle1.wav" id="3_v8h4p"] [ext_resource type="PackedScene" uid="uid://c2qq84wh76mkx" path="res://puzzles/box/box_switch.tscn" id="4_7yk3l"] +[ext_resource type="Script" path="res://puzzles/checkpoint.gd" id="4_8rbbs"] [ext_resource type="Script" path="res://puzzles/room_manager/prison_manager.gd" id="4_fpjs2"] [ext_resource type="AudioStream" uid="uid://b6gukjjv4o82b" path="res://scenes/assets/jingles/grave_jingle4.wav" id="4_xmwgp"] [ext_resource type="Script" path="res://puzzles/grave_puzzle.gd" id="8_sr3y5"] @@ -26,6 +27,18 @@ [ext_resource type="Script" path="res://puzzles/room_manager/ball_course_manager.gd" id="22_oli26"] [ext_resource type="Script" path="res://puzzles/button/ball_button.gd" id="23_sf041"] +[sub_resource type="RectangleShape2D" id="RectangleShape2D_xcgii"] +size = Vector2(26, 48) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_j3x8b"] +size = Vector2(16, 56) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_265wp"] +size = Vector2(32, 56) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_t0k1c"] +size = Vector2(16, 32) + [sub_resource type="RectangleShape2D" id="RectangleShape2D_x2olj"] size = Vector2(17, 8) @@ -56,17 +69,58 @@ tile_map_data = PackedByteArray("AAAUAAAAAAAAAAAAAAAUAAEAAAAAAAAAAAAUAAIAAAAAAAA tile_set = ExtResource("1_maeo5") metadata/_edit_lock_ = true -[node name="PlayerRespawn" type="Marker2D" parent="."] +[node name="Start" type="Marker2D" parent="."] position = Vector2(-180, 284) -[node name="Player" parent="." node_paths=PackedStringArray("respawn_point") instance=ExtResource("2_w5xov")] +[node name="Player" parent="." node_paths=PackedStringArray("checkpoints") instance=ExtResource("2_w5xov")] position = Vector2(220, 60) -respawn_point = NodePath("../PlayerRespawn") +checkpoints = [NodePath("../Start"), NodePath("../Checkpoints/Hallway"), NodePath("../Checkpoints/Garden"), NodePath("../Checkpoints/BallCourse"), NodePath("../Checkpoints/PostBallCourse")] +current_checkpoint = 1 -[node name="PrisonRoomManager" type="Node2D" parent="." node_paths=PackedStringArray("next_room_wall", "mandatory_puzzles")] +[node name="Checkpoints" type="Node2D" parent="."] + +[node name="Hallway" type="Area2D" parent="Checkpoints"] +position = Vector2(156, 372) +script = ExtResource("4_8rbbs") +checkpoint_id = 1 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Checkpoints/Hallway"] +position = Vector2(3, 0) +shape = SubResource("RectangleShape2D_xcgii") + +[node name="Garden" type="Area2D" parent="Checkpoints"] +position = Vector2(548, 524) +script = ExtResource("4_8rbbs") +checkpoint_id = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Checkpoints/Garden"] +position = Vector2(16, -4) +shape = SubResource("RectangleShape2D_j3x8b") + +[node name="BallCourse" type="Area2D" parent="Checkpoints"] +position = Vector2(940, 492) +script = ExtResource("4_8rbbs") +checkpoint_id = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Checkpoints/BallCourse"] +position = Vector2(8, -4) +shape = SubResource("RectangleShape2D_265wp") + +[node name="PostBallCourse" type="Area2D" parent="Checkpoints"] +position = Vector2(1212, 436) +script = ExtResource("4_8rbbs") +checkpoint_id = 4 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Checkpoints/PostBallCourse"] +position = Vector2(-8, 0) +shape = SubResource("RectangleShape2D_t0k1c") + +[node name="PrisonRoomManager" type="Node2D" parent="." node_paths=PackedStringArray("next_room_wall", "box_puzzle_light", "switch_puzzle_light", "mandatory_puzzles")] position = Vector2(-60, 372) script = ExtResource("4_fpjs2") -next_room_wall = NodePath("FakeWall3") +next_room_wall = NodePath("FakeWall") +box_puzzle_light = NodePath("SimpleBoxPuzzleLight") +switch_puzzle_light = NodePath("SimpleSwitchPuzzleLight") mandatory_puzzles = [NodePath("SimpleBoxPuzzle"), NodePath("SimpleSwitchPuzzle")] [node name="HallwayEntryArrows" type="Node2D" parent="PrisonRoomManager"] @@ -178,89 +232,103 @@ frame = 15 position = Vector2(8.5, 0) shape = SubResource("RectangleShape2D_8unxy") -[node name="FakeWall3" type="StaticBody2D" parent="PrisonRoomManager"] +[node name="FakeWall" type="StaticBody2D" parent="PrisonRoomManager"] position = Vector2(104, 0) -[node name="FakeWall" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="FakeWall2" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall2" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(0, -16) texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="FakeWall3" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall3" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(0, -8) texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="FakeWall4" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall4" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(0, 8) texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="FakeWall5" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall5" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(0, 16) texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="FakeWall6" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall6" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(8, 8) texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="FakeWall7" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall7" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(8, 0) texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="FakeWall8" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall8" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(8, -8) texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="FakeWall9" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall9" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(16, -8) texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="FakeWall10" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall10" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(16, 0) texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="FakeWall11" type="Sprite2D" parent="PrisonRoomManager/FakeWall3"] +[node name="FakeWall11" type="Sprite2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(16, 8) texture = ExtResource("11_hi5wu") hframes = 8 vframes = 8 frame = 6 -[node name="CollisionShape2D" type="CollisionShape2D" parent="PrisonRoomManager/FakeWall3"] +[node name="CollisionShape2D" type="CollisionShape2D" parent="PrisonRoomManager/FakeWall"] position = Vector2(8, -0.5) shape = SubResource("RectangleShape2D_nrvhp") +[node name="SimpleSwitchPuzzleLight" type="Sprite2D" parent="PrisonRoomManager"] +position = Vector2(104, -24) +texture = ExtResource("11_hi5wu") +hframes = 8 +vframes = 8 +frame = 18 + +[node name="SimpleBoxPuzzleLight" type="Sprite2D" parent="PrisonRoomManager"] +position = Vector2(104, 24) +texture = ExtResource("11_hi5wu") +hframes = 8 +vframes = 8 +frame = 18 + [node name="HallwayManager" type="Node2D" parent="."] position = Vector2(-60, 372) @@ -765,6 +833,7 @@ position = Vector2(0, -16) shape = SubResource("RectangleShape2D_c5an3") [node name="VoidLayer" type="TileMapLayer" parent="BallCourseManager/BallPuzzle"] +visible = false z_index = 10 position = Vector2(4, 4) tile_map_data = PackedByteArray("AAAOAPb/AAAAAAAAAAAOAPf/AAAAAAAAAAAOAPj/AAAAAAAAAAAOAPn/AAAAAAAAAAAOAPr/AAAAAAAAAAAOAPv/AAAAAAAAAAAOAPz/AAAAAAAAAAAOAP3/AAAAAAAAAAAOAP7/AAAAAAAAAAAOAP//AAAAAAAAAAAOAAAAAAAAAAAAAAAOAAEAAAAAAAAAAAAOAAIAAAAAAAAAAAAOAAMAAAAAAAAAAAAOAAQAAAAAAAAAAAAOAAUAAAAAAAAAAAAOAAYAAAAAAAAAAAAOAAcAAAAAAAAAAAAOAAgAAAAAAAAAAAAPAPb/AAAAAAAAAAAPAPf/AAAAAAAAAAAPAPj/AAAAAAAAAAAPAPn/AAAAAAAAAAAPAPr/AAAAAAAAAAAPAPv/AAAAAAAAAAAPAPz/AAAAAAAAAAAPAP3/AAAAAAAAAAAPAP7/AAAAAAAAAAAPAP//AAAAAAAAAAAPAAAAAAAAAAAAAAAPAAEAAAAAAAAAAAAPAAIAAAAAAAAAAAAPAAMAAAAAAAAAAAAPAAQAAAAAAAAAAAAPAAUAAAAAAAAAAAAPAAYAAAAAAAAAAAAPAAcAAAAAAAAAAAAPAAgAAAAAAAAAAAAQAPb/AAAAAAAAAAAQAPf/AAAAAAAAAAAQAPj/AAAAAAAAAAAQAPn/AAAAAAAAAAAQAPr/AAAAAAAAAAAQAPv/AAAAAAAAAAAQAPz/AAAAAAAAAAAQAP3/AAAAAAAAAAAQAP7/AAAAAAAAAAAQAP//AAAAAAAAAAAQAAAAAAAAAAAAAAAQAAEAAAAAAAAAAAAQAAIAAAAAAAAAAAAQAAMAAAAAAAAAAAAQAAQAAAAAAAAAAAAQAAUAAAAAAAAAAAAQAAYAAAAAAAAAAAAQAAcAAAAAAAAAAAAQAAgAAAAAAAAAAAARAPb/AAAAAAAAAAARAPf/AAAAAAAAAAARAPj/AAAAAAAAAAARAPn/AAAAAAAAAAARAPr/AAAAAAAAAAARAPv/AAAAAAAAAAARAPz/AAAAAAAAAAARAP3/AAAAAAAAAAARAP7/AAAAAAAAAAARAP//AAAAAAAAAAARAAAAAAAAAAAAAAARAAEAAAAAAAAAAAARAAIAAAAAAAAAAAARAAMAAAAAAAAAAAARAAQAAAAAAAAAAAARAAUAAAAAAAAAAAARAAYAAAAAAAAAAAARAAcAAAAAAAAAAAARAAgAAAAAAAAAAAASAPb/AAAAAAAAAAASAPf/AAAAAAAAAAASAPj/AAAAAAAAAAASAPn/AAAAAAAAAAASAPr/AAAAAAAAAAASAPv/AAAAAAAAAAASAPz/AAAAAAAAAAASAP3/AAAAAAAAAAASAP7/AAAAAAAAAAASAP//AAAAAAAAAAASAAAAAAAAAAAAAAASAAEAAAAAAAAAAAASAAIAAAAAAAAAAAASAAMAAAAAAAAAAAASAAQAAAAAAAAAAAASAAUAAAAAAAAAAAASAAYAAAAAAAAAAAASAAcAAAAAAAAAAAASAAgAAAAAAAAAAAATAPb/AAAAAAAAAAATAPf/AAAAAAAAAAATAPj/AAAAAAAAAAATAPn/AAAAAAAAAAATAPr/AAAAAAAAAAATAPv/AAAAAAAAAAATAPz/AAAAAAAAAAATAP3/AAAAAAAAAAATAP7/AAAAAAAAAAATAP//AAAAAAAAAAATAAAAAAAAAAAAAAATAAEAAAAAAAAAAAATAAIAAAAAAAAAAAATAAMAAAAAAAAAAAATAAQAAAAAAAAAAAATAAUAAAAAAAAAAAATAAYAAAAAAAAAAAATAAcAAAAAAAAAAAATAAgAAAAAAAAAAAAUAPb/AAAAAAAAAAAUAPf/AAAAAAAAAAAUAPj/AAAAAAAAAAAUAPn/AAAAAAAAAAAUAPr/AAAAAAAAAAAUAPv/AAAAAAAAAAAUAPz/AAAAAAAAAAAUAP3/AAAAAAAAAAAUAP7/AAAAAAAAAAAUAP//AAAAAAAAAAAUAAAAAAAAAAAAAAAUAAEAAAAAAAAAAAAUAAIAAAAAAAAAAAAUAAMAAAAAAAAAAAAUAAQAAAAAAAAAAAAUAAUAAAAAAAAAAAAUAAYAAAAAAAAAAAAUAAcAAAAAAAAAAAAUAAgAAAAAAAAAAAAOAO7/AAAAAAAAAAAOAO//AAAAAAAAAAAOAPD/AAAAAAAAAAAOAPH/AAAAAAAAAAAOAPL/AAAAAAAAAAAOAPP/AAAAAAAAAAAOAPT/AAAAAAAAAAAOAPX/AAAAAAAAAAAPAO7/AAAAAAAAAAAPAO//AAAAAAAAAAAPAPD/AAAAAAAAAAAPAPH/AAAAAAAAAAAPAPL/AAAAAAAAAAAPAPP/AAAAAAAAAAAPAPT/AAAAAAAAAAAPAPX/AAAAAAAAAAAQAO7/AAAAAAAAAAAQAO//AAAAAAAAAAAQAPD/AAAAAAAAAAAQAPH/AAAAAAAAAAAQAPL/AAAAAAAAAAAQAPP/AAAAAAAAAAAQAPT/AAAAAAAAAAAQAPX/AAAAAAAAAAARAO7/AAAAAAAAAAARAO//AAAAAAAAAAARAPD/AAAAAAAAAAARAPH/AAAAAAAAAAARAPL/AAAAAAAAAAARAPP/AAAAAAAAAAARAPT/AAAAAAAAAAARAPX/AAAAAAAAAAASAO7/AAAAAAAAAAASAO//AAAAAAAAAAASAPD/AAAAAAAAAAASAPH/AAAAAAAAAAASAPL/AAAAAAAAAAASAPP/AAAAAAAAAAASAPT/AAAAAAAAAAASAPX/AAAAAAAAAAATAO7/AAAAAAAAAAATAO//AAAAAAAAAAATAPD/AAAAAAAAAAATAPH/AAAAAAAAAAATAPL/AAAAAAAAAAATAPP/AAAAAAAAAAATAPT/AAAAAAAAAAATAPX/AAAAAAAAAAAUAO7/AAAAAAAAAAAUAO//AAAAAAAAAAAUAPD/AAAAAAAAAAAUAPH/AAAAAAAAAAAUAPL/AAAAAAAAAAAUAPP/AAAAAAAAAAAUAPT/AAAAAAAAAAAUAPX/AAAAAAAAAAANAPv/AAAGAAAAAAAMAO7/AAAAAAAAAAAMAO//AAAAAAAAAAAMAPD/AAAAAAAAAAAMAPH/AAAAAAAAAAAMAPL/AAAAAAAAAAAMAPP/AAAAAAAAAAAMAPT/AAAAAAAAAAAMAPX/AAAAAAAAAAAMAPb/AAAAAAAAAAAMAPf/AAAAAAAAAAAMAPj/AAAAAAAAAAAMAPn/AAAAAAAAAAAMAPr/AAAAAAAAAAANAO7/AAAAAAAAAAANAO//AAAAAAAAAAANAPD/AAAAAAAAAAANAPH/AAAAAAAAAAANAPL/AAAAAAAAAAANAPP/AAAAAAAAAAANAPT/AAAAAAAAAAANAPX/AAAAAAAAAAANAPb/AAAAAAAAAAANAPf/AAAAAAAAAAANAPj/AAAAAAAAAAANAPn/AAAAAAAAAAANAPr/AAAAAAAAAAA=") @@ -798,7 +867,7 @@ position = Vector2(136, -104) box = NodePath("../Box") [node name="BarsButton" parent="BallCourseManager/BoxPuzzle" node_paths=PackedStringArray("nodes") instance=ExtResource("13_nrbrh")] -position = Vector2(136, -8) +position = Vector2(144, -16) nodes = [NodePath("../FakeWall")] [node name="ArrowsButton" parent="BallCourseManager/BoxPuzzle" node_paths=PackedStringArray("nodes") instance=ExtResource("13_nrbrh")] @@ -838,7 +907,13 @@ teleport_marker = NodePath("TeleportLocation") [node name="TeleportLocation" parent="BallCourseManager/Stairs" instance=ExtResource("14_4nm2v")] position = Vector2(-296, -24) +[connection signal="body_entered" from="Checkpoints/Hallway" to="Checkpoints/Hallway" method="_on_body_entered"] +[connection signal="body_entered" from="Checkpoints/Garden" to="Checkpoints/Garden" method="_on_body_entered"] +[connection signal="body_entered" from="Checkpoints/BallCourse" to="Checkpoints/BallCourse" method="_on_body_entered"] +[connection signal="body_entered" from="Checkpoints/PostBallCourse" to="Checkpoints/PostBallCourse" method="_on_body_entered"] [connection signal="finish_room" from="PrisonRoomManager" to="PrisonRoomManager" method="_on_finish_room"] +[connection signal="complete_puzzle" from="PrisonRoomManager/SimpleBoxPuzzle" to="PrisonRoomManager" method="_on_simple_box_puzzle_complete_puzzle"] +[connection signal="complete_puzzle" from="PrisonRoomManager/SimpleSwitchPuzzle" to="PrisonRoomManager" method="_on_simple_switch_puzzle_complete_puzzle"] [connection signal="finish_room" from="GardenManager" to="GardenManager" method="_on_finish_room"] [connection signal="finish_room" from="BallCourseManager" to="BallCourseManager" method="_on_finish_room"] [connection signal="complete_puzzle" from="BallCourseManager/BallPuzzle" to="BallCourseManager" method="_on_ball_puzzle_complete_puzzle"]