Merge branch 'main' of https://git.nanoyagi.com/NanoYagi/JumpRopeOldTech
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
zozieee committed 2026-10-18 10:52:48 -05:00
commit 019976f997
66 files changed
+1312 -78

No files matched your search

+37
View File
@@ -0,0 +1,37 @@
[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"]
[node name="Dialogue" type="TextureRect" unique_id=733911232]
visible = false
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_4xg4g")
script = ExtResource("1_tgtc2")
[node name="Panel" type="Panel" parent="." unique_id=1878574619]
self_modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Text" type="RichTextLabel" parent="Panel" unique_id=1494828842]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 8.0
offset_top = 265.0
offset_right = -11.0
offset_bottom = -263.0
grow_horizontal = 2
grow_vertical = 2
bbcode_enabled = true
fit_content = true
+1
View File
@@ -43,6 +43,7 @@ offset_left = 150.0
offset_top = 105.0 offset_top = 105.0
offset_right = 1102.0 offset_right = 1102.0
offset_bottom = 652.0 offset_bottom = 652.0
bbcode_enabled = true
text = ">> Pharaoh OS 2000 Boot Sequence text = ">> Pharaoh OS 2000 Boot Sequence
>> WARN: Detected anomalies! >> WARN: Detected anomalies!
>> WARN: Memory integrity at %d%%! >> WARN: Memory integrity at %d%%!
+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"]
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 444 B

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 445 B

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

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: 13 KiB

+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 @@
[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_im0tn"] [ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_im0tn"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(16, 16) size = Vector2(16, 14)
[node name="Block" type="RigidBody2D" unique_id=1409784601] [node name="Block" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0 gravity_scale = 0.0
+15
View File
@@ -0,0 +1,15 @@
class_name Dialogue
extends Control
func show_text(text: String) -> Dialogue:
visible = true
$Panel/Text.text = "[center][font_size=28][color=BLACK]%s" % text
return self
func dismiss_after(secs: float) -> Dialogue:
await get_tree().create_timer(secs).timeout
return dismiss()
func dismiss() -> Dialogue:
visible = false
return self
+1
View File
@@ -0,0 +1 @@
uid://byj4ibepgm6oa
+24
View File
@@ -0,0 +1,24 @@
[gd_scene format=3 uid="uid://hqmkjtv5shyk"]
[ext_resource type="Script" uid="uid://brlrpnqrsi2vn" path="res://spike.gd" id="1_bl7j6"]
[ext_resource type="Texture2D" uid="uid://bu5wgerfu7cbc" path="res://art/spike.png" id="2_24rqj"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xfwl5"]
size = Vector2(15, 10)
[node name="Spike" type="Node2D" unique_id=1739014101]
script = ExtResource("1_bl7j6")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=813041394]
texture_filter = 1
position = Vector2(0, 2)
scale = Vector2(-1, -1)
texture = ExtResource("2_24rqj")
[node name="Area2D" type="Area2D" parent="." unique_id=170499029]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=1865546056]
position = Vector2(-0.5, -1)
shape = SubResource("RectangleShape2D_xfwl5")
[connection signal="body_entered" from="Area2D" to="." method="on_contact"]
+17
View File
@@ -0,0 +1,17 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
add_to_group("Hidden")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func on_contact(body: Node2D) -> void:
print(body)
$AudioStreamPlayer2D.play()
visible = false
%Player2D.coins += 1
await get_tree().create_timer(0.2).timeout
queue_free()
+1
View File
@@ -0,0 +1 @@
uid://7qhq76giye1v
+33
View File
@@ -0,0 +1,33 @@
[gd_scene format=3 uid="uid://be757jqlv785s"]
[ext_resource type="Script" uid="uid://7qhq76giye1v" path="res://hidden_coin.gd" id="1_4tl78"]
[ext_resource type="Texture2D" uid="uid://cr2wdd0yn1syy" path="res://art/coin_glow.png" id="2_17b6t"]
[ext_resource type="Texture2D" uid="uid://dftfxivu3peog" path="res://art/coin.png" id="3_n84lr"]
[ext_resource type="AudioStream" uid="uid://f2xmq6cgiiwj" path="res://sound/coin.wav" id="4_rxg23"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_6qpsl"]
height = 26.0
[node name="HiddenCoin" type="Node2D" unique_id=1739014101]
visible = false
script = ExtResource("1_4tl78")
[node name="PointLight2D" type="PointLight2D" parent="." unique_id=2052227436]
color = Color(0, 0.5492828, 0.05646421, 1)
energy = 4.0
texture = ExtResource("2_17b6t")
texture_scale = 1.3
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=813041394]
texture = ExtResource("3_n84lr")
[node name="Area2D" type="Area2D" parent="." unique_id=170499029]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=1865546056]
shape = SubResource("CapsuleShape2D_6qpsl")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="." unique_id=1778061188]
stream = ExtResource("4_rxg23")
volume_db = 1.0
[connection signal="body_entered" from="Area2D" to="." method="on_contact"]
+30
View File
@@ -0,0 +1,30 @@
[gd_scene format=3 uid="uid://ch0417iiviaxb"]
[ext_resource type="Script" uid="uid://dcesonmhay5vo" path="res://hidden_vertical_long_block.gd" id="1_llak8"]
[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://block.tscn" id="2_se82m"]
[node name="HiddenHorizontalLongBlock" type="RigidBody2D" unique_id=925152188]
rotation = 3.1415927
gravity_scale = 0.0
freeze = true
script = ExtResource("1_llak8")
[node name="Block" parent="." unique_id=1409784601 instance=ExtResource("2_se82m")]
[node name="Block2" parent="." unique_id=54235726 instance=ExtResource("2_se82m")]
position = Vector2(15.999999, -9.536743e-07)
[node name="Block3" parent="." unique_id=474997430 instance=ExtResource("2_se82m")]
position = Vector2(-15, 0)
[node name="Block4" parent="." unique_id=1125897933 instance=ExtResource("2_se82m")]
position = Vector2(32, -1.9073486e-06)
[node name="Block5" parent="." unique_id=1104682129 instance=ExtResource("2_se82m")]
position = Vector2(-31, 0)
[node name="Block6" parent="." unique_id=200247655 instance=ExtResource("2_se82m")]
position = Vector2(48, -1.9073486e-06)
[node name="Block7" parent="." unique_id=519163182 instance=ExtResource("2_se82m")]
position = Vector2(-47, 3.8146973e-06)
+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"]
+1
View File
@@ -3,6 +3,7 @@ extends RigidBody2D
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
add_to_group("Hidden") add_to_group("Hidden")
modulate = Color.DARK_CYAN
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void: func _process(delta: float) -> void:
+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"]
+14
View File
@@ -0,0 +1,14 @@
extends Node2D
func _ready() -> void:
pass
func _process(delta: float) -> void:
pass
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)
print(body)
+1
View File
@@ -0,0 +1 @@
uid://cvguf2l65n7xa
+32
View File
@@ -0,0 +1,32 @@
[gd_scene format=3 uid="uid://b1ccvtwwb1cl7"]
[ext_resource type="PackedScene" uid="uid://c8m4d77hcr0pj" path="res://spike.tscn" id="1_phdmj"]
[ext_resource type="Script" uid="uid://cvguf2l65n7xa" path="res://long_floor_spike.gd" id="1_rwckv"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_phdmj"]
size = Vector2(74, 9)
[node name="Spike" type="Node2D" unique_id=1739014101]
script = ExtResource("1_rwckv")
[node name="Spike" parent="." unique_id=324768327 instance=ExtResource("1_phdmj")]
[node name="Spike2" parent="." unique_id=1119131696 instance=ExtResource("1_phdmj")]
position = Vector2(15, 0)
[node name="Spike5" parent="." unique_id=356301870 instance=ExtResource("1_phdmj")]
position = Vector2(30, 0)
[node name="Spike3" parent="." unique_id=1414181030 instance=ExtResource("1_phdmj")]
position = Vector2(-15, 0)
[node name="Spike4" parent="." unique_id=333001001 instance=ExtResource("1_phdmj")]
position = Vector2(-30, 0)
[node name="Area2D" type="Area2D" parent="." unique_id=2124972792]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=371031870]
position = Vector2(0, 5.5)
shape = SubResource("RectangleShape2D_phdmj")
[connection signal="body_entered" from="Area2D" to="." method="on_contact"]
+44 -1
View File
@@ -1,7 +1,47 @@
extends CanvasLayer extends CanvasLayer
var disks_wanted = [1, 2, 3, 4]
var disks_loaded = []
var starting_integrity = 2
var total_integrity = starting_integrity + len(disks_wanted)
func _ready() -> void: func _ready() -> void:
$ConsoleText.text = $ConsoleText.text % %Pharaoh.get_memory_integrity() $ConsoleText.text = $ConsoleText.text % get_memory_integrity()
func load_disk(disk_num: int) -> bool:
if !disk_num or (disk_num in disks_loaded):
return false
disks_loaded.push_back(disk_num)
disks_wanted.remove_at(disks_wanted.find(disk_num))
print("Loaded up disk ", disk_num)
printline(
">> Loaded data disk %d (of %d). Memory integrity now at %d%%" %
[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
func get_next_disk_num() -> int:
if disks_wanted.is_empty():
return 0
return disks_wanted.front()
func get_memory_integrity():
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
@@ -11,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
+16 -35
View File
@@ -1,49 +1,30 @@
extends Interactable extends Interactable
var disks_wanted = [1, 2, 3, 4]
var disks_loaded = []
var starting_integrity = 2
var total_integrity = starting_integrity + len(disks_wanted)
func load_disk(disk_num: int) -> bool:
if !disk_num or (disk_num in disks_loaded):
return false
disks_loaded.push_back(disk_num)
disks_wanted.remove_at(disks_wanted.find(disk_num))
return true
func get_memory_integrity():
return 100.0 / total_integrity * (starting_integrity + len(disks_loaded))
func _on_interacted() -> void: func _on_interacted() -> void:
#%OldComputer.open() %OldComputer.open()
var wanted_disk = disks_wanted.front() #Accomodate some collision antics.
var new_spawn_point = global_position + Vector2(0,-10)
if %Player2D.spawn_point != new_spawn_point:
%Player2D.spawn_point = new_spawn_point
%OldComputer.printline(">> Respawn point set to %s" % new_spawn_point)
%Player2D.spawn_point = global_position var wanted_disk = %OldComputer.get_next_disk_num()
if not %Player2D.take_disk(wanted_disk): if %Player2D.complete_objective("sarc"):
if wanted_disk == 1 and not %Player2D.has_objective("disk%d" % wanted_disk): %OldComputer.open()
%OldComputer.open() %Player2D.give_objective(
%Player2D.give_objective( "disk%d" % wanted_disk,
"disk%d" % wanted_disk, wanted_disk, "Locate data disk %d" % wanted_disk
wanted_disk, "Locate data disk %d" % wanted_disk )
)
return return
if not load_disk(wanted_disk): if not (%Player2D.take_disk(wanted_disk) and %OldComputer.load_disk(wanted_disk)):
return return
%Player2D.complete_objective("disk%d" % wanted_disk) %Player2D.complete_objective("disk%d" % wanted_disk)
print("Loaded up disk ", wanted_disk) wanted_disk = %OldComputer.get_next_disk_num()
%OldComputer.printline(
">> Loaded data disk %d (of %d). Memory integrity now at %d%%" %
[wanted_disk, len(disks_wanted) + len(disks_loaded), get_memory_integrity()]
)
wanted_disk = disks_wanted.front()
if (not wanted_disk) or %Player2D.has_disk(wanted_disk): if (not wanted_disk) or %Player2D.has_disk(wanted_disk):
return return
+1 -1
View File
@@ -11,7 +11,7 @@ size = Vector2(26, 32)
script = ExtResource("1_mt7kg") script = ExtResource("1_mt7kg")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
position = Vector2(0, -15) position = Vector2(0, -16)
texture = ExtResource("2_mt7kg") texture = ExtResource("2_mt7kg")
[node name="Area2D" type="Area2D" parent="Sprite2D" unique_id=2050186824] [node name="Area2D" type="Area2D" parent="Sprite2D" unique_id=2050186824]
+25 -9
View File
@@ -7,8 +7,9 @@ const FRICTION = 100
const GRAVITY_MULT = 0.8 const GRAVITY_MULT = 0.8
const JUMP_VELOCITY = -410.0 const JUMP_VELOCITY = -410.0
const DASH_LENGTH = 0.2 const DASH_LENGTH = 0.2
const BACKGROUND_COLOR = Color.SANDY_BROWN const BACKGROUND_COLOR = Color(Color.ORANGE.r + 0.80,Color.ORANGE.g + 0.20,Color.ORANGE.b - 0.10)
var death_cooldown = 0.0
var fall_timer = 0.0 var fall_timer = 0.0
var teleport_cooldown = 0 var teleport_cooldown = 0
var jumps = 0 var jumps = 0
@@ -16,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 = {}
@@ -24,6 +27,8 @@ var objectives = {}
func _ready() -> void: 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")
#%Dialogue.show_text("Hello world!").dismiss_after(2)
func refresh_dash(new_dashes): func refresh_dash(new_dashes):
if new_dashes: if new_dashes:
@@ -91,6 +96,7 @@ func spawn_ghost(ghost_position):
ghost.position = ghost_position ghost.position = ghost_position
func on_death(instant = false, player_position = position): func on_death(instant = false, player_position = position):
death_cooldown += 1
if !instant: if !instant:
await get_tree().create_timer(0.1).timeout await get_tree().create_timer(0.1).timeout
get_tree().paused = true get_tree().paused = true
@@ -107,14 +113,27 @@ 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
death_cooldown = 0
func _process(delta: float) -> void: 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()
@@ -128,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:
@@ -147,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"):
@@ -208,7 +225,6 @@ func _process(delta: float) -> void:
#get_tree().reload_current_scene() #get_tree().reload_current_scene()
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:
if not is_on_floor(): if not is_on_floor():
velocity += (get_gravity() * GRAVITY_MULT) * delta velocity += (get_gravity() * GRAVITY_MULT) * delta
+8 -4
View File
@@ -124,10 +124,12 @@ animations = [{
"speed": 5.0 "speed": 5.0
}] }]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fj7yv"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_ix7pg"]
size = Vector2(10, 16) radius = 6.0
height = 12.0
[node name="Player2D" type="CharacterBody2D" unique_id=889851478] [node name="Player2D" type="CharacterBody2D" unique_id=889851478]
safe_margin = 0.06
script = ExtResource("1_sy00s") script = ExtResource("1_sy00s")
[node name="BackgroundMusic" type="AudioStreamPlayer2D" parent="." unique_id=299359239] [node name="BackgroundMusic" type="AudioStreamPlayer2D" parent="." unique_id=299359239]
@@ -139,6 +141,7 @@ script = ExtResource("3_sxtm6")
[node name="WarpShader" type="MeshInstance2D" parent="CanvasLayer2" unique_id=88397728] [node name="WarpShader" type="MeshInstance2D" parent="CanvasLayer2" unique_id=88397728]
material = SubResource("ShaderMaterial_pmt5n") material = SubResource("ShaderMaterial_pmt5n")
position = Vector2(0, -1)
mesh = SubResource("QuadMesh_nj6as") mesh = SubResource("QuadMesh_nj6as")
script = ExtResource("4_pmt5n") script = ExtResource("4_pmt5n")
@@ -148,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
@@ -220,4 +223,5 @@ stream = ExtResource("20_l50qk")
stream = ExtResource("20_1741q") stream = ExtResource("20_1741q")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1294571021] [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1294571021]
shape = SubResource("RectangleShape2D_fj7yv") position = Vector2(0, 3)
shape = SubResource("CapsuleShape2D_ix7pg")
+10 -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": "",
@@ -383,6 +383,14 @@ interact={
"location": 0, "location": 0,
"echo": false, "echo": false,
"script": null "script": null
), Object(InputEventJoypadButton,
"resource_local_to_scene": false,
"resource_name": "",
"device": -1,
"button_index": 1,
"pressure": 0.0,
"pressed": true,
"script": null
)] )]
} }
+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 -2
View File
@@ -7,9 +7,8 @@ func _process(delta: float) -> void:
pass pass
func on_contact(body: Node2D) -> void: func on_contact(body: Node2D) -> void:
if body==%Player2D: if body==%Player2D and %Player2D.death_cooldown == 0:
print("SLASH KILL") print("SLASH KILL")
%Player2D/Jetpack/DeathSound.play() %Player2D/Jetpack/DeathSound.play()
%Player2D.on_death(false,%Player2D.position) %Player2D.on_death(false,%Player2D.position)
print(body) print(body)
+2 -2
View File
@@ -4,7 +4,7 @@
[ext_resource type="Texture2D" uid="uid://bu5wgerfu7cbc" path="res://art/spike.png" id="2_7k7bx"] [ext_resource type="Texture2D" uid="uid://bu5wgerfu7cbc" path="res://art/spike.png" id="2_7k7bx"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xfwl5"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_xfwl5"]
size = Vector2(15, 12) size = Vector2(15, 7.5)
[node name="Spike" type="Node2D" unique_id=1739014101] [node name="Spike" type="Node2D" unique_id=1739014101]
script = ExtResource("1_7k7bx") script = ExtResource("1_7k7bx")
@@ -17,7 +17,7 @@ texture = ExtResource("2_7k7bx")
[node name="Area2D" type="Area2D" parent="." unique_id=170499029] [node name="Area2D" type="Area2D" parent="." unique_id=170499029]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=1865546056] [node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=1865546056]
position = Vector2(-0.5, 0) position = Vector2(0, 4.75)
shape = SubResource("RectangleShape2D_xfwl5") shape = SubResource("RectangleShape2D_xfwl5")
[connection signal="body_entered" from="Area2D" to="." method="on_contact"] [connection signal="body_entered" from="Area2D" to="." method="on_contact"]
+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")
+18
View File
@@ -0,0 +1,18 @@
[gd_scene format=3 uid="uid://byfgwmvln8ukh"]
[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_j20nc"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
size = Vector2(16, 16)
[node name="Block" type="RigidBody2D" unique_id=1409784601]
gravity_scale = 0.0
freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
shape = SubResource("RectangleShape2D_f3sb7")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
texture_filter = 1
rotation = 1.5707964
texture = ExtResource("1_j20nc")
+183 -14
View File
@@ -18,7 +18,14 @@
[ext_resource type="Script" uid="uid://d3rx82psovcpp" path="res://music_button.gd" id="14_70uel"] [ext_resource type="Script" uid="uid://d3rx82psovcpp" path="res://music_button.gd" id="14_70uel"]
[ext_resource type="Script" uid="uid://oyyhhy1gemg0" path="res://objectives_label.gd" id="14_ikiii"] [ext_resource type="Script" uid="uid://oyyhhy1gemg0" path="res://objectives_label.gd" id="14_ikiii"]
[ext_resource type="PackedScene" uid="uid://dr8h8xij3qw2h" path="res://pharaoh.tscn" id="15_hiqwa"] [ext_resource type="PackedScene" uid="uid://dr8h8xij3qw2h" path="res://pharaoh.tscn" id="15_hiqwa"]
[ext_resource type="PackedScene" uid="uid://bla1cfndgad0" path="res://Dialogue.tscn" id="19_26xuy"]
[ext_resource type="PackedScene" uid="uid://bcu7ftukipiyy" path="res://OldComputer.tscn" id="19_cbp6q"] [ext_resource type="PackedScene" uid="uid://bcu7ftukipiyy" path="res://OldComputer.tscn" id="19_cbp6q"]
[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://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
@@ -26,24 +33,49 @@ 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(-1004, -1335.1945) position = Vector2(-4838.9995, 356.4457)
rotation = 0.0005533503
safe_margin = 0.08
[node name="StartingArea" type="Node2D" parent="." unique_id=130240736] [node name="StartingArea" type="Node2D" parent="." unique_id=130240736]
position = Vector2(-842, -1300.7314) position = Vector2(-4673, 390.9087)
[node name="LongerBlock" parent="StartingArea" unique_id=426800863 instance=ExtResource("6_dwbse")] [node name="LongerBlock" parent="StartingArea" unique_id=1619185575 instance=ExtResource("6_dwbse")]
position = Vector2(-17, -17.72377) position = Vector2(-17, -17.72377)
[node name="LongerBlock3" parent="StartingArea" unique_id=1122236775 instance=ExtResource("6_dwbse")] [node name="LongerBlock2" parent="StartingArea" unique_id=426800863 instance=ExtResource("6_dwbse")]
position = Vector2(-193, -179.20744) position = Vector2(650, -17.72377)
rotation = 1.5707964
[node name="LongerBlock2" parent="StartingArea" unique_id=75325542 instance=ExtResource("6_dwbse")] [node name="LongerBlock5" parent="StartingArea" unique_id=1844119708 instance=ExtResource("6_dwbse")]
position = Vector2(-17, -79.75723) position = Vector2(1657, -18.708487)
[node name="LongerBlock7" parent="StartingArea" unique_id=2057011049 instance=ExtResource("6_dwbse")]
position = Vector2(2804, -19.693142)
[node name="LongerBlock8" parent="StartingArea" unique_id=74356311 instance=ExtResource("6_dwbse")]
position = Vector2(3174, -397.80124)
[node name="LongerBlock11" parent="StartingArea" unique_id=624436532 instance=ExtResource("6_dwbse")]
position = Vector2(3390, -1028.9663)
[node name="LongerBlock9" parent="StartingArea" unique_id=1224082804 instance=ExtResource("6_dwbse")]
position = Vector2(3723, -1028.9663)
[node name="Pharaoh" parent="StartingArea" unique_id=1201409437 instance=ExtResource("15_hiqwa")] [node name="Pharaoh" parent="StartingArea" unique_id=1201409437 instance=ExtResource("15_hiqwa")]
position = Vector2(-62, -24.616333) position = Vector2(-62, -24.616333)
[node name="Pharaoh2" parent="StartingArea" unique_id=472779826 instance=ExtResource("15_hiqwa")]
position = Vector2(615, -24.616425)
[node name="Pharaoh3" parent="StartingArea" unique_id=1148075738 instance=ExtResource("15_hiqwa")]
position = Vector2(1609, -26.585724)
[node name="Pharaoh4" parent="StartingArea" unique_id=764966940 instance=ExtResource("15_hiqwa")]
position = Vector2(2751, -27.570404)
[node name="Pharaoh5" parent="StartingArea" unique_id=2064737854 instance=ExtResource("15_hiqwa")]
position = Vector2(3089, -403.70926)
[node name="Tutorial" type="Node2D" parent="." unique_id=1391494772] [node name="Tutorial" type="Node2D" parent="." unique_id=1391494772]
[node name="Block2" parent="Tutorial" unique_id=878186522 instance=ExtResource("2_036b0")] [node name="Block2" parent="Tutorial" unique_id=878186522 instance=ExtResource("2_036b0")]
@@ -422,8 +454,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 = 605.0 offset_left = 11.0
offset_bottom = 274.0 offset_top = 9.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
@@ -450,17 +484,31 @@ texture_pressed = ExtResource("13_70uel")
texture_disabled = ExtResource("13_70uel") texture_disabled = ExtResource("13_70uel")
script = ExtResource("14_70uel") script = ExtResource("14_70uel")
[node name="Pharaoh" parent="." unique_id=44054531 instance=ExtResource("15_hiqwa")] [node name="Dialogue" parent="CanvasLayer" unique_id=1025022375 instance=ExtResource("19_26xuy")]
unique_name_in_owner = true unique_name_in_owner = true
position = Vector2(192, 177.23824) offset_left = 3.9999995
offset_top = 550.99994
offset_right = 268.38086
offset_bottom = -7.640442
rotation = 4.9367074e-05
scale = Vector2(0.8267815, 0.8267815)
stretch_mode = 5
[node name="Pharaoh" parent="." unique_id=44054531 instance=ExtResource("15_hiqwa")]
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")]
unique_name_in_owner = true position = Vector2(6338, -42.34024)
position = Vector2(6338, -58.09474)
[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)
@@ -512,4 +560,125 @@ position = Vector2(7732, -109.12882)
[node name="VerticalLongBlock6" parent="." unique_id=200846556 instance=ExtResource("4_pkg7o")] [node name="VerticalLongBlock6" parent="." unique_id=200846556 instance=ExtResource("4_pkg7o")]
position = Vector2(7865, -18.128824) position = Vector2(7865, -18.128824)
[node name="Pharaoh4" parent="." unique_id=439750165 instance=ExtResource("15_hiqwa")]
position = Vector2(4097, 175.26888)
[node name="Pharaoh3" parent="." unique_id=998592579 instance=ExtResource("15_hiqwa")]
position = Vector2(-883, -642.9808)
[node name="HiddenVerticalLongBlock" parent="." unique_id=550983536 instance=ExtResource("20_26xuy")]
visible = true
position = Vector2(-1625, -449.00342)
rotation = 0.0
[node name="HiddenVerticalLongBlock11" parent="." unique_id=1548779318 instance=ExtResource("20_26xuy")]
visible = true
position = Vector2(-1806, -161.48367)
rotation = 0.0
[node name="HiddenVerticalLongBlock12" parent="." unique_id=225495194 instance=ExtResource("20_26xuy")]
visible = true
position = Vector2(-2003, -321.98273)
rotation = 0.0
[node name="HiddenVerticalLongBlock2" parent="." unique_id=671573231 instance=ExtResource("20_26xuy")]
visible = true
position = Vector2(-4696, 435.21823)
[node name="HiddenHorizontalLongBlock" parent="." unique_id=252771458 instance=ExtResource("21_bc84e")]
position = Vector2(-4647, 485.43573)
[node name="Coin" parent="." unique_id=1292877109 instance=ExtResource("22_wukud")]
position = Vector2(-4646, 447.03412)
[node name="HiddenVerticalLongBlock3" parent="." unique_id=9509488 instance=ExtResource("20_26xuy")]
position = Vector2(249, -709.93744)
[node name="HiddenVerticalLongBlock4" parent="." unique_id=1392186992 instance=ExtResource("20_26xuy")]
position = Vector2(249, -600.64056)
[node name="HiddenVerticalLongBlock5" parent="." unique_id=1233145931 instance=ExtResource("20_26xuy")]
position = Vector2(248, -822.1883)
[node name="HiddenVerticalLongBlock6" parent="." unique_id=1910226562 instance=ExtResource("20_26xuy")]
position = Vector2(248, -932.46985)
[node name="HiddenVerticalLongBlock7" parent="." unique_id=808086224 instance=ExtResource("20_26xuy")]
position = Vector2(248, -1149.0942)
[node name="HiddenVerticalLongBlock8" parent="." unique_id=1783201320 instance=ExtResource("20_26xuy")]
position = Vector2(248, -1039.7974)
[node name="HiddenVerticalLongBlock9" parent="." unique_id=1967440515 instance=ExtResource("20_26xuy")]
position = Vector2(247, -1261.3452)
[node name="HiddenVerticalLongBlock10" parent="." unique_id=170869907 instance=ExtResource("20_26xuy")]
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"]