Compare commits

17 Commits
Author SHA1 Message Date
yagigreg 8bb2c5c840 Add ability to have two images in a slide.
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 08:11:58 -05:00
yagigreg ddf7942890 Rudimentary comic/slideshow viewer and intro scene.
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 07:16:08 -05:00
yagigreg eded968b4e Stubs for intro scene and slideshower control.
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 03:29:46 -05:00
yagigreg 890541465b Record last known ground position. Idea is that when you die you drop the disks at the last place you stood. Doesn't seem to be reliable so I'm not using it at the moment;
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 03:21:33 -05:00
Debugman b416cd6d4f Merge branch 'main' of http://git.nanoyagi.com/NanoYagi/JumpRopeOldTech
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 03:20:10 -05:00
Debugman 2c203c8476 Teleporter tutorial 2026-10-18 03:20:05 -05:00
yagigreg f1c232847f Actually exit the game upon completing the main quest.
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 03:10:37 -05:00
yagigreg 904c6e7f15 Fix issue where OldComputer crashes upon inserting the final disk. Add a message instructing player to press [E] to exit the game. 2026-10-18 03:08:33 -05:00
Debugman 82d1375871 Update world.tscn
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 03:02:26 -05:00
Debugman 4d9cb93483 Merge branch 'main' of http://git.nanoyagi.com/NanoYagi/JumpRopeOldTech
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 02:38:28 -05:00
Debugman 4de204a122 Tutorial polish 2026-10-18 02:37:32 -05:00
yagigreg 9ba305b6a1 Hide dialogue box by default
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 02:08:56 -05:00
yagigreg 93baf56fd5 Move interactable input handling into Player2D so we can selectively block it from working if OldComputer is open
ci/woodpecker/push/woodpecker Pipeline was successful
We probably could have special-cased that check in Interactable now that I think about it
2026-10-18 02:05:51 -05:00
yagigreg f061e1905f Remove hello world dialogue demonstration. 2026-10-18 01:52:22 -05:00
yagigreg cb1b579544 Block all input other than E/Space when OldComputer is up. Make it so that exiting out of OldComputer does not jump.
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 01:43:41 -05:00
yagigreg 954fd873bd Fix sign interaction
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 01:40:20 -05:00
Debugman eed1540c93 Added signs
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-18 01:35:58 -05:00
46 changed files with 938 additions and 49 deletions

No files matched your search

