Commit of existing data.

This commit is contained in:
2025-06-22 23:22:32 -06:00
commit 1bbd8c812f
208 changed files with 6327 additions and 0 deletions
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://4js1bkdv4ind"
path="res://.godot/imported/lab-background.png-af2585ad1cd88c2453fe08aa1aeecb61.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgrounds/lab-background.png"
dest_files=["res://.godot/imported/lab-background.png-af2585ad1cd88c2453fe08aa1aeecb61.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bluwleimw435s"
path="res://.godot/imported/lab-foreground.png-f458ead3de93179b0e34957b179f35b3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgrounds/lab-foreground.png"
dest_files=["res://.godot/imported/lab-foreground.png-f458ead3de93179b0e34957b179f35b3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://drdifw86rleq3"
path="res://.godot/imported/demon_cg.png-35e296c7adfd3427d083b30af37884f6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cg/demon_cg.png"
dest_files=["res://.godot/imported/demon_cg.png-35e296c7adfd3427d083b30af37884f6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 574 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dm7br2lt50ndq"
path="res://.godot/imported/doc_cg.png-9a6c378f49d87eb756740781ddbe9a4a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cg/doc_cg.png"
dest_files=["res://.godot/imported/doc_cg.png-9a6c378f49d87eb756740781ddbe9a4a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dujs0317iwo80"
path="res://.godot/imported/generic_cg.png-501538e97bf67c2cb2f5fe0c8213656d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cg/generic_cg.png"
dest_files=["res://.godot/imported/generic_cg.png-501538e97bf67c2cb2f5fe0c8213656d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ba4o7x0jwxk4w"
path="res://.godot/imported/guard_cg.png-9352a28d7dc4ebafe834e3738d008e6a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cg/guard_cg.png"
dest_files=["res://.godot/imported/guard_cg.png-9352a28d7dc4ebafe834e3738d008e6a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/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
Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 830 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wgpcep5qsvdp"
path="res://.godot/imported/lb_cg.png-d8d979a315f5353f5704b56dc05c43c1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cg/lb_cg.png"
dest_files=["res://.godot/imported/lb_cg.png-d8d979a315f5353f5704b56dc05c43c1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 785 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://hodqfba330d7"
path="res://.godot/imported/met_cg.png-c570dff39e1f4010d05a8f2d025e92dd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cg/met_cg.png"
dest_files=["res://.godot/imported/met_cg.png-c570dff39e1f4010d05a8f2d025e92dd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://brn82jyieuv27"
path="res://.godot/imported/plant_cg.png-d1d9960eb3450a8737e951504f20f91a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cg/plant_cg.png"
dest_files=["res://.godot/imported/plant_cg.png-d1d9960eb3450a8737e951504f20f91a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 583 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dpvqijspkhod"
path="res://.godot/imported/spid_cg.png-7ba8afaaa950ec3f2d82473935743524.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cg/spid_cg.png"
dest_files=["res://.godot/imported/spid_cg.png-7ba8afaaa950ec3f2d82473935743524.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bb16y2ft2ntgr"
path="res://.godot/imported/suc_cg.png-a6bafc5dbdfa314a931c84da0ebf177c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cg/suc_cg.png"
dest_files=["res://.godot/imported/suc_cg.png-a6bafc5dbdfa314a931c84da0ebf177c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bmq2b8sb5ut84"
path="res://.godot/imported/wi_cg.png-3c68005b309bee99f75ee884b08de1ea.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cg/wi_cg.png"
dest_files=["res://.godot/imported/wi_cg.png-3c68005b309bee99f75ee884b08de1ea.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/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
+15
View File
@@ -0,0 +1,15 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://b8s368qu8qi6t"]
[resource]
bus/1/name = &"Music"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 0.0
bus/1/send = &"Master"
bus/2/name = &"SFX"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 0.0
bus/2/send = &"Master"
+77
View File
@@ -0,0 +1,77 @@
[preset.0]
name="Linux/X11"
platform="Linux/X11"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path=""
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
[preset.0.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=true
texture_format/bptc=true
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
export DISPLAY=:0
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
\"{temp_dir}/{exe_name}\" {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\""
[preset.1]
name="Web"
platform="Web"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path=""
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
[preset.1.options]
custom_template/debug=""
custom_template/release=""
variant/extensions_support=false
vram_texture_compression/for_desktop=true
vram_texture_compression/for_mobile=false
html/export_icon=true
html/custom_html_shell=""
html/head_include=""
html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=false
progressive_web_app/offline_page=""
progressive_web_app/display=1
progressive_web_app/orientation=0
progressive_web_app/icon_144x144=""
progressive_web_app/icon_180x180=""
progressive_web_app/icon_512x512=""
progressive_web_app/background_color=Color(0, 0, 0, 1)
BIN
View File
Binary file not shown.
+35
View File
@@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://2u55t02l6vq8"
path="res://.godot/imported/Kenney Mini Square.ttf-1f4c1a99a59ae08657fdeadcb5ed3ee0.fontdata"
[deps]
source_file="res://fonts/Kenney Mini Square.ttf"
dest_files=["res://.godot/imported/Kenney Mini Square.ttf-1f4c1a99a59ae08657fdeadcb5ed3ee0.fontdata"]
[params]
Rendering=null
antialiasing=0
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=0
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}
BIN
View File
Binary file not shown.
+35
View File
@@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://qga7hxbgghco"
path="res://.godot/imported/Kenney Mini.ttf-7e07372b7d2e719119d99587e44ddefb.fontdata"
[deps]
source_file="res://fonts/Kenney Mini.ttf"
dest_files=["res://.godot/imported/Kenney Mini.ttf-7e07372b7d2e719119d99587e44ddefb.fontdata"]
[params]
Rendering=null
antialiasing=0
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=0
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}
Executable
+52
View File
@@ -0,0 +1,52 @@
extends CanvasLayer
var config: Config = Config.new()
var save: Save = Save.new(1)
var timestamp: int
var player: Player
var player_offset: Vector2
var player_velocity: Vector2
var player_target: String
@onready var overlay: ColorRect = $ColorRect
@onready var animation_player: AnimationPlayer = $AnimationPlayer
@onready var music_player: AudioStreamPlayer = $MusicPlayer
func _ready() -> void:
pass
func goto_scene(scene: PackedScene, fade: bool = true):
if fade:
await fade_out()
_deferred_goto_scene.call_deferred(scene)
func _deferred_goto_scene(scene: PackedScene):
if !scene:
return
get_tree().current_scene.free()
var inst_scene := scene.instantiate()
get_tree().root.add_child(inst_scene)
get_tree().current_scene = inst_scene
func fade_in() -> void:
animation_player.play("fade_in")
await animation_player.animation_finished
overlay.hide()
func fade_out() -> void:
overlay.show()
animation_player.play("fade_out")
await animation_player.animation_finished
func set_music(audio_stream: AudioStream):
if music_player.stream == audio_stream:
return
music_player.stream = audio_stream
music_player.play()
pass
Executable
+1
View File
@@ -0,0 +1 @@
uid://c5828brdwf0ef
Executable
+82
View File
@@ -0,0 +1,82 @@
[gd_scene load_steps=7 format=3 uid="uid://cf6hsqscvsk42"]
[ext_resource type="Script" uid="uid://c5828brdwf0ef" path="res://global.gd" id="1_o7u50"]
[ext_resource type="AudioStream" uid="uid://crgyul2o4b36b" path="res://music/area_0.ogg" id="2_pjt3s"]
[sub_resource type="Animation" id="Animation_2jx0t"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_tsy5r"]
resource_name = "fade_in"
length = 0.25
step = 0.01
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.24),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_wrddv"]
resource_name = "fade_out"
length = 0.25
step = 0.01
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.24),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_nsh7t"]
_data = {
&"RESET": SubResource("Animation_2jx0t"),
&"fade_in": SubResource("Animation_tsy5r"),
&"fade_out": SubResource("Animation_wrddv")
}
[node name="Global" type="CanvasLayer"]
script = ExtResource("1_o7u50")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_nsh7t")
}
[node name="ColorRect" type="ColorRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("2_pjt3s")
autoplay = true
mix_target = 1
bus = &"Music"
Executable
+1
View File
@@ -0,0 +1 @@
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z" fill="#478cbf"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>

After

Width:  |  Height:  |  Size: 949 B

+37
View File
@@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://367or7daq7rw"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.svg"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+9
View File
@@ -0,0 +1,9 @@
[gd_scene format=3 uid="uid://cte8keoftyqt3"]
[node name="ContinueGameMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
+31
View File
@@ -0,0 +1,31 @@
extends TextureRect
func _ready() -> void:
$VBoxContainer/Btn_NewGame.grab_focus()
global.set_music(load("res://music/area_0.ogg"))
await global.fade_in()
func _process(_delta: float) -> void:
if Input.is_action_just_pressed("ui_cancel"):
$VBoxContainer/Btn_Quit.emit_signal("pressed")
func _on_btn_new_game_pressed():
var scene = load("res://menus/new_game_menu.tscn")
global.goto_scene(scene)
func _on_btn_continue_pressed():
var scene = load("res://menus/continue_game_menu.tscn")
global.goto_scene(scene)
func _on_btn_options_pressed():
var scene = load("res://menus/options_menu.tscn")
global.goto_scene(scene)
func _on_btn_quit_pressed():
await global.fade_out()
get_tree().quit()
+1
View File
@@ -0,0 +1 @@
uid://3bfn7lgm1s3h
+54
View File
@@ -0,0 +1,54 @@
[gd_scene load_steps=7 format=3 uid="uid://cq6uwsye435dr"]
[ext_resource type="Theme" uid="uid://d01fm68pwgnvc" path="res://ui/default_theme.tres" id="1_6mtu4"]
[ext_resource type="Texture2D" uid="uid://w7m2ybuqy1bw" path="res://ui/background.png" id="2_bhgnh"]
[ext_resource type="Script" uid="uid://3bfn7lgm1s3h" path="res://menus/main_menu.gd" id="3_3kxo1"]
[ext_resource type="PackedScene" uid="uid://bqlbo0yh111fw" path="res://objects/ui/sound_button.tscn" id="5_511f8"]
[ext_resource type="AudioStream" uid="uid://3p3r68ntjf4u" path="res://sounds/ui/menu_click.wav" id="5_h8vgu"]
[ext_resource type="AudioStream" uid="uid://cs58kp03yj1kf" path="res://sounds/ui/menu_confirm.wav" id="6_su02e"]
[node name="Main_Menu" type="TextureRect"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("1_6mtu4")
texture = ExtResource("2_bhgnh")
script = ExtResource("3_3kxo1")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 0
offset_top = 144.0
offset_right = 320.0
offset_bottom = 240.0
theme_override_constants/separation = 2
[node name="Btn_NewGame" parent="VBoxContainer" instance=ExtResource("5_511f8")]
layout_mode = 2
text = "New Game"
FocusSound = ExtResource("5_h8vgu")
PressSound = ExtResource("6_su02e")
[node name="Btn_Continue" parent="VBoxContainer" instance=ExtResource("5_511f8")]
layout_mode = 2
text = "Continue"
FocusSound = ExtResource("5_h8vgu")
PressSound = ExtResource("6_su02e")
[node name="Btn_Options" parent="VBoxContainer" instance=ExtResource("5_511f8")]
layout_mode = 2
text = "Options"
FocusSound = ExtResource("5_h8vgu")
PressSound = ExtResource("6_su02e")
[node name="Btn_Quit" parent="VBoxContainer" instance=ExtResource("5_511f8")]
layout_mode = 2
text = "Quit"
FocusSound = ExtResource("5_h8vgu")
PressSound = ExtResource("6_su02e")
[connection signal="pressed" from="VBoxContainer/Btn_NewGame" to="." method="_on_btn_new_game_pressed"]
[connection signal="pressed" from="VBoxContainer/Btn_Continue" to="." method="_on_btn_continue_pressed"]
[connection signal="pressed" from="VBoxContainer/Btn_Options" to="." method="_on_btn_options_pressed"]
[connection signal="pressed" from="VBoxContainer/Btn_Quit" to="." method="_on_btn_quit_pressed"]
+127
View File
@@ -0,0 +1,127 @@
extends Control
const PROTAG_IMAGE = preload("res://ui/protag_image.tres")
const GRAYSCALE = preload("res://shaders/grayscale.material")
var slot: int
var save1: Save
var save2: Save
var save3: Save
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
save1 = Save.load(1)
save2 = Save.load(2)
save3 = Save.load(3)
set_slot(1, save1)
set_slot(2, save2)
set_slot(3, save3)
$HBoxContainer/Btn_Slot1.grab_focus()
await global.fade_in()
func _process(_delta: float) -> void:
if Input.is_action_just_pressed("ui_cancel"):
if $DifficultyDialog.visible:
$DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyBack.emit_signal("pressed")
elif $OverwriteDialog.visible:
$OverwriteDialog.get_cancel_button().emit_signal("pressed")
else:
_on_btn_back_pressed()
func _on_btn_back_pressed() -> void:
var scene = load("res://menus/main_menu.tscn")
global.goto_scene(scene)
func _on_btn_slot_1_pressed() -> void:
global.save = Save.new(1)
$Overlay.show()
if save1:
$OverwriteDialog.show()
else:
$DifficultyDialog.show()
$DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyEasy.grab_focus()
func _on_btn_slot_2_pressed() -> void:
global.save = Save.new(2)
$Overlay.show()
if save2:
$OverwriteDialog.show()
else:
$DifficultyDialog.show()
$DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyEasy.grab_focus()
func _on_btn_slot_3_pressed() -> void:
global.save = Save.new(3)
$Overlay.show()
if save3:
$OverwriteDialog.show()
else:
$DifficultyDialog.show()
$DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyEasy.grab_focus()
func _on_overwrite_dialog_confirmed() -> void:
$DifficultyDialog.show()
$DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyEasy.grab_focus()
func _on_overwrite_dialog_canceled() -> void:
global.save = null
$Overlay.hide()
func _on_btn_difficulty_easy_pressed() -> void:
global.save.difficulty = Save.Difficulty.EASY
global.save.save_to_disk()
var scene = load("res://rooms/%s.tscn" % global.save.room)
$DifficultyDialog.hide()
global.goto_scene(scene)
func _on_btn_difficulty_normal_pressed() -> void:
global.save.difficulty = Save.Difficulty.NORMAL
global.save.save_to_disk()
var scene = load("res://rooms/%s.tscn" % global.save.room)
$DifficultyDialog.hide()
global.goto_scene(scene)
func _on_btn_difficulty_hard_pressed() -> void:
global.save.difficulty = Save.Difficulty.HARD
global.save.save_to_disk()
var scene = load("res://rooms/%s.tscn" % global.save.room)
$DifficultyDialog.hide()
global.goto_scene(scene)
func _on_btn_difficulty_back_pressed() -> void:
global.save = null
$DifficultyDialog.hide()
$Overlay.hide()
func set_slot(save_slot: int, save: Save) -> void:
var basePath = "HBoxContainer/Btn_Slot%s" % save_slot
if save:
var ts = Timespan.new(save.playtime)
get_node(basePath + "/VBoxContainer/Lab_Playtime").text = "%dH %dM %dS" % [floori(ts.TotalHours()), ts.Minutes(), ts.Seconds()]
get_node(basePath + "/VBoxContainer/SlotImage").texture = PROTAG_IMAGE
get_node(basePath + "/VBoxContainer/Box_Abilities").show()
if !save.fire: get_node(basePath + "/VBoxContainer/Box_Abilities/Tex_Fire").material = GRAYSCALE
if !save.ice: get_node(basePath + "/VBoxContainer/Box_Abilities/Tex_Ice").material = GRAYSCALE
if !save.laser: get_node(basePath + "/VBoxContainer/Box_Abilities/Tex_Laser").material = GRAYSCALE
get_node(basePath + "/VBoxContainer/Grid_Stats").show()
get_node(basePath + "/VBoxContainer/Grid_Stats/Lab_AtkValue").text = "%s" % save.atk
get_node(basePath + "/VBoxContainer/Grid_Stats/Lab_DefValue").text = "%s" % save.def
get_node(basePath + "/VBoxContainer/Grid_Stats/Lab_ConValue").text = "%s" % save.con
get_node(basePath + "/VBoxContainer/Grid_Stats/Lab_ChgValue").text = "%s" % save.chg
+1
View File
@@ -0,0 +1 @@
uid://nbqru7pv7cxc
+510
View File
@@ -0,0 +1,510 @@
[gd_scene load_steps=13 format=3 uid="uid://cddg48xuodm4s"]
[ext_resource type="Theme" uid="uid://d01fm68pwgnvc" path="res://ui/default_theme.tres" id="1_g6v0u"]
[ext_resource type="Script" uid="uid://nbqru7pv7cxc" path="res://menus/new_game_menu.gd" id="2_ysy8u"]
[ext_resource type="PackedScene" uid="uid://bqlbo0yh111fw" path="res://objects/ui/sound_button.tscn" id="3_4w7h3"]
[ext_resource type="Texture2D" uid="uid://beomt8bs2wra2" path="res://ui/empty_ico.png" id="3_cjw05"]
[ext_resource type="AudioStream" uid="uid://3p3r68ntjf4u" path="res://sounds/ui/menu_click.wav" id="4_cgk43"]
[ext_resource type="Texture2D" uid="uid://kwsk0b5ff8k1" path="res://ui/fire_ico.png" id="4_eltv3"]
[ext_resource type="Texture2D" uid="uid://dh8ike5vblov0" path="res://ui/ice_ico.png" id="5_5ypbk"]
[ext_resource type="AudioStream" uid="uid://cs58kp03yj1kf" path="res://sounds/ui/menu_confirm.wav" id="5_sr5rb"]
[ext_resource type="Texture2D" uid="uid://v0wt3up1lrkm" path="res://ui/laser_ico.png" id="6_vchad"]
[ext_resource type="Texture2D" uid="uid://pk0b46lb6tmo" path="res://ui/cryo_image.tres" id="8_d3r81"]
[ext_resource type="Script" uid="uid://h6prwf5a5wwr" path="res://objects/ui/sound_button.gd" id="11_qvsy4"]
[sub_resource type="StyleBoxLine" id="StyleBoxLine_3e3iv"]
color = Color(1, 1, 1, 1)
[node name="NewGameMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("1_g6v0u")
script = ExtResource("2_ysy8u")
[node name="Label" type="Label" parent="."]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -39.0
offset_top = 18.0
offset_right = 46.0
offset_bottom = 41.0
grow_horizontal = 2
text = "New Game"
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -150.0
offset_top = -61.0
offset_right = 150.0
offset_bottom = 61.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 7
alignment = 1
[node name="Btn_Slot1" parent="HBoxContainer" instance=ExtResource("3_4w7h3")]
layout_mode = 2
size_flags_horizontal = 3
focus_neighbor_left = NodePath("../Btn_Slot3")
focus_neighbor_right = NodePath("../Btn_Slot2")
theme_type_variation = &"SaveSlotButton"
FocusSound = ExtResource("4_cgk43")
PressSound = ExtResource("5_sr5rb")
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/Btn_Slot1"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 1
[node name="SlotLabel" type="Label" parent="HBoxContainer/Btn_Slot1/VBoxContainer"]
layout_mode = 2
text = "Slot 1"
horizontal_alignment = 1
[node name="Lab_Playtime" type="Label" parent="HBoxContainer/Btn_Slot1/VBoxContainer"]
layout_mode = 2
theme_type_variation = &"SaveSlotBodyLabel"
text = "Empty"
horizontal_alignment = 1
[node name="SlotImage" type="TextureRect" parent="HBoxContainer/Btn_Slot1/VBoxContainer"]
custom_minimum_size = Vector2(42, 42)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("8_d3r81")
stretch_mode = 3
[node name="Box_Abilities" type="HBoxContainer" parent="HBoxContainer/Btn_Slot1/VBoxContainer"]
visible = false
layout_mode = 2
theme_override_constants/separation = 1
alignment = 1
[node name="Tex_Blast" type="TextureRect" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("3_cjw05")
[node name="Tex_Fire" type="TextureRect" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("4_eltv3")
[node name="Tex_Ice" type="TextureRect" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("5_5ypbk")
[node name="Tex_Laser" type="TextureRect" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("6_vchad")
[node name="Grid_Stats" type="GridContainer" parent="HBoxContainer/Btn_Slot1/VBoxContainer"]
visible = false
layout_mode = 2
columns = 4
[node name="Lab_Atk" type="Label" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Atk"
[node name="Lab_AtkValue" type="Label" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Lab_Def" type="Label" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Def"
[node name="Lab_DefValue" type="Label" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Lab_Con" type="Label" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Con"
[node name="Lab_ConValue" type="Label" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Lab_Chg" type="Label" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Chg"
[node name="Lab_ChgValue" type="Label" parent="HBoxContainer/Btn_Slot1/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Btn_Slot2" parent="HBoxContainer" instance=ExtResource("3_4w7h3")]
layout_mode = 2
size_flags_horizontal = 3
focus_neighbor_left = NodePath("../Btn_Slot1")
focus_neighbor_right = NodePath("../Btn_Slot3")
theme_type_variation = &"SaveSlotButton"
FocusSound = ExtResource("4_cgk43")
PressSound = ExtResource("5_sr5rb")
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/Btn_Slot2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 1
[node name="SlotLabel" type="Label" parent="HBoxContainer/Btn_Slot2/VBoxContainer"]
layout_mode = 2
text = "Slot 2"
horizontal_alignment = 1
[node name="Lab_Playtime" type="Label" parent="HBoxContainer/Btn_Slot2/VBoxContainer"]
layout_mode = 2
theme_type_variation = &"SaveSlotBodyLabel"
text = "Empty"
horizontal_alignment = 1
[node name="SlotImage" type="TextureRect" parent="HBoxContainer/Btn_Slot2/VBoxContainer"]
custom_minimum_size = Vector2(42, 42)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("8_d3r81")
stretch_mode = 3
[node name="Box_Abilities" type="HBoxContainer" parent="HBoxContainer/Btn_Slot2/VBoxContainer"]
visible = false
layout_mode = 2
theme_override_constants/separation = 1
alignment = 1
[node name="Tex_Blast" type="TextureRect" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("3_cjw05")
[node name="Tex_Fire" type="TextureRect" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("4_eltv3")
[node name="Tex_Ice" type="TextureRect" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("5_5ypbk")
[node name="Tex_Laser" type="TextureRect" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("6_vchad")
[node name="Grid_Stats" type="GridContainer" parent="HBoxContainer/Btn_Slot2/VBoxContainer"]
visible = false
layout_mode = 2
columns = 4
[node name="Lab_Atk" type="Label" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Atk"
[node name="Lab_AtkValue" type="Label" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Lab_Def" type="Label" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Def"
[node name="Lab_DefValue" type="Label" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Lab_Con" type="Label" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Con"
[node name="Lab_ConValue" type="Label" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Lab_Chg" type="Label" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Chg"
[node name="Lab_ChgValue" type="Label" parent="HBoxContainer/Btn_Slot2/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Btn_Slot3" parent="HBoxContainer" instance=ExtResource("3_4w7h3")]
layout_mode = 2
size_flags_horizontal = 3
focus_neighbor_left = NodePath("../Btn_Slot2")
focus_neighbor_right = NodePath("../Btn_Slot1")
theme_type_variation = &"SaveSlotButton"
FocusSound = ExtResource("4_cgk43")
PressSound = ExtResource("5_sr5rb")
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/Btn_Slot3"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 1
[node name="SlotLabel" type="Label" parent="HBoxContainer/Btn_Slot3/VBoxContainer"]
layout_mode = 2
text = "Slot 3"
horizontal_alignment = 1
[node name="Lab_Playtime" type="Label" parent="HBoxContainer/Btn_Slot3/VBoxContainer"]
layout_mode = 2
theme_type_variation = &"SaveSlotBodyLabel"
text = "Empty"
horizontal_alignment = 1
[node name="SlotImage" type="TextureRect" parent="HBoxContainer/Btn_Slot3/VBoxContainer"]
custom_minimum_size = Vector2(42, 42)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("8_d3r81")
stretch_mode = 3
[node name="Box_Abilities" type="HBoxContainer" parent="HBoxContainer/Btn_Slot3/VBoxContainer"]
visible = false
layout_mode = 2
theme_override_constants/separation = 1
alignment = 1
[node name="Tex_Blast" type="TextureRect" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("3_cjw05")
[node name="Tex_Fire" type="TextureRect" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("4_eltv3")
[node name="Tex_Ice" type="TextureRect" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("5_5ypbk")
[node name="Tex_Laser" type="TextureRect" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Box_Abilities"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("6_vchad")
[node name="Grid_Stats" type="GridContainer" parent="HBoxContainer/Btn_Slot3/VBoxContainer"]
visible = false
layout_mode = 2
columns = 4
[node name="Lab_Atk" type="Label" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Atk"
[node name="Lab_AtkValue" type="Label" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Lab_Def" type="Label" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Def"
[node name="Lab_DefValue" type="Label" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Lab_Con" type="Label" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Con"
[node name="Lab_ConValue" type="Label" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Lab_Chg" type="Label" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "Chg"
[node name="Lab_ChgValue" type="Label" parent="HBoxContainer/Btn_Slot3/VBoxContainer/Grid_Stats"]
layout_mode = 2
size_flags_horizontal = 3
theme_type_variation = &"SaveSlotBodyLabel"
text = "1"
[node name="Btn_Back" parent="." instance=ExtResource("3_4w7h3")]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -48.0
offset_top = -28.0
offset_right = -8.0
offset_bottom = -8.0
grow_horizontal = 0
grow_vertical = 0
text = "Back"
FocusSound = ExtResource("4_cgk43")
PressSound = ExtResource("5_sr5rb")
[node name="Overlay" type="ColorRect" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.501961)
[node name="OverwriteDialog" type="ConfirmationDialog" parent="."]
initial_position = 2
size = Vector2i(200, 97)
unresizable = true
ok_button_text = "Overwrite"
dialog_text = "Are you sure you want to overwrite this save?"
dialog_autowrap = true
[node name="DifficultyDialog" type="Window" parent="."]
title = "Select Difficulty"
initial_position = 2
size = Vector2i(165, 92)
visible = false
[node name="Panel" type="Panel" parent="DifficultyDialog"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxLine_3e3iv")
[node name="VBoxContainer" type="VBoxContainer" parent="DifficultyDialog/Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Btn_DifficultyEasy" type="Button" parent="DifficultyDialog/Panel/VBoxContainer"]
layout_mode = 2
text = "Easy"
script = ExtResource("11_qvsy4")
[node name="Btn_DifficultyNormal" type="Button" parent="DifficultyDialog/Panel/VBoxContainer"]
layout_mode = 2
text = "Normal"
script = ExtResource("11_qvsy4")
[node name="Btn_DifficultyHard" type="Button" parent="DifficultyDialog/Panel/VBoxContainer"]
layout_mode = 2
text = "Hard"
script = ExtResource("11_qvsy4")
[node name="Btn_DifficultyBack" type="Button" parent="DifficultyDialog/Panel/VBoxContainer"]
layout_mode = 2
text = "Back"
script = ExtResource("11_qvsy4")
[connection signal="pressed" from="HBoxContainer/Btn_Slot1" to="." method="_on_btn_slot_1_pressed"]
[connection signal="pressed" from="HBoxContainer/Btn_Slot2" to="." method="_on_btn_slot_2_pressed"]
[connection signal="pressed" from="HBoxContainer/Btn_Slot3" to="." method="_on_btn_slot_3_pressed"]
[connection signal="pressed" from="Btn_Back" to="." method="_on_btn_back_pressed"]
[connection signal="canceled" from="OverwriteDialog" to="." method="_on_overwrite_dialog_canceled"]
[connection signal="confirmed" from="OverwriteDialog" to="." method="_on_overwrite_dialog_confirmed"]
[connection signal="focus_entered" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyEasy" to="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyEasy" method="_on_focus_entered"]
[connection signal="pressed" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyEasy" to="." method="_on_btn_difficulty_easy_pressed"]
[connection signal="pressed" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyEasy" to="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyEasy" method="_on_pressed"]
[connection signal="focus_entered" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyNormal" to="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyNormal" method="_on_focus_entered"]
[connection signal="pressed" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyNormal" to="." method="_on_btn_difficulty_normal_pressed"]
[connection signal="pressed" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyNormal" to="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyNormal" method="_on_pressed"]
[connection signal="focus_entered" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyHard" to="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyHard" method="_on_focus_entered"]
[connection signal="pressed" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyHard" to="." method="_on_btn_difficulty_hard_pressed"]
[connection signal="pressed" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyHard" to="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyHard" method="_on_pressed"]
[connection signal="focus_entered" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyBack" to="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyBack" method="_on_focus_entered"]
[connection signal="pressed" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyBack" to="." method="_on_btn_difficulty_back_pressed"]
[connection signal="pressed" from="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyBack" to="DifficultyDialog/Panel/VBoxContainer/Btn_DifficultyBack" method="_on_pressed"]
+8
View File
@@ -0,0 +1,8 @@
extends Control
var timestart: int
# Called when the node enters the scene tree for the first time.
func _ready():
timestart = Time.get_ticks_msec()
await global.fade_in()
+1
View File
@@ -0,0 +1 @@
uid://b4i745jtfepbh
+101
View File
@@ -0,0 +1,101 @@
[gd_scene load_steps=4 format=3 uid="uid://cvdf5q8evdylc"]
[ext_resource type="Theme" uid="uid://d01fm68pwgnvc" path="res://ui/default_theme.tres" id="1_5uhqc"]
[ext_resource type="Script" uid="uid://b4i745jtfepbh" path="res://menus/options_menu.gd" id="2_aogii"]
[sub_resource type="GDScript" id="GDScript_xwmny"]
script/source = "extends Button
func _on_pressed():
var scene = load(\"res://scenes/main_menu.tscn\")
global.goto_scene(scene)
"
[node name="OptionsMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("1_5uhqc")
script = ExtResource("2_aogii")
[node name="Lab_Options" type="Label" parent="."]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -30.0
offset_top = 10.0
offset_right = 32.0
offset_bottom = 30.0
grow_horizontal = 2
text = "Options"
horizontal_alignment = 1
[node name="Btn_Confirm" type="Button" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -87.0
offset_top = -28.0
offset_right = -8.0
offset_bottom = -8.0
grow_horizontal = 0
grow_vertical = 0
text = "Confirm"
[node name="Btn_Cancel" type="Button" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -158.0
offset_top = -28.0
offset_right = -87.0
offset_bottom = -8.0
grow_horizontal = 0
grow_vertical = 0
text = "Cancel"
script = SubResource("GDScript_xwmny")
[node name="GridContainer" type="GridContainer" parent="."]
layout_mode = 0
offset_left = 10.0
offset_top = 40.0
offset_right = 310.0
offset_bottom = 212.0
columns = 2
[node name="Lab_MusicVolume" type="Label" parent="GridContainer"]
layout_mode = 2
text = "Music Volume"
[node name="Slider_MusicVolume" type="HSlider" parent="GridContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
max_value = 1.0
step = 0.1
value = 0.5
[node name="Lab_SFXVolume" type="Label" parent="GridContainer"]
layout_mode = 2
text = "SFX Volume"
[node name="Slider_SFXVolume" type="HSlider" parent="GridContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
max_value = 1.0
step = 0.1
value = 0.5
[connection signal="pressed" from="Btn_Cancel" to="Btn_Cancel" method="_on_pressed"]
+17
View File
@@ -0,0 +1,17 @@
extends TextureRect
var timer: SceneTreeTimer
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
global.fade_in()
timer = get_tree().create_timer(5)
await timer.timeout
var scene = load("res://menus/main_menu.tscn")
global.goto_scene(scene)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
if Input.is_action_just_pressed("ui_accept") || Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT):
timer.emit_signal("timeout")
+1
View File
@@ -0,0 +1 @@
uid://dujq1ojabysqj
+13
View File
@@ -0,0 +1,13 @@
[gd_scene load_steps=3 format=3 uid="uid://deismap4eyt3"]
[ext_resource type="Texture2D" uid="uid://dl708xax0net7" path="res://ui/splash.png" id="1_486j6"]
[ext_resource type="Script" uid="uid://dujq1ojabysqj" path="res://menus/splash_screen.gd" id="2_mehmw"]
[node name="SplashScreen" type="TextureRect"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_486j6")
script = ExtResource("2_mehmw")
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://crgyul2o4b36b"
path="res://.godot/imported/area_0.ogg-698a37b00e191da3849aacf81b06191a.oggvorbisstr"
[deps]
source_file="res://music/area_0.ogg"
dest_files=["res://.godot/imported/area_0.ogg-698a37b00e191da3849aacf81b06191a.oggvorbisstr"]
[params]
loop=true
loop_offset=0.0
bpm=70.0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bh5u0c6vyq74q"
path="res://.godot/imported/area_1.ogg-0e4736dd73553438db5039531904b03b.oggvorbisstr"
[deps]
source_file="res://music/area_1.ogg"
dest_files=["res://.godot/imported/area_1.ogg-0e4736dd73553438db5039531904b03b.oggvorbisstr"]
[params]
loop=true
loop_offset=0.0
bpm=71.0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://ckeguo5mqu73o"
path="res://.godot/imported/area_2.ogg-f5a90f1530ed9ee4e755d08f5fe609b8.oggvorbisstr"
[deps]
source_file="res://music/area_2.ogg"
dest_files=["res://.godot/imported/area_2.ogg-f5a90f1530ed9ee4e755d08f5fe609b8.oggvorbisstr"]
[params]
loop=true
loop_offset=0.0
bpm=70.0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://cqgpwqj85gdxp"
path="res://.godot/imported/area_3.ogg-696854ba5bbb5873d0759cf7aef40d43.oggvorbisstr"
[deps]
source_file="res://music/area_3.ogg"
dest_files=["res://.godot/imported/area_3.ogg-696854ba5bbb5873d0759cf7aef40d43.oggvorbisstr"]
[params]
loop=true
loop_offset=0.0
bpm=70.0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bxg44fooc13uw"
path="res://.godot/imported/area_4.ogg-20ed11af33d4f9581ca42f87b4758bcd.oggvorbisstr"
[deps]
source_file="res://music/area_4.ogg"
dest_files=["res://.godot/imported/area_4.ogg-20ed11af33d4f9581ca42f87b4758bcd.oggvorbisstr"]
[params]
loop=true
loop_offset=0.0
bpm=70.0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://1co7qa5u5xac"
path="res://.godot/imported/ending_music.ogg-d4fce01ab1e3374353771c26db2bf3ca.oggvorbisstr"
[deps]
source_file="res://music/ending_music.ogg"
dest_files=["res://.godot/imported/ending_music.ogg-d4fce01ab1e3374353771c26db2bf3ca.oggvorbisstr"]
[params]
loop=true
loop_offset=0.0
bpm=75.0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://chcw8lggq7vj1"
path="res://.godot/imported/game_over_music.ogg-9a91a773036c7879e3fca3c22c46a438.oggvorbisstr"
[deps]
source_file="res://music/game_over_music.ogg"
dest_files=["res://.godot/imported/game_over_music.ogg-9a91a773036c7879e3fca3c22c46a438.oggvorbisstr"]
[params]
loop=true
loop_offset=0.0
bpm=70.0
beat_count=0
bar_beats=4
+39
View File
@@ -0,0 +1,39 @@
class_name DoorZone
extends Area2D
@export_category("Outgoing")
@export_file("*.tscn") var TargetRoomPath: String
@export var TargetDoor: String
@export var PreserveX: bool = false
@export var PreserveY: bool = false
@export var PreserveVelocity: bool = false
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
pass
func _on_body_entered(body: Node2D) -> void:
if body is Player:
if self.name == global.player_target:
return
var offset := Vector2(0., 0.);
if PreserveX:
offset.x = body.position.x - self.position.x
if PreserveY:
offset.y = body.position.y - self.position.y
global.player_offset = offset
global.player_velocity = Vector2(0., 0.)
if PreserveVelocity:
global.player_velocity = body.velocity
global.player_target = TargetDoor
global.goto_scene(load(TargetRoomPath))
func _on_body_exited(body: Node2D) -> void:
global.player_target = ""
+1
View File
@@ -0,0 +1 @@
uid://c027jkwb3uac4
+8
View File
@@ -0,0 +1,8 @@
[gd_scene load_steps=2 format=3 uid="uid://dh5xmwhdwobev"]
[ext_resource type="Script" uid="uid://c027jkwb3uac4" path="res://objects/door_zone.gd" id="1_cm4xy"]
[node name="DoorZone" type="Area2D"]
script = ExtResource("1_cm4xy")
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cs262sxemhpum"
path="res://.godot/imported/jump_dust.png-341779febee3ef098cb2627403b1ea29.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://objects/fx/jump_dust.png"
dest_files=["res://.godot/imported/jump_dust.png-341779febee3ef098cb2627403b1ea29.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+63
View File
@@ -0,0 +1,63 @@
[gd_scene load_steps=10 format=3 uid="uid://c4h1cj75b5sry"]
[ext_resource type="Texture2D" uid="uid://cs262sxemhpum" path="res://objects/fx/jump_dust.png" id="1_aj8qq"]
[ext_resource type="Script" uid="uid://dgo1wtjored0j" path="res://scripts/dust_particle.gd" id="2_d1aoh"]
[sub_resource type="AtlasTexture" id="AtlasTexture_71pl7"]
atlas = ExtResource("1_aj8qq")
region = Rect2(0, 0, 23, 22)
[sub_resource type="AtlasTexture" id="AtlasTexture_kwppy"]
atlas = ExtResource("1_aj8qq")
region = Rect2(23, 0, 23, 22)
[sub_resource type="AtlasTexture" id="AtlasTexture_h54gx"]
atlas = ExtResource("1_aj8qq")
region = Rect2(46, 0, 23, 22)
[sub_resource type="AtlasTexture" id="AtlasTexture_5nx71"]
atlas = ExtResource("1_aj8qq")
region = Rect2(69, 0, 23, 22)
[sub_resource type="AtlasTexture" id="AtlasTexture_ifxkf"]
atlas = ExtResource("1_aj8qq")
region = Rect2(92, 0, 23, 22)
[sub_resource type="AtlasTexture" id="AtlasTexture_0eeae"]
atlas = ExtResource("1_aj8qq")
region = Rect2(115, 0, 23, 22)
[sub_resource type="SpriteFrames" id="SpriteFrames_dyqnt"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_71pl7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kwppy")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_h54gx")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5nx71")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ifxkf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0eeae")
}],
"loop": false,
"name": &"default",
"speed": 24.0
}]
[node name="JumpDust" type="AnimatedSprite2D"]
sprite_frames = SubResource("SpriteFrames_dyqnt")
autoplay = "default"
frame_progress = 1.0
offset = Vector2(0, -9)
script = ExtResource("2_d1aoh")
[connection signal="animation_finished" from="." to="." method="_on_animation_finished"]
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dkyfo8335hwnv"
path="res://.godot/imported/roll_dust.png-f921e62c1104c1a75294133942b0d92b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://objects/fx/roll_dust.png"
dest_files=["res://.godot/imported/roll_dust.png-f921e62c1104c1a75294133942b0d92b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+77
View File
@@ -0,0 +1,77 @@
[gd_scene load_steps=12 format=3 uid="uid://botc600n5fcgt"]
[ext_resource type="Texture2D" uid="uid://dkyfo8335hwnv" path="res://objects/fx/roll_dust.png" id="1_ocmkx"]
[ext_resource type="Script" uid="uid://dgo1wtjored0j" path="res://scripts/dust_particle.gd" id="2_ny4y2"]
[sub_resource type="AtlasTexture" id="AtlasTexture_j223t"]
atlas = ExtResource("1_ocmkx")
region = Rect2(0, 0, 38, 39)
[sub_resource type="AtlasTexture" id="AtlasTexture_15ql1"]
atlas = ExtResource("1_ocmkx")
region = Rect2(38, 0, 38, 39)
[sub_resource type="AtlasTexture" id="AtlasTexture_byoxk"]
atlas = ExtResource("1_ocmkx")
region = Rect2(76, 0, 38, 39)
[sub_resource type="AtlasTexture" id="AtlasTexture_m3d4f"]
atlas = ExtResource("1_ocmkx")
region = Rect2(114, 0, 38, 39)
[sub_resource type="AtlasTexture" id="AtlasTexture_6nm25"]
atlas = ExtResource("1_ocmkx")
region = Rect2(152, 0, 38, 39)
[sub_resource type="AtlasTexture" id="AtlasTexture_tqo4n"]
atlas = ExtResource("1_ocmkx")
region = Rect2(190, 0, 38, 39)
[sub_resource type="AtlasTexture" id="AtlasTexture_ur0hm"]
atlas = ExtResource("1_ocmkx")
region = Rect2(228, 0, 38, 39)
[sub_resource type="AtlasTexture" id="AtlasTexture_uuuyy"]
atlas = ExtResource("1_ocmkx")
region = Rect2(266, 0, 38, 39)
[sub_resource type="SpriteFrames" id="SpriteFrames_dyqnt"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_j223t")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_15ql1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_byoxk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_m3d4f")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6nm25")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tqo4n")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ur0hm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uuuyy")
}],
"loop": false,
"name": &"default",
"speed": 24.0
}]
[node name="RollDust" type="AnimatedSprite2D"]
sprite_frames = SubResource("SpriteFrames_dyqnt")
autoplay = "default"
frame_progress = 1.0
offset = Vector2(0, -9)
script = ExtResource("2_ny4y2")
[connection signal="animation_finished" from="." to="." method="_on_animation_finished"]
+26
View File
@@ -0,0 +1,26 @@
class_name Zombie
extends CharacterBody2D
const SPEED = 300.0
const JUMP_VELOCITY = -400.0
func _physics_process(delta: float) -> void:
# Add the gravity.
if not is_on_floor():
velocity += get_gravity() * delta
# Handle jump.
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP_VELOCITY
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var direction := Input.get_axis("ui_left", "ui_right")
if direction:
velocity.x = direction * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
move_and_slide()
+1
View File
@@ -0,0 +1 @@
uid://bw8t7n771m0b4
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c8v7mt7kbv7k5"
path="res://.godot/imported/zombie.png-cd8c3c30f31f1b01ad0e7564be92c691.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://objects/npcs/zombie.png"
dest_files=["res://.godot/imported/zombie.png-cd8c3c30f31f1b01ad0e7564be92c691.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+203
View File
@@ -0,0 +1,203 @@
[gd_scene load_steps=28 format=3 uid="uid://enj7slqj7o2o"]
[ext_resource type="Texture2D" uid="uid://c8v7mt7kbv7k5" path="res://objects/npcs/zombie.png" id="1_8psf6"]
[ext_resource type="Script" uid="uid://bw8t7n771m0b4" path="res://objects/npcs/zombie.gd" id="1_qml1x"]
[ext_resource type="Script" uid="uid://bsveyr6o3li86" path="res://objects/npcs/zombie_sprite.gd" id="3_8bxsl"]
[sub_resource type="AtlasTexture" id="AtlasTexture_qml1x"]
atlas = ExtResource("1_8psf6")
region = Rect2(0, 122, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_8bxsl"]
atlas = ExtResource("1_8psf6")
region = Rect2(52, 122, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_nyp6s"]
atlas = ExtResource("1_8psf6")
region = Rect2(104, 122, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_knvin"]
atlas = ExtResource("1_8psf6")
region = Rect2(156, 122, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_0k1nj"]
atlas = ExtResource("1_8psf6")
region = Rect2(208, 122, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_4k8tf"]
atlas = ExtResource("1_8psf6")
region = Rect2(260, 122, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_fljd2"]
atlas = ExtResource("1_8psf6")
region = Rect2(312, 122, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_hci6t"]
atlas = ExtResource("1_8psf6")
region = Rect2(364, 122, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_apr15"]
atlas = ExtResource("1_8psf6")
region = Rect2(416, 122, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_gigwc"]
atlas = ExtResource("1_8psf6")
region = Rect2(0, 0, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_5qsks"]
atlas = ExtResource("1_8psf6")
region = Rect2(52, 0, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_ys0de"]
atlas = ExtResource("1_8psf6")
region = Rect2(0, 183, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_kni6o"]
atlas = ExtResource("1_8psf6")
region = Rect2(52, 183, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_8lesc"]
atlas = ExtResource("1_8psf6")
region = Rect2(104, 183, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_ai73t"]
atlas = ExtResource("1_8psf6")
region = Rect2(156, 183, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_hmrhp"]
atlas = ExtResource("1_8psf6")
region = Rect2(208, 183, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_reymy"]
atlas = ExtResource("1_8psf6")
region = Rect2(260, 183, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_wifnu"]
atlas = ExtResource("1_8psf6")
region = Rect2(0, 61, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_frsw6"]
atlas = ExtResource("1_8psf6")
region = Rect2(52, 61, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_8n4lj"]
atlas = ExtResource("1_8psf6")
region = Rect2(104, 61, 52, 61)
[sub_resource type="AtlasTexture" id="AtlasTexture_sqw4r"]
atlas = ExtResource("1_8psf6")
region = Rect2(156, 61, 52, 61)
[sub_resource type="SpriteFrames" id="SpriteFrames_4jgel"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_qml1x")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8bxsl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nyp6s")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_knvin")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0k1nj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4k8tf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fljd2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hci6t")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_apr15")
}],
"loop": false,
"name": &"attack",
"speed": 12.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_gigwc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5qsks")
}],
"loop": true,
"name": &"default",
"speed": 3.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ys0de")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kni6o")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8lesc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ai73t")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hmrhp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_reymy")
}],
"loop": false,
"name": &"die",
"speed": 24.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wifnu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_frsw6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8n4lj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_sqw4r")
}],
"loop": true,
"name": &"walk",
"speed": 6.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_8psf6"]
radius = 6.0
height = 24.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_8bxsl"]
size = Vector2(8, 13)
[node name="Zombie" type="CharacterBody2D"]
script = ExtResource("1_qml1x")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -10.5)
sprite_frames = SubResource("SpriteFrames_4jgel")
animation = &"attack"
frame = 5
script = ExtResource("3_8bxsl")
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -12)
shape = SubResource("CapsuleShape2D_8psf6")
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionAttack" type="CollisionShape2D" parent="Area2D"]
position = Vector2(10, -11.5)
shape = SubResource("RectangleShape2D_8bxsl")
debug_color = Color(0.9942227, 0, 0.23271917, 0.41960785)
+11
View File
@@ -0,0 +1,11 @@
extends AnimatedSprite2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
+1
View File
@@ -0,0 +1 @@
uid://bsveyr6o3li86
+152
View File
@@ -0,0 +1,152 @@
class_name Player
extends CharacterBody2D
@onready var sprite := $Sprite as AnimatedSprite2D
@onready var audio_player := $AudioPlayer as AudioStreamPlayer
signal state_change(old: States, new: States)
enum States {IDLE, RUN_START, RUN, ROLL, JUMP_START, JUMP, FALL, LAND, DAMAGE, RAGDOLL, BOUNCE, LAY, SHOOT, JAB, STRAIGHT, KICK, POUND}
const STATES_IMMOBILE = [States.ROLL, States.DAMAGE, States.RAGDOLL, States.BOUNCE, States.LAY, States.SHOOT, States.JAB, States.STRAIGHT, States.KICK, States.POUND]
const STATES_AIRBORNE = [States.JUMP_START, States.JUMP, States.FALL]
const ROLL_DUST = preload("uid://botc600n5fcgt")
const JUMP_DUST = preload("uid://c4h1cj75b5sry")
const JUMP_SOUND = preload("uid://d1hwunwdel6sy")
const HIT_GROUND = preload("uid://ciglwfq0vua8i")
const SPEED = 90.0
const ACCEL = 450
const JUMP_VELOCITY = -312.0
const ROLL_VELOCITY = 150.0
const ROLL_DECEL = 1080
# Get the gravity from the project settings to be synced with RigidBody nodes.
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
var state: States = States.IDLE: set = _set_state
var direction: float
var grounded: bool
var running: bool
var rolling: bool
var ragdoll: bool
var bounce: bool
var lay: bool
var shooting: bool
var melee: bool
func _set_state(s: States):
state_change.emit(state, s)
state = s
func _process(_delta: float) -> void:
$State.text = States.keys()[state]
func _physics_process(delta):
# Add the gravity.
if not is_on_floor():
velocity.y += gravity * delta
# Jumping
if state not in STATES_IMMOBILE and state not in STATES_AIRBORNE and Input.is_action_just_pressed("jump") and is_on_floor():
state = States.JUMP_START
audio_player.stream = JUMP_SOUND
audio_player.play()
var jump_dust = JUMP_DUST.instantiate()
jump_dust.position = position
add_sibling(jump_dust)
velocity.y = JUMP_VELOCITY
# Short hops
if Input.is_action_just_released("jump") && !is_on_floor():
velocity.y = velocity.y / 2
# Falling
if state not in [States.ROLL, States.RAGDOLL, States.BOUNCE] and velocity.y > 0:
state = States.FALL
if state in [States.FALL] and is_zero_approx(velocity.y):
if direction:
state = States.RUN
else:
state = States.LAND
# Rolls
if state not in STATES_IMMOBILE and state != States.ROLL and \
(Input.is_action_just_pressed("roll_jump") or Input.is_action_just_pressed("roll")):
state = States.ROLL
if is_on_floor():
var roll_dust = ROLL_DUST.instantiate()
roll_dust.position = position
roll_dust.flip_h = !sprite.flip_h
add_sibling(roll_dust)
if !sprite.flip_h:
velocity.x = ROLL_VELOCITY
else:
velocity.x = -ROLL_VELOCITY
if velocity.y >= 0 && Input.is_action_just_pressed("roll_jump"):
velocity.y = -120
# Melee
if state not in STATES_IMMOBILE and Input.is_action_just_pressed("melee"):
state = States.MELEE
if Input.is_action_pressed("roll"):
# Pound
pass
# Shooting
if state not in STATES_IMMOBILE and Input.is_action_just_pressed("shoot"):
state = States.SHOOT
match global.save.projectile:
global.save.Projectile.BLAST:
pass
# Ragdoll
if state not in [States.RAGDOLL, States.BOUNCE, States.LAY] and Input.is_action_just_pressed("ragdoll"):
state = States.RAGDOLL
if state in [States.RAGDOLL] and is_on_floor():
state = States.BOUNCE
var roll_dust = ROLL_DUST.instantiate()
roll_dust.position = position
roll_dust.flip_h = !sprite.flip_h
add_sibling(roll_dust)
velocity.y = -120
audio_player.stream = HIT_GROUND
audio_player.play()
if state in [States.BOUNCE] and is_on_floor() and velocity.y >= 0:
state = States.LAY
audio_player.stream = HIT_GROUND
audio_player.play()
if state in [States.LAY] and is_on_floor():
velocity.x = move_toward(velocity.x, 0, ACCEL * delta)
# Overall physics
direction = Input.get_axis("move_left", "move_right")
if state == States.ROLL and sprite.frame > 7:
# Slow down if in the later roll frames.
velocity.x = move_toward(velocity.x, 0, ROLL_DECEL * delta)
elif state not in [States.ROLL, States.DAMAGE, States.RAGDOLL, States.BOUNCE, States.LAY, States.SHOOT, States.MELEE]:
# Apply velocity changes if not in a restricted movement state.
velocity.x = move_toward(velocity.x, direction * SPEED, ACCEL * delta)
if direction:
if state not in [States.JUMP_START, States.JUMP, States.FALL, States.RUN_START, States.RUN]:
state = States.RUN_START
else:
if state not in [States.JUMP_START, States.JUMP, States.FALL, States.LAND]:
state = States.IDLE
move_and_slide()
+1
View File
@@ -0,0 +1 @@
uid://drpdjfp0o7bbv
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ci24lybfsaxd0"
path="res://.godot/imported/player.png-ce2a37186354540f2edbb662bd1e85b2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://objects/player.png"
dest_files=["res://.godot/imported/player.png-ce2a37186354540f2edbb662bd1e85b2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+693
View File
@@ -0,0 +1,693 @@
[gd_scene load_steps=88 format=3 uid="uid://2f3x4fcr0os6"]
[ext_resource type="Texture2D" uid="uid://ci24lybfsaxd0" path="res://objects/player.png" id="1_2mhpo"]
[ext_resource type="Script" uid="uid://drpdjfp0o7bbv" path="res://objects/player.gd" id="1_c7kgv"]
[ext_resource type="Script" uid="uid://e6q7q0ljb34u" path="res://scripts/state_collision.gd" id="1_uxov2"]
[ext_resource type="Script" uid="uid://cgeaq15vi0bnd" path="res://objects/player_sprite.gd" id="3_uxov2"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ykyjo"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 602, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_uxov2"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 602, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_nmc1l"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 602, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_f46kd"]
atlas = ExtResource("1_2mhpo")
region = Rect2(105, 602, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_3rerk"]
atlas = ExtResource("1_2mhpo")
region = Rect2(140, 602, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_i825w"]
atlas = ExtResource("1_2mhpo")
region = Rect2(175, 602, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_3rfka"]
atlas = ExtResource("1_2mhpo")
region = Rect2(210, 602, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_i8sra"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 344, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_4vq5b"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 344, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_3nfmf"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 344, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_42cpl"]
atlas = ExtResource("1_2mhpo")
region = Rect2(105, 344, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_vqq2l"]
atlas = ExtResource("1_2mhpo")
region = Rect2(140, 344, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_r673r"]
atlas = ExtResource("1_2mhpo")
region = Rect2(175, 344, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_mqnmn"]
atlas = ExtResource("1_2mhpo")
region = Rect2(210, 344, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_5esnd"]
atlas = ExtResource("1_2mhpo")
region = Rect2(245, 344, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_w1o2u"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 0, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_s4hvt"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 0, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_2sux5"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 0, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_iqfnf"]
atlas = ExtResource("1_2mhpo")
region = Rect2(105, 0, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_bhqug"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 258, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_cyhxw"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 473, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_wq66c"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 473, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_183dw"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 473, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_nflk0"]
atlas = ExtResource("1_2mhpo")
region = Rect2(105, 473, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_uqwil"]
atlas = ExtResource("1_2mhpo")
region = Rect2(140, 473, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_ggel1"]
atlas = ExtResource("1_2mhpo")
region = Rect2(175, 473, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_d8ffw"]
atlas = ExtResource("1_2mhpo")
region = Rect2(210, 473, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_2ve04"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 215, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_0rhe2"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 172, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_6ypbn"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 387, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_7rsoo"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 387, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_lywsn"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 387, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_cvk82"]
atlas = ExtResource("1_2mhpo")
region = Rect2(105, 387, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_77i28"]
atlas = ExtResource("1_2mhpo")
region = Rect2(140, 387, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_mle5l"]
atlas = ExtResource("1_2mhpo")
region = Rect2(175, 387, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_i4kk0"]
atlas = ExtResource("1_2mhpo")
region = Rect2(210, 387, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_s854h"]
atlas = ExtResource("1_2mhpo")
region = Rect2(245, 387, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_tj211"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 301, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_kqdjh"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 301, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_a5pfi"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 301, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_f2hc5"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 430, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_sktdc"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 559, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_ghhh6"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 559, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_dibtv"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 559, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_d4anp"]
atlas = ExtResource("1_2mhpo")
region = Rect2(105, 559, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_ct16p"]
atlas = ExtResource("1_2mhpo")
region = Rect2(140, 559, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_arub5"]
atlas = ExtResource("1_2mhpo")
region = Rect2(175, 559, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_4g3oa"]
atlas = ExtResource("1_2mhpo")
region = Rect2(210, 559, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_r7a5p"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 129, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_kmthn"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 129, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_775wt"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 129, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_dsdn8"]
atlas = ExtResource("1_2mhpo")
region = Rect2(105, 129, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_q7t1j"]
atlas = ExtResource("1_2mhpo")
region = Rect2(140, 129, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_f0f2d"]
atlas = ExtResource("1_2mhpo")
region = Rect2(175, 129, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_jxo55"]
atlas = ExtResource("1_2mhpo")
region = Rect2(210, 129, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_jilkr"]
atlas = ExtResource("1_2mhpo")
region = Rect2(245, 129, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_uyug2"]
atlas = ExtResource("1_2mhpo")
region = Rect2(280, 129, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_4jwck"]
atlas = ExtResource("1_2mhpo")
region = Rect2(315, 129, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_07yoj"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 86, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_fhocf"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 86, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_78ho2"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 86, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_8ch2p"]
atlas = ExtResource("1_2mhpo")
region = Rect2(105, 86, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_f4byu"]
atlas = ExtResource("1_2mhpo")
region = Rect2(140, 86, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_b5c7i"]
atlas = ExtResource("1_2mhpo")
region = Rect2(175, 86, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_evbvi"]
atlas = ExtResource("1_2mhpo")
region = Rect2(210, 86, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_ye2nl"]
atlas = ExtResource("1_2mhpo")
region = Rect2(245, 86, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_l3yn6"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 43, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_1crfk"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 43, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_7lcwi"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 43, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_g8y8i"]
atlas = ExtResource("1_2mhpo")
region = Rect2(105, 43, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_bb8rj"]
atlas = ExtResource("1_2mhpo")
region = Rect2(140, 43, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_il2j7"]
atlas = ExtResource("1_2mhpo")
region = Rect2(175, 43, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_p2pxn"]
atlas = ExtResource("1_2mhpo")
region = Rect2(0, 516, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_e728x"]
atlas = ExtResource("1_2mhpo")
region = Rect2(35, 516, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_wmx0i"]
atlas = ExtResource("1_2mhpo")
region = Rect2(70, 516, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_llth5"]
atlas = ExtResource("1_2mhpo")
region = Rect2(105, 516, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_4wu0g"]
atlas = ExtResource("1_2mhpo")
region = Rect2(140, 516, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_isejg"]
atlas = ExtResource("1_2mhpo")
region = Rect2(175, 516, 35, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_cebk3"]
atlas = ExtResource("1_2mhpo")
region = Rect2(210, 516, 35, 43)
[sub_resource type="SpriteFrames" id="SpriteFrames_blchw"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ykyjo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uxov2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nmc1l")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_f46kd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3rerk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_i825w")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3rfka")
}],
"loop": false,
"name": &"air_kick",
"speed": 24.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_i8sra")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4vq5b")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3nfmf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_42cpl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vqq2l")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_r673r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mqnmn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5esnd")
}],
"loop": false,
"name": &"damage",
"speed": 12.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_w1o2u")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s4hvt")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2sux5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_iqfnf")
}],
"loop": true,
"name": &"default",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_bhqug")
}],
"loop": false,
"name": &"fall",
"speed": 1.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_cyhxw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wq66c")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_183dw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nflk0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uqwil")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ggel1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_d8ffw")
}],
"loop": false,
"name": &"jab",
"speed": 36.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_2ve04")
}],
"loop": false,
"name": &"jump",
"speed": 12.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_0rhe2")
}],
"loop": false,
"name": &"jump_start",
"speed": 12.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6ypbn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7rsoo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_lywsn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cvk82")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_77i28")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mle5l")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_i4kk0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s854h")
}],
"loop": false,
"name": &"knockdown",
"speed": 18.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_tj211")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kqdjh")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_a5pfi")
}],
"loop": false,
"name": &"land",
"speed": 12.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_f2hc5")
}],
"loop": false,
"name": &"lay",
"speed": 0.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_sktdc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ghhh6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dibtv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_d4anp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ct16p")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_arub5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4g3oa")
}],
"loop": false,
"name": &"pound",
"speed": 18.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_r7a5p")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kmthn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_775wt")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dsdn8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_q7t1j")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_f0f2d")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jxo55")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jilkr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uyug2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4jwck")
}],
"loop": false,
"name": &"roll",
"speed": 18.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_07yoj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fhocf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_78ho2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8ch2p")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_f4byu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_b5c7i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_evbvi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ye2nl")
}],
"loop": true,
"name": &"run",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_l3yn6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1crfk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7lcwi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_g8y8i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bb8rj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_il2j7")
}],
"loop": false,
"name": &"run_start",
"speed": 18.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_p2pxn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_e728x")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wmx0i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_llth5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4wu0g")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_isejg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cebk3")
}],
"loop": false,
"name": &"straight",
"speed": 24.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_f46kd"]
radius = 8.0
height = 16.0
[sub_resource type="GDScript" id="GDScript_uxov2"]
script/source = "extends CollisionState2D
func _on_player_state_change(_old: Player.States, new: Player.States) -> void:
change_shape(Player.States.keys()[new])
"
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_nmc1l"]
radius = 6.0
height = 22.0
[node name="Player" type="CharacterBody2D"]
z_index = 10
floor_constant_speed = true
floor_snap_length = 2.0
script = ExtResource("1_c7kgv")
[node name="AudioPlayer" type="AudioStreamPlayer" parent="."]
max_polyphony = 2
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -11)
sprite_frames = SubResource("SpriteFrames_blchw")
animation = &"roll"
frame = 4
offset = Vector2(0, -0.5)
script = ExtResource("3_uxov2")
[node name="Hitbox" type="CollisionShape2D" parent="."]
position = Vector2(0, -11)
shape = SubResource("CapsuleShape2D_f46kd")
script = SubResource("GDScript_uxov2")
Shapes = Dictionary[String, Shape2D]({
"IDLE": SubResource("CapsuleShape2D_nmc1l")
})
metadata/_custom_type_script = "uid://e6q7q0ljb34u"
[node name="State" type="Label" parent="."]
offset_left = -40.0
offset_top = -56.0
offset_right = 40.0
offset_bottom = -24.0
[node name="Attackbox" type="Area2D" parent="."]
[node name="CollisionState2D" type="CollisionShape2D" parent="Attackbox"]
script = ExtResource("1_uxov2")
metadata/_custom_type_script = "uid://e6q7q0ljb34u"
[connection signal="state_change" from="." to="Hitbox" method="_on_player_state_change"]
[connection signal="animation_finished" from="Sprite" to="Sprite" method="_on_animation_finished"]
+12
View File
@@ -0,0 +1,12 @@
class_name PlayerCamera2D
extends Camera2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
if global.player:
position = global.player.position
+1
View File
@@ -0,0 +1 @@
uid://dtdbkfoaaejw0
+54
View File
@@ -0,0 +1,54 @@
extends AnimatedSprite2D
@onready var player := $".." as Player
# Called when the node enters the scene tree for the first time.
func _ready():
play("default")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
match player.state:
Player.States.IDLE:
play("default")
Player.States.RUN_START:
play("run_start")
Player.States.RUN:
play("run")
Player.States.ROLL:
play("roll")
Player.States.JUMP_START:
play("jump_start")
Player.States.JUMP:
play("jump")
Player.States.FALL:
play("fall")
Player.States.LAND:
play("land")
Player.States.DAMAGE:
play("damage")
Player.States.RAGDOLL:
play("knockdown")
Player.States.BOUNCE:
play("knockdown")
if player.is_on_floor():
frame = 4
Player.States.LAY:
play("lay")
if player.direction:
flip_h = player.direction < 0
func _on_animation_finished():
match animation:
"run_start":
player.state = Player.States.RUN
"land":
player.state = Player.States.IDLE
"jump_start":
player.state = Player.States.JUMP
"roll":
player.state = Player.States.IDLE
"damage":
player.state = Player.States.IDLE
+1
View File
@@ -0,0 +1 @@
uid://cgeaq15vi0bnd
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 863 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cs21plpjp5lle"
path="res://.godot/imported/blast.png-1e5c9a58118096a1044ef4f96ebba846.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://objects/projectiles/blast.png"
dest_files=["res://.godot/imported/blast.png-1e5c9a58118096a1044ef4f96ebba846.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+3
View File
@@ -0,0 +1,3 @@
[gd_scene format=3 uid="uid://bcjnrngre63n4"]
[node name="Blast" type="Node2D"]
+33
View File
@@ -0,0 +1,33 @@
extends Button
@onready var audio_player: AudioStreamPlayer = $AudioPlayer
@export var FocusSound: AudioStream
@export var PressSound: AudioStream
var flash: bool
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
pass
func _on_pressed() -> void:
if !PressSound:
return
audio_player.stream = PressSound
audio_player.play()
func _on_focus_entered() -> void:
if !PressSound:
return
if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT):
return
audio_player.stream = FocusSound
audio_player.play()
+1
View File
@@ -0,0 +1 @@
uid://h6prwf5a5wwr
+13
View File
@@ -0,0 +1,13 @@
[gd_scene load_steps=2 format=3 uid="uid://bqlbo0yh111fw"]
[ext_resource type="Script" uid="uid://h6prwf5a5wwr" path="res://objects/ui/sound_button.gd" id="1_f827h"]
[node name="SoundButton" type="Button"]
script = ExtResource("1_f827h")
[node name="AudioPlayer" type="AudioStreamPlayer" parent="."]
max_polyphony = 2
bus = &"SFX"
[connection signal="focus_entered" from="." to="." method="_on_focus_entered"]
[connection signal="pressed" from="." to="." method="_on_pressed"]
Executable
+88
View File
@@ -0,0 +1,88 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=5
[application]
config/name="Kurovadis"
run/main_scene="uid://deismap4eyt3"
config/use_custom_user_dir=true
config/features=PackedStringArray("4.5", "GL Compatibility")
config/icon="res://icon.svg"
[autoload]
global="*res://global.tscn"
[debug]
gdscript/warnings/integer_division=0
[display]
window/size/viewport_width=320
window/size/viewport_height=240
window/size/window_width_override=960
window/size/window_height_override=720
window/stretch/mode="viewport"
[input]
move_left={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
move_right={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
roll={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
jump={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":88,"key_label":0,"unicode":120,"location":0,"echo":false,"script":null)
]
}
roll_jump={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
melee={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":67,"key_label":0,"unicode":99,"location":0,"echo":false,"script":null)
]
}
shoot={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":90,"key_label":0,"unicode":122,"location":0,"echo":false,"script":null)
]
}
ragdoll={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":72,"key_label":0,"unicode":104,"location":0,"echo":false,"script":null)
]
}
[physics]
2d/default_gravity=720.0
[rendering]
textures/canvas_textures/default_texture_filter=0
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"
textures/vram_compression/import_etc2_astc=true
environment/defaults/default_clear_color=Color(0, 0, 0, 1)
Executable
+18
View File
@@ -0,0 +1,18 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
global.set_music(load("res://music/area_1.ogg"))
if !global.player:
global.player = load("res://objects/player.tscn").instantiate()
global.player.position = $PlayerSpawn.position
get_tree().root.add_child.call_deferred(global.player)
if global.player && global.player_target:
global.player.position = global.offset + get_node(global.player_target).position
print("setting player location: ", global.player.position)
await global.fade_in()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
pass
+1
View File
@@ -0,0 +1 @@
uid://mb2mnfri0ti
+171
View File
File diff suppressed because one or more lines are too long
Executable
+13
View File
@@ -0,0 +1,13 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
global.set_music(load("res://music/area_1.ogg"))
if global.player && global.player_target:
global.player.position = global.offset + get_node(global.player_target).position
await global.fade_in()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
pass
+1
View File
@@ -0,0 +1 @@
uid://sgn85l66sax
+446
View File
@@ -0,0 +1,446 @@
[gd_scene load_steps=51 format=3 uid="uid://dg3jjeldcoi0k"]
[ext_resource type="Script" uid="uid://sgn85l66sax" path="res://rooms/labs.gd" id="1_iavkr"]
[ext_resource type="Texture2D" uid="uid://cuk2cxty66cah" path="res://sprites/lab/map_screen.png" id="2_eoaps"]
[ext_resource type="Texture2D" uid="uid://4js1bkdv4ind" path="res://backgrounds/lab-background.png" id="2_f46rw"]
[ext_resource type="Texture2D" uid="uid://bi5xvp1dfm0d7" path="res://sprites/lab/map_blip.png" id="3_in351"]
[ext_resource type="Texture2D" uid="uid://dyg5mvl45r1vy" path="res://sprites/lab/emptypod.png" id="5_bqlgj"]
[ext_resource type="Texture2D" uid="uid://ffk8oj1bo227" path="res://sprites/player/ pod_1_strip8.png" id="6_fbufv"]
[ext_resource type="Texture2D" uid="uid://chtee26rjbrcp" path="res://sprites/player/pod_2_strip17.png" id="7_fohy5"]
[ext_resource type="Texture2D" uid="uid://bluwleimw435s" path="res://backgrounds/lab-foreground.png" id="8_wsopf"]
[ext_resource type="Script" uid="uid://dtdbkfoaaejw0" path="res://objects/player_camera_2d.gd" id="9_2rv37"]
[ext_resource type="Script" uid="uid://c027jkwb3uac4" path="res://objects/door_zone.gd" id="9_wsopf"]
[sub_resource type="AtlasTexture" id="AtlasTexture_xjmo1"]
atlas = ExtResource("2_eoaps")
region = Rect2(0, 0, 140, 123)
[sub_resource type="AtlasTexture" id="AtlasTexture_51cmo"]
atlas = ExtResource("2_eoaps")
region = Rect2(140, 0, 140, 123)
[sub_resource type="SpriteFrames" id="SpriteFrames_pxlcb"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_xjmo1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_51cmo")
}],
"loop": true,
"name": &"default",
"speed": 1.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_faxci"]
atlas = ExtResource("3_in351")
region = Rect2(0, 0, 6, 6)
[sub_resource type="AtlasTexture" id="AtlasTexture_628yu"]
atlas = ExtResource("3_in351")
region = Rect2(6, 0, 6, 6)
[sub_resource type="AtlasTexture" id="AtlasTexture_wl3ii"]
atlas = ExtResource("3_in351")
region = Rect2(12, 0, 6, 6)
[sub_resource type="AtlasTexture" id="AtlasTexture_u8gks"]
atlas = ExtResource("3_in351")
region = Rect2(18, 0, 6, 6)
[sub_resource type="AtlasTexture" id="AtlasTexture_u081k"]
atlas = ExtResource("3_in351")
region = Rect2(24, 0, 6, 6)
[sub_resource type="AtlasTexture" id="AtlasTexture_rst00"]
atlas = ExtResource("3_in351")
region = Rect2(30, 0, 6, 6)
[sub_resource type="SpriteFrames" id="SpriteFrames_m3ku0"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_faxci")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_628yu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wl3ii")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_u8gks")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_u081k")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rst00")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_3k7vi"]
atlas = ExtResource("6_fbufv")
region = Rect2(0, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_8ha45"]
atlas = ExtResource("6_fbufv")
region = Rect2(47, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_q3c3o"]
atlas = ExtResource("6_fbufv")
region = Rect2(94, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_28owg"]
atlas = ExtResource("6_fbufv")
region = Rect2(141, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_bcdm1"]
atlas = ExtResource("6_fbufv")
region = Rect2(188, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_l0bue"]
atlas = ExtResource("6_fbufv")
region = Rect2(235, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_70cxa"]
atlas = ExtResource("6_fbufv")
region = Rect2(282, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_06e2c"]
atlas = ExtResource("6_fbufv")
region = Rect2(329, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_pe6ie"]
atlas = ExtResource("7_fohy5")
region = Rect2(0, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_t2qkp"]
atlas = ExtResource("7_fohy5")
region = Rect2(47, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_lmgna"]
atlas = ExtResource("7_fohy5")
region = Rect2(94, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_y3n6i"]
atlas = ExtResource("7_fohy5")
region = Rect2(141, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_uklon"]
atlas = ExtResource("7_fohy5")
region = Rect2(188, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_y8xpd"]
atlas = ExtResource("7_fohy5")
region = Rect2(235, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_1pqg6"]
atlas = ExtResource("7_fohy5")
region = Rect2(282, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_4riov"]
atlas = ExtResource("7_fohy5")
region = Rect2(329, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_7ah1s"]
atlas = ExtResource("7_fohy5")
region = Rect2(376, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_pngi5"]
atlas = ExtResource("7_fohy5")
region = Rect2(423, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_utexj"]
atlas = ExtResource("7_fohy5")
region = Rect2(470, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_lea3s"]
atlas = ExtResource("7_fohy5")
region = Rect2(517, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_s1mgi"]
atlas = ExtResource("7_fohy5")
region = Rect2(564, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_dpm1s"]
atlas = ExtResource("7_fohy5")
region = Rect2(611, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_i0dht"]
atlas = ExtResource("7_fohy5")
region = Rect2(658, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_u8kyf"]
atlas = ExtResource("7_fohy5")
region = Rect2(705, 0, 47, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_uobmh"]
atlas = ExtResource("7_fohy5")
region = Rect2(752, 0, 47, 38)
[sub_resource type="SpriteFrames" id="SpriteFrames_c8d2d"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_3k7vi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8ha45")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_q3c3o")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_28owg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bcdm1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_l0bue")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_70cxa")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_06e2c")
}],
"loop": false,
"name": &"default",
"speed": 24.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_pe6ie")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t2qkp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_lmgna")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_y3n6i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uklon")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_y8xpd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1pqg6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4riov")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7ah1s")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pngi5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_utexj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_lea3s")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s1mgi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dpm1s")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_i0dht")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_u8kyf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uobmh")
}],
"loop": false,
"name": &"leave",
"speed": 6.0
}]
[sub_resource type="GDScript" id="GDScript_ciu2s"]
script/source = "extends AnimatedSprite2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
if global.save.room == \"labs\":
await get_tree().create_timer(5).timeout
play(\"default\")
else:
self.hide()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
pass
func _on_animation_finished() -> void:
if animation == \"default\":
play(\"leave\")
elif animation == \"leave\":
self.hide()
global.player = load(\"res://objects/player.tscn\").instantiate()
global.player.position = $\"../PlayerPodSpawn\".position
get_tree().root.add_child(global.player)
"
[sub_resource type="Gradient" id="Gradient_fxqk7"]
offsets = PackedFloat32Array(0, 0.83219177)
colors = PackedColorArray(0.8732977, 0.8732989, 0.87329775, 1, 0, 0, 0, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_fm2l1"]
gradient = SubResource("Gradient_fxqk7")
fill = 1
fill_from = Vector2(0.5, 0.5)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wsopf"]
size = Vector2(64, 9)
[node name="Labs" type="Node2D"]
script = ExtResource("1_iavkr")
[node name="StaticBody2D" type="StaticBody2D" parent="."]
z_index = 50
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D"]
polygon = PackedVector2Array(6, 0, 6, 182, 99, 182, 101, 184, 115, 184, 119, 188, 448, 188, 448, 240, 0, 240, 0, 0)
[node name="CollisionPolygon2D2" type="CollisionPolygon2D" parent="StaticBody2D"]
polygon = PackedVector2Array(512, 188, 512, 240, 640, 240, 640, 0, 635, 0, 635, 188)
[node name="CollisionPolygon2D3" type="CollisionPolygon2D" parent="StaticBody2D"]
polygon = PackedVector2Array(315, 119, 325, 119, 325, 0, 315, 0)
[node name="TextureBackground" type="TextureRect" parent="."]
offset_right = 640.0
offset_bottom = 240.0
texture = ExtResource("2_f46rw")
[node name="MapScreen" type="AnimatedSprite2D" parent="."]
position = Vector2(90, 12)
sprite_frames = SubResource("SpriteFrames_pxlcb")
autoplay = "default"
centered = false
[node name="MapBlip1" type="AnimatedSprite2D" parent="MapScreen"]
position = Vector2(21, 50)
sprite_frames = SubResource("SpriteFrames_m3ku0")
autoplay = "default"
frame = 1
[node name="MapBlip2" type="AnimatedSprite2D" parent="MapScreen"]
position = Vector2(45, 74)
sprite_frames = SubResource("SpriteFrames_m3ku0")
autoplay = "default"
frame = 1
[node name="MapBlip3" type="AnimatedSprite2D" parent="MapScreen"]
position = Vector2(68, 47)
sprite_frames = SubResource("SpriteFrames_m3ku0")
autoplay = "default"
frame = 3
[node name="MapBlip4" type="AnimatedSprite2D" parent="MapScreen"]
position = Vector2(69, 58)
sprite_frames = SubResource("SpriteFrames_m3ku0")
autoplay = "default"
frame = 2
[node name="MapBlip5" type="AnimatedSprite2D" parent="MapScreen"]
position = Vector2(90, 40)
sprite_frames = SubResource("SpriteFrames_m3ku0")
autoplay = "default"
frame = 2
[node name="MapBlip6" type="AnimatedSprite2D" parent="MapScreen"]
position = Vector2(97, 54)
sprite_frames = SubResource("SpriteFrames_m3ku0")
autoplay = "default"
frame = 1
[node name="MapBlip7" type="AnimatedSprite2D" parent="MapScreen"]
position = Vector2(121, 86)
sprite_frames = SubResource("SpriteFrames_m3ku0")
autoplay = "default"
frame_progress = 0.166665
[node name="PodEmpty1" type="Sprite2D" parent="."]
position = Vector2(63, 155)
texture = ExtResource("5_bqlgj")
centered = false
[node name="PodEmpty2" type="Sprite2D" parent="."]
position = Vector2(38, 155)
texture = ExtResource("5_bqlgj")
centered = false
[node name="PodPlayerEmpty" type="Sprite2D" parent="."]
position = Vector2(13, 155)
texture = ExtResource("5_bqlgj")
centered = false
[node name="PodPlayer" type="AnimatedSprite2D" parent="."]
position = Vector2(8, 150)
sprite_frames = SubResource("SpriteFrames_c8d2d")
centered = false
script = SubResource("GDScript_ciu2s")
[node name="PointLight2D" type="PointLight2D" parent="."]
position = Vector2(162, 77)
scale = Vector2(4.04688, 4.04688)
color = Color(0.43118694, 0.70823646, 0.9334883, 1)
energy = 0.75
texture = SubResource("GradientTexture2D_fm2l1")
metadata/_edit_lock_ = true
[node name="TextureForeground" type="TextureRect" parent="."]
z_index = 20
z_as_relative = false
offset_right = 40.0
offset_bottom = 40.0
texture = ExtResource("8_wsopf")
[node name="PlayerPodSpawn" type="Marker2D" parent="."]
position = Vector2(36, 182)
[node name="CanvasModulate" type="CanvasModulate" parent="."]
color = Color(0.62510306, 0.65990686, 0.6903145, 1)
[node name="PlayerCamera2D" type="Camera2D" parent="."]
limit_left = 0
limit_top = 0
limit_right = 640
limit_bottom = 240
script = ExtResource("9_2rv37")
metadata/_custom_type_script = "uid://dtdbkfoaaejw0"
[node name="DoorCaves" type="Area2D" parent="."]
position = Vector2(480, 231)
script = ExtResource("9_wsopf")
TargetRoomPath = "uid://dx7otbnngehj2"
TargetDoor = "DoorLabs"
PreserveX = true
PreserveVelocity = true
metadata/_custom_type_script = "uid://c027jkwb3uac4"
[node name="CollisionShape2D" type="CollisionShape2D" parent="DoorCaves"]
position = Vector2(0, 4.5)
shape = SubResource("RectangleShape2D_wsopf")
[connection signal="animation_finished" from="PodPlayer" to="PodPlayer" method="_on_animation_finished"]
[connection signal="body_entered" from="DoorCaves" to="DoorCaves" method="_on_body_entered"]
+25
View File
@@ -0,0 +1,25 @@
@tool
class_name Config
extends Resource
@export var music_volume: float = 0
@export var sfx_volume: float = 0
@export var fullscreen: bool = false
@export var vsync: bool = true
func save() -> Error:
return ResourceSaver.save(self, "user://config.tres")
static func exists() -> bool:
return ResourceLoader.exists("user://config.tres")
static func load() -> Save:
if exists():
var config_data = ResourceLoader.load("user://config.tres")
if config_data is Config:
return config_data
return null
+1
View File
@@ -0,0 +1 @@
uid://g5y7ghm6kw72

Some files were not shown because too many files have changed in this diff Show More