+11 -13
View File
@@ -1,29 +1,26 @@
[gd_scene format=3 uid="uid://bla1cfndgad0"] [gd_scene format=3 uid="uid://bla1cfndgad0"]
[ext_resource type="Texture2D" uid="uid://m5dwatby4pfc" path="res://art/text_box.png" id="1_4xg4g"]
[ext_resource type="Script" uid="uid://byj4ibepgm6oa" path="res://dialogue.gd" id="1_tgtc2"] [ext_resource type="Script" uid="uid://byj4ibepgm6oa" path="res://dialogue.gd" id="1_tgtc2"]
[node name="Dialogue" type="Control" unique_id=1025022375] [node name="Dialogue" type="TextureRect" unique_id=733911232]
layout_mode = 3 visible = false
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
texture = ExtResource("1_4xg4g")
script = ExtResource("1_tgtc2") script = ExtResource("1_tgtc2")
[node name="Panel" type="Panel" parent="." unique_id=1878574619] [node name="Panel" type="Panel" parent="." unique_id=1878574619]
self_modulate = Color(1, 1, 1, 0)
layout_mode = 1 layout_mode = 1
anchors_preset = -1 anchors_preset = 15
anchor_left = 0.179
anchor_top = 0.683
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = -230.12001 grow_horizontal = 2
offset_top = -493.76 grow_vertical = 2
offset_right = -230.0
offset_bottom = -494.0
grow_horizontal = 0
grow_vertical = 0
[node name="Text" type="RichTextLabel" parent="Panel" unique_id=1494828842] [node name="Text" type="RichTextLabel" parent="Panel" unique_id=1494828842]
layout_mode = 1 layout_mode = 1
@@ -31,9 +28,10 @@ anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = 8.0 offset_left = 8.0
offset_top = 11.0 offset_top = 265.0
offset_right = -11.0 offset_right = -11.0
offset_bottom = 4.0 offset_bottom = -263.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
bbcode_enabled = true bbcode_enabled = true
fit_content = true
+88
View File
@@ -0,0 +1,88 @@
[gd_scene format=3 uid="uid://rcq5arl8mdes"]
[ext_resource type="Script" uid="uid://bdv4qahk8mumv" path="res://slideshower.gd" id="1_7e6iu"]
[ext_resource type="Texture2D" uid="uid://pwn1pdrp6ruh" path="res://art/keyart_thumb.png" id="2_puxm7"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_puxm7"]
bg_color = Color(0.8203125, 0.8203125, 0.8203125, 1)
[node name="Slideshower" type="Control" unique_id=776393005]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_7e6iu")
[node name="VSplitContainer" type="VSplitContainer" parent="." unique_id=35480294]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 3.0
offset_top = 4.0
grow_horizontal = 2
grow_vertical = 2
split_offsets = PackedInt32Array(642)
split_offset = 642
[node name="ImageFrame" type="Panel" parent="VSplitContainer" unique_id=1582351824]
layout_mode = 2
[node name="SlideContainer" type="HBoxContainer" parent="VSplitContainer/ImageFrame" unique_id=975465325]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
alignment = 1
[node name="SlideImage" type="TextureRect" parent="VSplitContainer/ImageFrame/SlideContainer" unique_id=720362532]
layout_mode = 2
texture = ExtResource("2_puxm7")
expand_mode = 2
stretch_mode = 5
[node name="SlideImage2" type="TextureRect" parent="VSplitContainer/ImageFrame/SlideContainer" unique_id=746302187]
visible = false
layout_mode = 2
texture = ExtResource("2_puxm7")
expand_mode = 2
stretch_mode = 5
[node name="TextFrame" type="Panel" parent="VSplitContainer" unique_id=1381001186]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_puxm7")
[node name="SlideText" type="RichTextLabel" parent="VSplitContainer/TextFrame" unique_id=1168262970]
layout_mode = 1
anchors_preset = -1
anchor_right = 0.86
anchor_bottom = 1.0
offset_right = 11.780029
grow_horizontal = 2
grow_vertical = 2
theme_override_colors/default_color = Color(0, 0, 0, 1)
theme_override_font_sizes/normal_font_size = 21
theme_override_font_sizes/bold_font_size = 21
theme_override_font_sizes/bold_italics_font_size = 21
theme_override_font_sizes/italics_font_size = 21
theme_override_font_sizes/mono_font_size = 21
text = "The Pharaoh's Jetpack!"
[node name="ContinueButton" type="Button" parent="VSplitContainer/TextFrame" unique_id=1558725691]
layout_mode = 1
anchors_preset = -1
anchor_top = 0.097
anchor_right = 1.0
anchor_bottom = 0.79
offset_left = 1133.0
offset_top = -0.013999939
offset_right = -14.0
offset_bottom = 0.020000458
grow_horizontal = 2
text = "Continue [E]"
[connection signal="pressed" from="VSplitContainer/TextFrame/ContinueButton" to="." method="_on_continue_button_pressed"]
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://djlqqmqpsd0kc"
path="res://.godot/imported/sign.png-f68c0bf044084530e7373ad6ed8f7c3f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/sign.png"
dest_files=["res://.godot/imported/sign.png-f68c0bf044084530e7373ad6ed8f7c3f.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: 2.7 MiB

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1njkrglsofqk"
path="res://.godot/imported/Activate.png-5a9b65792bff5759f1905879cea1ebaa.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/slides/Activate.png"
dest_files=["res://.godot/imported/Activate.png-5a9b65792bff5759f1905879cea1ebaa.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: 1.4 MiB

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dkhnrtsstc3gs"
path="res://.godot/imported/Daydreaming.png-653e4d4bd093a39da88f576e50d6c4f0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/slides/Daydreaming.png"
dest_files=["res://.godot/imported/Daydreaming.png-653e4d4bd093a39da88f576e50d6c4f0.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: 1.8 MiB

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://2mb7loqx4035"
path="res://.godot/imported/Glow.png-7fece8dff73930115c57f2c0ae3578d8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/slides/Glow.png"
dest_files=["res://.godot/imported/Glow.png-7fece8dff73930115c57f2c0ae3578d8.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: 3.3 MiB

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c5kfj40gjnltf"
path="res://.godot/imported/Goatcaphagus.png-d86b36347399a0816eebbbd8281279fc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/slides/Goatcaphagus.png"
dest_files=["res://.godot/imported/Goatcaphagus.png-d86b36347399a0816eebbbd8281279fc.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: 663 KiB

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://3jk04ddh4tme"
path="res://.godot/imported/Journey.png-73c5508ef5224e4becee36594c39a18b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/slides/Journey.png"
dest_files=["res://.godot/imported/Journey.png-73c5508ef5224e4becee36594c39a18b.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: 2.4 MiB

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dd6rkyvutqrxb"
path="res://.godot/imported/Opensofar.png-a0b612c8052ea0cd9e0750c52238989d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/slides/Opensofar.png"
dest_files=["res://.godot/imported/Opensofar.png-a0b612c8052ea0cd9e0750c52238989d.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: 356 KiB

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bh6teffdplxy7"
path="res://.godot/imported/PossessedbyOC.png-96605a3f22a6b73e1293b2d1be720757.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/slides/PossessedbyOC.png"
dest_files=["res://.godot/imported/PossessedbyOC.png-96605a3f22a6b73e1293b2d1be720757.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: 3.5 MiB

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c2e5dbfb16dhq"
path="res://.godot/imported/Power_source.png-669b9d6c712b93bed5f0d8805876b0d5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/slides/Power_source.png"
dest_files=["res://.godot/imported/Power_source.png-669b9d6c712b93bed5f0d8805876b0d5.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: 422 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://m5dwatby4pfc"
path="res://.godot/imported/text_box.png-d58c3f415558f4d17ce4db7eb8cebb71.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/text_box.png"
dest_files=["res://.godot/imported/text_box.png-d58c3f415558f4d17ce4db7eb8cebb71.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
+1 -1
View File
@@ -3,7 +3,7 @@ extends Control
func show_text(text: String) -> Dialogue: func show_text(text: String) -> Dialogue:
visible = true visible = true
$Panel/Text.text = "[font_size=28]%s" % text $Panel/Text.text = "[center][font_size=28][color=BROWN]%s" % text
return self return self
func dismiss_after(secs: float) -> Dialogue: func dismiss_after(secs: float) -> Dialogue:
+11
View File
@@ -0,0 +1,11 @@
extends Interactable
@export var sign_text = ""
@export var text_dismiss_timer = 2
func _ready() -> void:
add_to_group("Hidden")
modulate = Color.DARK_CYAN
func _on_interacted() -> void:
%Dialogue.show_text(sign_text).dismiss_after(text_dismiss_timer)
+1
View File
@@ -0,0 +1 @@
uid://b64hyvumk366h
+30
View File
@@ -0,0 +1,30 @@
[gd_scene format=3 uid="uid://dt43trxumfv0i"]
[ext_resource type="Script" uid="uid://b64hyvumk366h" path="res://hidden_sign.gd" id="1_a20ku"]
[ext_resource type="Texture2D" uid="uid://djlqqmqpsd0kc" path="res://art/sign.png" id="2_soj2u"]
[ext_resource type="Texture2D" uid="uid://d0cd1alr8k706" path="res://art/interact_button.png" id="3_7o2b3"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_eumkw"]
size = Vector2(26, 32)
[node name="HiddenSign" type="Node2D" unique_id=1201409437]
script = ExtResource("1_a20ku")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
position = Vector2(0, -16)
texture = ExtResource("2_soj2u")
[node name="Area2D" type="Area2D" parent="Sprite2D" unique_id=2050186824]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite2D/Area2D" unique_id=1560168165]
shape = SubResource("RectangleShape2D_eumkw")
[node name="ButtonPrompt" type="Sprite2D" parent="Sprite2D" unique_id=1864817335]
visible = false
position = Vector2(0, -8.000002)
scale = Vector2(0.8, 0.8)
texture = ExtResource("3_7o2b3")
[connection signal="interacted" from="." to="." method="_on_interacted"]
[connection signal="body_entered" from="Sprite2D/Area2D" to="." method="_on_approach"]
[connection signal="body_exited" from="Sprite2D/Area2D" to="." method="_on_abandon"]
+44
View File
@@ -0,0 +1,44 @@
extends Node2D
@export var paired_teleporter: String
var checked_teleport
var telecam_speed_mult = 4
var enabled = true
var cooldown = 2
func _ready() -> void:
modulate = Color.PURPLE
add_to_group("TELEPORTERS")
add_to_group("Hidden")
func check_for_pair() -> String:
print(paired_teleporter)
return paired_teleporter
func disable():
enabled = false
$Sprite2D.modulate = Color.DARK_ORANGE
func enable():
enabled = true
$Sprite2D.modulate = Color.WHITE
func _process(delta: float) -> void:
pass
func _physics_process(delta: float) -> void:
pass
func _on_contact(body) -> void:
#get_tree().call_group("TELEPORTERS","disable")
for teleporter in get_tree().get_nodes_in_group("TELEPORTERS"):
if teleporter != self:
if teleporter.paired_teleporter == paired_teleporter and enabled:
%Player2D.get_node("Camera2D").position_smoothing_enabled = false
if %Player2D.teleport_cooldown > 0:
return
body.set_position(teleporter.get_position())
%Player2D.on_teleport()
disable()
await get_tree().create_timer(cooldown).timeout
enable()
+1
View File
@@ -0,0 +1 @@
uid://btxx0p5ccar5f
+40
View File
@@ -0,0 +1,40 @@
[gd_scene format=3 uid="uid://7bjqgxckho"]
[ext_resource type="Script" uid="uid://btxx0p5ccar5f" path="res://hidden_teleporter.gd" id="1_52wed"]
[ext_resource type="Texture2D" uid="uid://d0tvtt4eu8jmt" path="res://art/block/portal.png" id="2_rx1y0"]
[ext_resource type="Texture2D" uid="uid://55ihxa2emnep" path="res://art/block/portal2.png" id="3_5admx"]
[ext_resource type="Texture2D" uid="uid://d4a5x8gwhl2wc" path="res://art/block/portal3.png" id="4_tfiuq"]
[sub_resource type="SpriteFrames" id="SpriteFrames_tuehi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_rx1y0")
}, {
"duration": 1.0,
"texture": ExtResource("3_5admx")
}, {
"duration": 1.0,
"texture": ExtResource("4_tfiuq")
}],
"loop": 1,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_7k7bx"]
radius = 9.0
[node name="HiddenTeleporter" type="Node2D" unique_id=1201409437]
script = ExtResource("1_52wed")
[node name="Sprite2D" type="AnimatedSprite2D" parent="." unique_id=395479262]
sprite_frames = SubResource("SpriteFrames_tuehi")
autoplay = "default"
[node name="Area2D" type="Area2D" parent="Sprite2D" unique_id=2050186824]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite2D/Area2D" unique_id=1560168165]
shape = SubResource("CircleShape2D_7k7bx")
[connection signal="body_entered" from="Sprite2D/Area2D" to="." method="_on_contact"]
-3
View File
@@ -17,7 +17,6 @@ dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.cte
compress/mode=0 compress/mode=0
compress/high_quality=false compress/high_quality=false
compress/high_quality_mode=0
compress/lossy_quality=0.7 compress/lossy_quality=0.7
compress/uastc_level=0 compress/uastc_level=0
compress/rdo_quality_loss=0.0 compress/rdo_quality_loss=0.0
@@ -26,8 +25,6 @@ compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=false
mipmaps/limit=-1 mipmaps/limit=-1
mipmaps/preserve_alpha_test_coverage=false
mipmaps/alpha_test_threshold=0.5
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
process/channel_remap/red=0 process/channel_remap/red=0
+10 -6
View File
@@ -7,7 +7,7 @@ var checked_teleport
var telecam_speed_mult = 4 var telecam_speed_mult = 4
var enabled = true var enabled = true
var cooldown = 2 var cooldown = 2
var is_interactable = false var _is_interactable = false
func disable(): func disable():
enabled = false enabled = false
@@ -17,10 +17,12 @@ func enable():
enabled = true enabled = true
$Sprite2D.modulate = Color.WHITE $Sprite2D.modulate = Color.WHITE
func _process(delta: float) -> void: func is_interactable() -> bool:
if not (is_interactable and Input.is_action_just_released("interact")): return _is_interactable
return
func interact() -> void:
if not is_interactable():
return
interacted.emit() interacted.emit()
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:
@@ -29,11 +31,13 @@ func _physics_process(delta: float) -> void:
func _on_approach(body) -> void: func _on_approach(body) -> void:
if body!=%Player2D: if body!=%Player2D:
return return
is_interactable = true _is_interactable = true
self.add_to_group("nearby_interactables")
$Sprite2D/ButtonPrompt.show() $Sprite2D/ButtonPrompt.show()
func _on_abandon(body) -> void: func _on_abandon(body) -> void:
if body!=%Player2D: if body!=%Player2D:
return return
is_interactable = false _is_interactable = false
self.remove_from_group("nearby_interactables")
$Sprite2D/ButtonPrompt.hide() $Sprite2D/ButtonPrompt.hide()
+25
View File
@@ -0,0 +1,25 @@
extends Control
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
$Slideshower.play_slideshow([
{ "image": "Daydreaming",
"text": "Ever since he was a wee lad, Mr. Rhombini had always had one dream - to fly around in a blinged up jetpack." },
{ "image": "res://art/keyart_thumb.png",
"text": "The internet has been abuzz with talks of a legendary Pharaoh's jetpack. Mr. Rhombini's day has come." },
{ "image": "Journey",
"text": "Under the cover of night, Mr. Rhombini sneaks into the famous pharaoh's pyramid. This night, of all nights, it seems to glow with strange energy." },
{ "image": "Goatcaphagus",
"text": "Mr. Rhombini stumbles upon an unusual sarcophagus, a blend of ancient craftsmanship and advanced technology. The antenna have been disconnected." },
{ "image": "Activate",
"text": "Mr. Rhombini excitedly connects the antenna. The sarcophagus begins to hum." },
{ "image": "Opensofar",
"text": "The sarcophagus swings open to reveal, not a dead body, but an old computer. The computer begins to boot up, but an error message is visible on the main screen." },
{ "images": ["PossessedbyOC", "Power_source"],
"text": "However, Mr. Rhombini's attention is instantly grabbed by the other object inside the open sarcophagus." },
{ "image": "Glow",
"text": "The Pharaoh's jetpack! Mr. Rhombini wastes no time in putting it on." }
])
func _on_slideshower_finished_playing() -> void:
get_tree().change_scene_to_file("res://world.tscn")
+1
View File
@@ -0,0 +1 @@
uid://bo6557y41ps7i
+18
View File
@@ -0,0 +1,18 @@
[gd_scene format=3 uid="uid://p65fagt04vv8"]
[ext_resource type="Script" uid="uid://bo6557y41ps7i" path="res://intro.gd" id="1_ayt76"]
[ext_resource type="PackedScene" uid="uid://rcq5arl8mdes" path="res://Slideshower.tscn" id="1_s2ta7"]
[node name="Intro" type="Control" unique_id=1423273784]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_ayt76")
[node name="Slideshower" parent="." unique_id=776393005 instance=ExtResource("1_s2ta7")]
layout_mode = 1
[connection signal="finished_playing" from="Slideshower" to="." method="_on_slideshower_finished_playing"]
+16
View File
@@ -22,14 +22,27 @@ func load_disk(disk_num: int) -> bool:
[disk_num, len(disks_wanted) + len(disks_loaded), get_memory_integrity()] [disk_num, len(disks_wanted) + len(disks_loaded), get_memory_integrity()]
) )
if has_finished_initialization():
printline(
">> System initialization complete. Beginning reactivation sequence."
)
printline(
">> Player: Press [E] or [Space] to return to the outside world."
)
return true return true
func get_next_disk_num() -> int: func get_next_disk_num() -> int:
if disks_wanted.is_empty():
return 0
return disks_wanted.front() return disks_wanted.front()
func get_memory_integrity(): func get_memory_integrity():
return 100.0 / total_integrity * (starting_integrity + len(disks_loaded)) return 100.0 / total_integrity * (starting_integrity + len(disks_loaded))
func has_finished_initialization() -> bool:
return disks_wanted.is_empty()
func open() -> void: func open() -> void:
visible = true visible = true
@@ -38,4 +51,7 @@ func printline(line: String) -> void:
$ConsoleText.text += "\n" + line $ConsoleText.text += "\n" + line
func close() -> void: func close() -> void:
if has_finished_initialization():
get_tree().quit()
visible = false visible = false
+1 -1
View File
@@ -1,7 +1,7 @@
extends Interactable extends Interactable
func _on_interacted() -> void: func _on_interacted() -> void:
#%OldComputer.open() %OldComputer.open()
#Accomodate some collision antics. #Accomodate some collision antics.
var new_spawn_point = global_position + Vector2(0,-10) var new_spawn_point = global_position + Vector2(0,-10)
+19 -8
View File
@@ -17,7 +17,9 @@ var dashes = 1
var dashing = false var dashing = false
var death_threshold = 2000 var death_threshold = 2000
var coins = 0 var coins = 0
var spawn_point var spawn_point
var last_ground_point
var data_disks = [] var data_disks = []
var objectives = {} var objectives = {}
@@ -26,7 +28,7 @@ func _ready() -> void:
spawn_point = position spawn_point = position
DisplayServer.window_set_title("JUMPS EQUALS JUMPS") DisplayServer.window_set_title("JUMPS EQUALS JUMPS")
give_objective("sarc", 0, "Open the Sarcophagus") give_objective("sarc", 0, "Open the Sarcophagus")
%Dialogue.show_text("Hello world!").dismiss_after(2) #%Dialogue.show_text("Hello world!").dismiss_after(2)
func refresh_dash(new_dashes): func refresh_dash(new_dashes):
if new_dashes: if new_dashes:
@@ -111,7 +113,8 @@ func on_death(instant = false, player_position = position):
get_tree().paused = false get_tree().paused = false
#position = %LevelStart.position #position = %LevelStart.position
position = spawn_point velocity = Vector2(0,0)
position = spawn_point + Vector2(0,-100)
await get_tree().create_timer(0.1).timeout await get_tree().create_timer(0.1).timeout
death_cooldown = 0 death_cooldown = 0
@@ -119,8 +122,18 @@ func _process(delta: float) -> void:
if Input.is_action_just_released("restart") or (Input.is_action_pressed("controller_restart_left") and Input.is_action_pressed("controller_restart_right")): if Input.is_action_just_released("restart") or (Input.is_action_pressed("controller_restart_left") and Input.is_action_pressed("controller_restart_right")):
get_tree().reload_current_scene() get_tree().reload_current_scene()
if is_on_floor():
last_ground_point = global_position
#spawn_point = last_ground_point
if %OldComputer.visible:
if Input.is_action_just_released("interact") or Input.is_action_just_released("jump"):
%OldComputer.close()
return
if Input.is_action_just_released("interact"): if Input.is_action_just_released("interact"):
%OldComputer.close() for interactable in get_tree().get_nodes_in_group("nearby_interactables"):
interactable.interact()
if Input.is_action_just_pressed("jump"): if Input.is_action_just_pressed("jump"):
%OldComputer.close() %OldComputer.close()
@@ -134,15 +147,15 @@ func _process(delta: float) -> void:
$Jetpack/DoubleJumpSound.play() $Jetpack/DoubleJumpSound.play()
if jumps == 0: if jumps == 0:
$Jetpack/JumpIndicator.hide() $Jetpack/JumpIndicator.hide()
if Input.is_action_just_released("jump"):
velocity.y = -(0.001 * JUMP_VELOCITY)
if Input.is_action_pressed("jump") and is_on_wall_only(): if Input.is_action_pressed("jump") and is_on_wall_only():
print("WALL HANGING") print("WALL HANGING")
#velocity.y = 0 #velocity.y = 0
#velocity.x = 0 #velocity.x = 0
if %OldComputer.visible:
return
var direction = Input.get_axis("move_left","move_right") var direction = Input.get_axis("move_left","move_right")
if direction < 0: if direction < 0:
@@ -153,9 +166,7 @@ func _process(delta: float) -> void:
$Sprite2D/HatSprite.flip_h = false $Sprite2D/HatSprite.flip_h = false
if Input.is_action_pressed("dash_down") and is_on_floor(): if Input.is_action_pressed("dash_down") and is_on_floor():
print("Crouching")
$Sprite2D.play("crouch") $Sprite2D.play("crouch")
print("MODULATE: " + str($Parallax2D/Sprite2D.modulate))
$Parallax2D/Sprite2D.modulate = Color.CYAN $Parallax2D/Sprite2D.modulate = Color.CYAN
for hidden_object in get_tree().get_nodes_in_group("Hidden"): for hidden_object in get_tree().get_nodes_in_group("Hidden"):
+1 -1
View File
@@ -151,7 +151,7 @@ texture = ExtResource("4_nj6as")
[node name="Parallax2D" type="Parallax2D" parent="." unique_id=270393374] [node name="Parallax2D" type="Parallax2D" parent="." unique_id=270393374]
repeat_size = Vector2(1280, 720) repeat_size = Vector2(1280, 720)
autoscroll = Vector2(5, 0) autoscroll = Vector2(1, 0)
follow_viewport = false follow_viewport = false
ignore_camera_scroll = true ignore_camera_scroll = true
+2 -2
View File
@@ -11,7 +11,7 @@ config_version=5
[application] [application]
config/name="JumpRope" config/name="JumpRope"
run/main_scene="uid://iivvrut0lfsr" run/main_scene="uid://p65fagt04vv8"
config/features=PackedStringArray("4.8", "Forward Plus") config/features=PackedStringArray("4.8", "Forward Plus")
boot_splash/image="uid://dhue32shjdpt8" boot_splash/image="uid://dhue32shjdpt8"
config/icon="res://icon.svg" config/icon="res://icon.svg"
@@ -123,7 +123,7 @@ move_left={
)] )]
} }
jump={ jump={
"deadzone": 0.2, "deadzone": 0.0,
"events": [Object(InputEventJoypadButton, "events": [Object(InputEventJoypadButton,
"resource_local_to_scene": false, "resource_local_to_scene": false,
"resource_name": "", "resource_name": "",
+7
View File
@@ -0,0 +1,7 @@
extends Interactable
@export var sign_text = ""
@export var text_dismiss_timer = 2
func _on_interacted() -> void:
%Dialogue.show_text(sign_text).dismiss_after(text_dismiss_timer)
+1
View File
@@ -0,0 +1 @@
uid://dvo0iux2pcggi
+30
View File
@@ -0,0 +1,30 @@
[gd_scene format=3 uid="uid://bnkbkfto83owf"]
[ext_resource type="Script" uid="uid://dvo0iux2pcggi" path="res://sign.gd" id="1_q3tny"]
[ext_resource type="Texture2D" uid="uid://djlqqmqpsd0kc" path="res://art/sign.png" id="2_q3tny"]
[ext_resource type="Texture2D" uid="uid://d0cd1alr8k706" path="res://art/interact_button.png" id="3_e8cgb"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_eumkw"]
size = Vector2(26, 32)
[node name="Sign" type="Node2D" unique_id=1201409437]
script = ExtResource("1_q3tny")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
position = Vector2(0, -16)
texture = ExtResource("2_q3tny")
[node name="Area2D" type="Area2D" parent="Sprite2D" unique_id=2050186824]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite2D/Area2D" unique_id=1560168165]
shape = SubResource("RectangleShape2D_eumkw")
[node name="ButtonPrompt" type="Sprite2D" parent="Sprite2D" unique_id=1864817335]
visible = false
position = Vector2(0, -8.000002)
scale = Vector2(0.8, 0.8)
texture = ExtResource("3_e8cgb")
[connection signal="interacted" from="." to="." method="_on_interacted"]
[connection signal="body_entered" from="Sprite2D/Area2D" to="." method="_on_approach"]
[connection signal="body_exited" from="Sprite2D/Area2D" to="." method="_on_abandon"]
+57
View File
@@ -0,0 +1,57 @@
class_name Slideshower
extends Control
signal finished_playing
var slides = []
var slide = 0
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
func play_slideshow(new_slides) -> void:
slides = new_slides
play_slide(0)
func _make_image_path(image_name: String) -> String:
if image_name.begins_with("res://"):
return image_name
return "res://art/slides/%s.png" % image_name
func play_slide(index) -> bool:
if index < 0 or index >= len(slides):
return false
slide = index
var slide_object = slides[index]
$VSplitContainer/TextFrame/SlideText.text = slide_object.text
if "image" in slides[index]:
$VSplitContainer/ImageFrame/SlideContainer/SlideImage.texture = load(_make_image_path(slide_object.image))
$VSplitContainer/ImageFrame/SlideContainer/SlideImage2.visible = false
else:
$VSplitContainer/ImageFrame/SlideContainer/SlideImage.texture = load(_make_image_path(slide_object.images[0]))
$VSplitContainer/ImageFrame/SlideContainer/SlideImage2.visible = true
$VSplitContainer/ImageFrame/SlideContainer/SlideImage2.texture = load(_make_image_path(slide_object.images[1]))
return true
func next_slide() -> bool:
var success = play_slide(slide + 1)
if not success:
finished_playing.emit()
return success
func prev_slide() -> bool:
return play_slide(slide - 1)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if Input.is_action_just_released("interact") or Input.is_action_just_released("jump") or Input.is_action_just_released("move_right"):
next_slide()
if Input.is_action_just_released("move_left"):
prev_slide()
func _on_continue_button_pressed() -> void:
next_slide()
+1
View File
@@ -0,0 +1 @@
uid://bdv4qahk8mumv
+1 -1
View File
@@ -23,7 +23,7 @@ animations = [{
}] }]
[sub_resource type="CircleShape2D" id="CircleShape2D_7k7bx"] [sub_resource type="CircleShape2D" id="CircleShape2D_7k7bx"]
radius = 14.0 radius = 9.0
[node name="Teleporter" type="Node2D" unique_id=1201409437] [node name="Teleporter" type="Node2D" unique_id=1201409437]
script = ExtResource("1_tuehi") script = ExtResource("1_tuehi")
+91 -13
View File
@@ -23,6 +23,9 @@
[ext_resource type="PackedScene" uid="uid://b5ssjxl1l3fx0" path="res://hidden_vertical_long_block.tscn" id="20_26xuy"] [ext_resource type="PackedScene" uid="uid://b5ssjxl1l3fx0" path="res://hidden_vertical_long_block.tscn" id="20_26xuy"]
[ext_resource type="PackedScene" uid="uid://ch0417iiviaxb" path="res://hidden_horizontal_long_block.tscn" id="21_bc84e"] [ext_resource type="PackedScene" uid="uid://ch0417iiviaxb" path="res://hidden_horizontal_long_block.tscn" id="21_bc84e"]
[ext_resource type="PackedScene" uid="uid://be757jqlv785s" path="res://hidden_coin.tscn" id="22_wukud"] [ext_resource type="PackedScene" uid="uid://be757jqlv785s" path="res://hidden_coin.tscn" id="22_wukud"]
[ext_resource type="PackedScene" uid="uid://bnkbkfto83owf" path="res://sign.tscn" id="24_wjb0r"]
[ext_resource type="PackedScene" uid="uid://byfgwmvln8ukh" path="res://vertical_block.tscn" id="25_mc2jv"]
[ext_resource type="PackedScene" uid="uid://dt43trxumfv0i" path="res://hidden_sign.tscn" id="26_bo7i5"]
[node name="World" type="Node2D" unique_id=1327991900] [node name="World" type="Node2D" unique_id=1327991900]
process_mode = 1 process_mode = 1
@@ -30,7 +33,7 @@ scale = Vector2(1, 1.0155824)
[node name="Player2D" parent="." unique_id=889851478 instance=ExtResource("1_aqk2v")] [node name="Player2D" parent="." unique_id=889851478 instance=ExtResource("1_aqk2v")]
unique_name_in_owner = true unique_name_in_owner = true
position = Vector2(-4844.9995, 356.44568) position = Vector2(-4838.9995, 356.4457)
rotation = 0.0005533503 rotation = 0.0005533503
safe_margin = 0.08 safe_margin = 0.08
@@ -47,10 +50,10 @@ position = Vector2(650, -17.72377)
position = Vector2(1657, -18.708487) position = Vector2(1657, -18.708487)
[node name="LongerBlock7" parent="StartingArea" unique_id=2057011049 instance=ExtResource("6_dwbse")] [node name="LongerBlock7" parent="StartingArea" unique_id=2057011049 instance=ExtResource("6_dwbse")]
position = Vector2(2861, -19.693142) position = Vector2(2804, -19.693142)
[node name="LongerBlock8" parent="StartingArea" unique_id=74356311 instance=ExtResource("6_dwbse")] [node name="LongerBlock8" parent="StartingArea" unique_id=74356311 instance=ExtResource("6_dwbse")]
position = Vector2(3174, -424.38696) position = Vector2(3174, -397.80124)
[node name="LongerBlock11" parent="StartingArea" unique_id=624436532 instance=ExtResource("6_dwbse")] [node name="LongerBlock11" parent="StartingArea" unique_id=624436532 instance=ExtResource("6_dwbse")]
position = Vector2(3390, -1028.9663) position = Vector2(3390, -1028.9663)
@@ -68,10 +71,10 @@ position = Vector2(615, -24.616425)
position = Vector2(1609, -26.585724) position = Vector2(1609, -26.585724)
[node name="Pharaoh4" parent="StartingArea" unique_id=764966940 instance=ExtResource("15_hiqwa")] [node name="Pharaoh4" parent="StartingArea" unique_id=764966940 instance=ExtResource("15_hiqwa")]
position = Vector2(2808, -27.570404) position = Vector2(2751, -27.570404)
[node name="Pharaoh5" parent="StartingArea" unique_id=2064737854 instance=ExtResource("15_hiqwa")] [node name="Pharaoh5" parent="StartingArea" unique_id=2064737854 instance=ExtResource("15_hiqwa")]
position = Vector2(3089, -430.29498) position = Vector2(3089, -403.70926)
[node name="Tutorial" type="Node2D" parent="." unique_id=1391494772] [node name="Tutorial" type="Node2D" parent="." unique_id=1391494772]
@@ -435,9 +438,10 @@ script = ExtResource("3_wse8f")
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = 586.0 offset_left = 11.0
offset_right = -1097.0 offset_top = 9.0
offset_bottom = 2.0 offset_right = -1086.0
offset_bottom = -575.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
bbcode_enabled = true bbcode_enabled = true
@@ -466,14 +470,16 @@ script = ExtResource("14_70uel")
[node name="Dialogue" parent="CanvasLayer" unique_id=1025022375 instance=ExtResource("19_26xuy")] [node name="Dialogue" parent="CanvasLayer" unique_id=1025022375 instance=ExtResource("19_26xuy")]
unique_name_in_owner = true unique_name_in_owner = true
offset_left = 228.0 offset_left = 3.9999995
offset_top = 499.0 offset_top = 550.99994
offset_right = 231.0 offset_right = 268.38086
offset_bottom = 491.0 offset_bottom = -7.640442
rotation = 4.9367074e-05 rotation = 4.9367074e-05
scale = Vector2(0.8267815, 0.8267815)
stretch_mode = 5
[node name="Pharaoh" parent="." unique_id=44054531 instance=ExtResource("15_hiqwa")] [node name="Pharaoh" parent="." unique_id=44054531 instance=ExtResource("15_hiqwa")]
position = Vector2(192, 177.23824) position = Vector2(192, 193.97743)
[node name="Pharaoh2" parent="." unique_id=1541178727 instance=ExtResource("15_hiqwa")] [node name="Pharaoh2" parent="." unique_id=1541178727 instance=ExtResource("15_hiqwa")]
position = Vector2(6338, -42.34024) position = Vector2(6338, -42.34024)
@@ -481,6 +487,12 @@ position = Vector2(6338, -42.34024)
[node name="OldComputer" parent="." unique_id=1951254108 instance=ExtResource("19_cbp6q")] [node name="OldComputer" parent="." unique_id=1951254108 instance=ExtResource("19_cbp6q")]
unique_name_in_owner = true unique_name_in_owner = true
[node name="Sign9" parent="." unique_id=573430453 instance=ExtResource("24_wjb0r")]
position = Vector2(-1387, -14.769852)
scale = Vector2(1, 0.98465663)
sign_text = "HOLDING DOWN WILL MEDITATE"
text_dismiss_timer = 4
[node name="Block" parent="." unique_id=226580978 instance=ExtResource("2_036b0")] [node name="Block" parent="." unique_id=226580978 instance=ExtResource("2_036b0")]
position = Vector2(6637, -253.12886) position = Vector2(6637, -253.12886)
@@ -587,4 +599,70 @@ position = Vector2(247, -1261.3452)
[node name="HiddenVerticalLongBlock10" parent="." unique_id=170869907 instance=ExtResource("20_26xuy")] [node name="HiddenVerticalLongBlock10" parent="." unique_id=170869907 instance=ExtResource("20_26xuy")]
position = Vector2(247, -1371.6267) position = Vector2(247, -1371.6267)
[node name="Sign" parent="." unique_id=916197061 instance=ExtResource("24_wjb0r")]
position = Vector2(-4799, 365.30762)
sign_text = "JUMP WITH A"
[node name="Sign2" parent="." unique_id=1141422640 instance=ExtResource("24_wjb0r")]
position = Vector2(-3949, 364.32294)
sign_text = "YOU CAN JUMP AGAIN IN THE AIR"
[node name="Sign3" parent="." unique_id=692258908 instance=ExtResource("24_wjb0r")]
position = Vector2(-2941, 365.30762)
sign_text = "DASH WITH SHIFT WHILE MOVING IN A DIRECTION"
[node name="Sign4" parent="." unique_id=335524344 instance=ExtResource("24_wjb0r")]
position = Vector2(-1789, 364.32297)
sign_text = "TOUCHING A FLOOR, WALL, OR EVEN CEILING WILL REFRESH YOUR AIR JUMP"
[node name="Sign5" parent="." unique_id=349011535 instance=ExtResource("24_wjb0r")]
position = Vector2(-2908, 365.30762)
sign_text = "DASH CAN BE USED EVEN AFTER JUMPING"
text_dismiss_timer = 4
[node name="Sign6" parent="." unique_id=1820216223 instance=ExtResource("24_wjb0r")]
position = Vector2(-3918, 364.32297)
sign_text = "THE CRYSTAL FADES WHEN YOU HAVE NO JUMPS REMAINING"
text_dismiss_timer = 4
[node name="Sign7" parent="." unique_id=381974434 instance=ExtResource("24_wjb0r")]
position = Vector2(-4771, 365.30762)
sign_text = "HOLD A TO JUMP FURTHER"
text_dismiss_timer = 3
[node name="Block12" parent="." unique_id=888208031 instance=ExtResource("25_mc2jv")]
position = Vector2(-1660, 5.9079437)
[node name="Block13" parent="." unique_id=501875762 instance=ExtResource("25_mc2jv")]
position = Vector2(-1660, 20.677792)
[node name="Sign8" parent="." unique_id=460763419 instance=ExtResource("24_wjb0r")]
position = Vector2(-2876, 364.32297)
sign_text = "THE OTHER CRYSTAL WILL GO OUT WHEN NO DASHES REMAIN"
text_dismiss_timer = 4
[node name="HiddenSign" parent="." unique_id=1914486910 instance=ExtResource("26_bo7i5")]
position = Vector2(-1351, -14.769848)
sign_text = "MEDITATING REVEALS SECRETS"
text_dismiss_timer = 4
[node name="Sign10" parent="." unique_id=600787286 instance=ExtResource("24_wjb0r")]
position = Vector2(-1349, -644.9501)
sign_text = "PORTALS WORK AS EXPECTED"
[node name="Teleporter" parent="." unique_id=1261295038 instance=ExtResource("4_gbfbk")]
position = Vector2(-1295, -668.58185)
paired_teleporter = "C"
[node name="Teleporter2" parent="." unique_id=392920399 instance=ExtResource("4_gbfbk")]
position = Vector2(-1171, -669.5665)
paired_teleporter = "C"
[node name="Sign11" parent="." unique_id=933599424 instance=ExtResource("24_wjb0r")]
position = Vector2(-1115, -644.9501)
sign_text = "COINS AREN'T REAL"
[node name="HiddenCoin" parent="." unique_id=1654988120 instance=ExtResource("22_wukud")]
position = Vector2(-1063, -662.6739)
[connection signal="toggled" from="CanvasLayer/MusicButton" to="CanvasLayer/MusicButton" method="_on_toggled"] [connection signal="toggled" from="CanvasLayer/MusicButton" to="CanvasLayer/MusicButton" method="_on_toggled"]