Initial commit
2
.gitattributes
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
||||||
|
/android/
|
BIN
assets/background/Background.png
Normal file
After Width: | Height: | Size: 49 KiB |
34
assets/background/Background.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dsl4n8xh7u2s3"
|
||||||
|
path="res://.godot/imported/Background.png-6be4d76c68d11161ca3a2112112543a0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/background/Background.png"
|
||||||
|
dest_files=["res://.godot/imported/Background.png-6be4d76c68d11161ca3a2112112543a0.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
|
BIN
assets/fonts/PixelOperator8-Bold.ttf
Normal file
34
assets/fonts/PixelOperator8-Bold.ttf.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://bsnrkucx738te"
|
||||||
|
path="res://.godot/imported/PixelOperator8-Bold.ttf-74faf550739674ad3170f08e646e0614.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/fonts/PixelOperator8-Bold.ttf"
|
||||||
|
dest_files=["res://.godot/imported/PixelOperator8-Bold.ttf-74faf550739674ad3170f08e646e0614.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
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=1
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
BIN
assets/fonts/PixelOperator8.ttf
Normal file
34
assets/fonts/PixelOperator8.ttf.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://ccibh2jw5qu60"
|
||||||
|
path="res://.godot/imported/PixelOperator8.ttf-6f9f01766aff16f52046b880ffb8d367.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/fonts/PixelOperator8.ttf"
|
||||||
|
dest_files=["res://.godot/imported/PixelOperator8.ttf-6f9f01766aff16f52046b880ffb8d367.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
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=1
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
BIN
assets/music/time_for_adventure.mp3
Normal file
19
assets/music/time_for_adventure.mp3.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="mp3"
|
||||||
|
type="AudioStreamMP3"
|
||||||
|
uid="uid://pwtmr7mko3ls"
|
||||||
|
path="res://.godot/imported/time_for_adventure.mp3-b8a49ae1cfc83b211be9d82e6e985655.mp3str"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/music/time_for_adventure.mp3"
|
||||||
|
dest_files=["res://.godot/imported/time_for_adventure.mp3-b8a49ae1cfc83b211be9d82e6e985655.mp3str"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
loop_offset=0.0
|
||||||
|
bpm=0.0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
assets/sounds/coin.wav
Normal file
24
assets/sounds/coin.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://x377tvet513g"
|
||||||
|
path="res://.godot/imported/coin.wav-9081ee1c6d81d9c34d08bc916297b892.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sounds/coin.wav"
|
||||||
|
dest_files=["res://.godot/imported/coin.wav-9081ee1c6d81d9c34d08bc916297b892.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
BIN
assets/sounds/explosion.wav
Normal file
24
assets/sounds/explosion.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://b2ajl1ie2eq7v"
|
||||||
|
path="res://.godot/imported/explosion.wav-52e05e8d4b6600106c8dde082c90f915.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sounds/explosion.wav"
|
||||||
|
dest_files=["res://.godot/imported/explosion.wav-52e05e8d4b6600106c8dde082c90f915.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
BIN
assets/sounds/hurt.wav
Normal file
24
assets/sounds/hurt.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dn7xtqm75cxah"
|
||||||
|
path="res://.godot/imported/hurt.wav-792baeb99505afd6a1496d4e4330b023.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sounds/hurt.wav"
|
||||||
|
dest_files=["res://.godot/imported/hurt.wav-792baeb99505afd6a1496d4e4330b023.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
BIN
assets/sounds/jump.wav
Normal file
24
assets/sounds/jump.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://g2u2p5u4ngwg"
|
||||||
|
path="res://.godot/imported/jump.wav-395b727cde98999423d5c020c9c3492f.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sounds/jump.wav"
|
||||||
|
dest_files=["res://.godot/imported/jump.wav-395b727cde98999423d5c020c9c3492f.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
BIN
assets/sounds/power_up.wav
Normal file
24
assets/sounds/power_up.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cbmemleloq0ye"
|
||||||
|
path="res://.godot/imported/power_up.wav-8349ffe570559470036ebff4b80f7fc0.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sounds/power_up.wav"
|
||||||
|
dest_files=["res://.godot/imported/power_up.wav-8349ffe570559470036ebff4b80f7fc0.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
BIN
assets/sounds/tap.wav
Normal file
24
assets/sounds/tap.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://jc4hm451c7qc"
|
||||||
|
path="res://.godot/imported/tap.wav-78d4c5a48b21a853d89bec74f20510e7.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sounds/tap.wav"
|
||||||
|
dest_files=["res://.godot/imported/tap.wav-78d4c5a48b21a853d89bec74f20510e7.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
BIN
assets/sprites/coin.png
Normal file
After Width: | Height: | Size: 500 B |
34
assets/sprites/coin.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://s5i4yb3kf1k4"
|
||||||
|
path="res://.godot/imported/coin.png-c8309bf0f8fb5f3a7d1e96a4eb3f02ce.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sprites/coin.png"
|
||||||
|
dest_files=["res://.godot/imported/coin.png-c8309bf0f8fb5f3a7d1e96a4eb3f02ce.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
|
BIN
assets/sprites/fruit.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
34
assets/sprites/fruit.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://jssmdvye2bhd"
|
||||||
|
path="res://.godot/imported/fruit.png-3735163b668af10c2b35b52cba81b68a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sprites/fruit.png"
|
||||||
|
dest_files=["res://.godot/imported/fruit.png-3735163b668af10c2b35b52cba81b68a.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
|
BIN
assets/sprites/knight.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
34
assets/sprites/knight.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://biyt8lt8upr57"
|
||||||
|
path="res://.godot/imported/knight.png-7c67c83d34932624952797d9e971a644.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sprites/knight.png"
|
||||||
|
dest_files=["res://.godot/imported/knight.png-7c67c83d34932624952797d9e971a644.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
|
BIN
assets/sprites/platforms.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
34
assets/sprites/platforms.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b6hly46al66si"
|
||||||
|
path="res://.godot/imported/platforms.png-3869606db457611ed4193d705dc364e4.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sprites/platforms.png"
|
||||||
|
dest_files=["res://.godot/imported/platforms.png-3869606db457611ed4193d705dc364e4.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
|
BIN
assets/sprites/slime_green.png
Normal file
After Width: | Height: | Size: 908 B |
34
assets/sprites/slime_green.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://rwxwpjc74ugo"
|
||||||
|
path="res://.godot/imported/slime_green.png-f6349164bf3a0f5189bb927b97af9c58.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sprites/slime_green.png"
|
||||||
|
dest_files=["res://.godot/imported/slime_green.png-f6349164bf3a0f5189bb927b97af9c58.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
|
BIN
assets/sprites/slime_purple.png
Normal file
After Width: | Height: | Size: 1 KiB |
34
assets/sprites/slime_purple.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://sodrxj5v1y74"
|
||||||
|
path="res://.godot/imported/slime_purple.png-26dc5ddef235ce6a400e78e0d532b050.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sprites/slime_purple.png"
|
||||||
|
dest_files=["res://.godot/imported/slime_purple.png-26dc5ddef235ce6a400e78e0d532b050.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
|
BIN
assets/sprites/world_tileset.png
Normal file
After Width: | Height: | Size: 15 KiB |
34
assets/sprites/world_tileset.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cc6id13qf0ol8"
|
||||||
|
path="res://.godot/imported/world_tileset.png-61a32465f33c3d9d3bfecb75b6485009.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sprites/world_tileset.png"
|
||||||
|
dest_files=["res://.godot/imported/world_tileset.png-61a32465f33c3d9d3bfecb75b6485009.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
default_bus_layout.tres
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[gd_resource type="AudioBusLayout" format=3 uid="uid://6ju5gsvmy3j6"]
|
||||||
|
|
||||||
|
[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"
|
40
global/ConfigFileHandler.gd
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
var config = ConfigFile.new()
|
||||||
|
|
||||||
|
const SETTINGS_FILE_PATH = "user://settings.ini"
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
if !FileAccess.file_exists(SETTINGS_FILE_PATH):
|
||||||
|
config.set_value("video", "fullscreen", true)
|
||||||
|
|
||||||
|
config.set_value("audio", "master_volume", 1.0)
|
||||||
|
config.set_value("audio", "music_volume", 1.0)
|
||||||
|
config.set_value("audio", "sfx_volume", 1.0)
|
||||||
|
config.set_value("audio", "master_volume_mute", false)
|
||||||
|
config.set_value("audio", "music_volume_mute", false)
|
||||||
|
config.set_value("audio", "sfx_volume_mute", false)
|
||||||
|
|
||||||
|
config.save(SETTINGS_FILE_PATH)
|
||||||
|
else:
|
||||||
|
config.load(SETTINGS_FILE_PATH)
|
||||||
|
|
||||||
|
func save_video_setting(key: String, value):
|
||||||
|
config.set_value("video",key,value)
|
||||||
|
config.save(SETTINGS_FILE_PATH)
|
||||||
|
|
||||||
|
func load_video_settings():
|
||||||
|
var video_settings ={}
|
||||||
|
for key in config.get_section_keys("video"):
|
||||||
|
video_settings[key] = config.get_value("video", key)
|
||||||
|
return video_settings
|
||||||
|
|
||||||
|
func save_audio_setting(key: String, value):
|
||||||
|
config.set_value("audio",key,value)
|
||||||
|
config.save(SETTINGS_FILE_PATH)
|
||||||
|
|
||||||
|
func load_audio_settings():
|
||||||
|
var audio_settings ={}
|
||||||
|
for key in config.get_section_keys("audio"):
|
||||||
|
audio_settings[key] = config.get_value("audio", key)
|
||||||
|
return audio_settings
|
1
icon.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" 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"/><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" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>
|
After Width: | Height: | Size: 994 B |
37
icon.svg.import
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ct2pu5735few"
|
||||||
|
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
|
68
project.godot
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
; 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="Solok night Adventures"
|
||||||
|
run/main_scene="res://scenes/main_menu.tscn"
|
||||||
|
config/features=PackedStringArray("4.3", "Forward Plus")
|
||||||
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
Music="*res://scenes/music.tscn"
|
||||||
|
ConfigFileHandler="*res://global/ConfigFileHandler.gd"
|
||||||
|
GlobalSettings="*res://saves/global_settings.gd"
|
||||||
|
|
||||||
|
[display]
|
||||||
|
|
||||||
|
window/stretch/mode="viewport"
|
||||||
|
|
||||||
|
[input]
|
||||||
|
|
||||||
|
move_left={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"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":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
|
||||||
|
, 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.5,
|
||||||
|
"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":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
|
||||||
|
, 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)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
jump={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"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":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
|
||||||
|
, 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":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
|
||||||
|
, 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)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
roll={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"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":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
move_down={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"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":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
|
||||||
|
, 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)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
back={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"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":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
textures/canvas_textures/default_texture_filter=0
|
33
saves/global_settings.gd
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
extends Node
|
||||||
|
var video_settings
|
||||||
|
var audio_settings
|
||||||
|
func _ready():
|
||||||
|
video_settings = ConfigFileHandler.load_video_settings()
|
||||||
|
audio_settings = ConfigFileHandler.load_audio_settings()
|
||||||
|
change_fullscreen(video_settings.fullscreen)
|
||||||
|
change_master_volume()
|
||||||
|
change_music_volume()
|
||||||
|
change_sfx_volume()
|
||||||
|
mute_master(audio_settings.master_volume_mute)
|
||||||
|
mute_music(audio_settings.music_volume_mute)
|
||||||
|
mute_sfx(audio_settings.sfx_volume_mute)
|
||||||
|
func change_fullscreen(fullscreen: bool):
|
||||||
|
if fullscreen:
|
||||||
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
||||||
|
else:
|
||||||
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
||||||
|
func change_master_volume():
|
||||||
|
audio_settings = ConfigFileHandler.load_audio_settings()
|
||||||
|
AudioServer.set_bus_volume_db(0, log(audio_settings.master_volume)*20)
|
||||||
|
func change_music_volume():
|
||||||
|
audio_settings = ConfigFileHandler.load_audio_settings()
|
||||||
|
AudioServer.set_bus_volume_db(1, log(audio_settings.music_volume)*20)
|
||||||
|
func change_sfx_volume():
|
||||||
|
audio_settings = ConfigFileHandler.load_audio_settings()
|
||||||
|
AudioServer.set_bus_volume_db(2, log(audio_settings.sfx_volume)*20)
|
||||||
|
func mute_master(master_mute : bool):
|
||||||
|
AudioServer.set_bus_mute(0, master_mute)
|
||||||
|
func mute_music(music_mute : bool):
|
||||||
|
AudioServer.set_bus_mute(1, music_mute)
|
||||||
|
func mute_sfx(sfx_mute : bool):
|
||||||
|
AudioServer.set_bus_mute(2, sfx_mute)
|
214
scenes/game.tscn
Normal file
80
scenes/healthbar.tscn
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
[gd_scene load_steps=7 format=3 uid="uid://cpvniud8u5cye"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/healthbar.gd" id="1_uekis"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://ccibh2jw5qu60" path="res://assets/fonts/PixelOperator8.ttf" id="2_18f0b"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_tl3bd"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hjn1m"]
|
||||||
|
bg_color = Color(0.297826, 0.667312, 0.30976, 1)
|
||||||
|
corner_radius_top_left = 10
|
||||||
|
corner_radius_top_right = 10
|
||||||
|
corner_radius_bottom_right = 10
|
||||||
|
corner_radius_bottom_left = 10
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kp0or"]
|
||||||
|
bg_color = Color(0.295867, 0.295867, 0.295866, 1)
|
||||||
|
corner_radius_top_left = 10
|
||||||
|
corner_radius_top_right = 10
|
||||||
|
corner_radius_bottom_right = 10
|
||||||
|
corner_radius_bottom_left = 10
|
||||||
|
expand_margin_left = 1.0
|
||||||
|
expand_margin_top = 1.0
|
||||||
|
expand_margin_right = 1.0
|
||||||
|
expand_margin_bottom = 1.0
|
||||||
|
shadow_color = Color(0, 0, 0, 0.27451)
|
||||||
|
shadow_offset = Vector2(0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ovopx"]
|
||||||
|
bg_color = Color(1, 1, 1, 1)
|
||||||
|
corner_radius_top_left = 10
|
||||||
|
corner_radius_top_right = 10
|
||||||
|
corner_radius_bottom_right = 10
|
||||||
|
corner_radius_bottom_left = 10
|
||||||
|
|
||||||
|
[node name="Healthbar" type="ProgressBar"]
|
||||||
|
z_index = 1
|
||||||
|
offset_right = 240.0
|
||||||
|
offset_bottom = 10.0
|
||||||
|
theme_override_styles/background = SubResource("StyleBoxEmpty_tl3bd")
|
||||||
|
theme_override_styles/fill = SubResource("StyleBoxFlat_hjn1m")
|
||||||
|
value = 60.0
|
||||||
|
show_percentage = false
|
||||||
|
script = ExtResource("1_uekis")
|
||||||
|
|
||||||
|
[node name="Damagebar" type="ProgressBar" parent="."]
|
||||||
|
z_index = -1
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_styles/background = SubResource("StyleBoxFlat_kp0or")
|
||||||
|
theme_override_styles/fill = SubResource("StyleBoxFlat_ovopx")
|
||||||
|
value = 80.0
|
||||||
|
show_percentage = false
|
||||||
|
|
||||||
|
[node name="Timer" type="Timer" parent="."]
|
||||||
|
wait_time = 0.4
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="Label" type="Label" 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 = -10.5
|
||||||
|
offset_top = -4.0
|
||||||
|
offset_right = 10.5
|
||||||
|
offset_bottom = 4.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_fonts/font = ExtResource("2_18f0b")
|
||||||
|
theme_override_font_sizes/font_size = 16
|
||||||
|
text = "50"
|
||||||
|
|
||||||
|
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
|
167
scenes/main_menu.tscn
Normal file
|
@ -0,0 +1,167 @@
|
||||||
|
[gd_scene load_steps=10 format=3 uid="uid://ckh2ov6h4uotl"]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" uid="uid://bsnrkucx738te" path="res://assets/fonts/PixelOperator8-Bold.ttf" id="1_iv486"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/main_menu.gd" id="1_s33a7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dsl4n8xh7u2s3" path="res://assets/background/Background.png" id="2_ejcuj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://ba41h5bxomx8c" path="res://scenes/settings.tscn" id="3_hnkc8"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1i6wl"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_608mi"]
|
||||||
|
bg_color = Color(0.497474, 0.497474, 0.497474, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o8wg7"]
|
||||||
|
bg_color = Color(0.737193, 0.737193, 0.737193, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7su0m"]
|
||||||
|
bg_color = Color(0.497474, 0.497474, 0.497474, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q67y6"]
|
||||||
|
bg_color = Color(1, 1, 1, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[node name="MainMenu" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
focus_neighbor_top = NodePath("VBoxContainer/Exit")
|
||||||
|
script = ExtResource("1_s33a7")
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = -0.102
|
||||||
|
anchor_top = -0.002
|
||||||
|
offset_left = -466.496
|
||||||
|
offset_top = -229.704
|
||||||
|
offset_right = 1171.0
|
||||||
|
offset_bottom = 745.0
|
||||||
|
texture = ExtResource("2_ejcuj")
|
||||||
|
expand_mode = 1
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 5
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
offset_left = -405.0
|
||||||
|
offset_top = 82.0
|
||||||
|
offset_right = 405.0
|
||||||
|
offset_bottom = 122.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 3
|
||||||
|
theme_override_constants/shadow_offset_y = 3
|
||||||
|
theme_override_fonts/font = ExtResource("1_iv486")
|
||||||
|
theme_override_font_sizes/font_size = 40
|
||||||
|
text = "Solok night Adventures"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" 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 = -219.0
|
||||||
|
offset_top = -116.0
|
||||||
|
offset_right = 219.0
|
||||||
|
offset_bottom = 164.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_constants/separation = 20
|
||||||
|
|
||||||
|
[node name="StartGame" type="Button" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
focus_neighbor_top = NodePath("../Exit")
|
||||||
|
focus_neighbor_bottom = NodePath("../Options")
|
||||||
|
theme_override_colors/font_hover_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_pressed_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_focus_color = Color(0.513726, 0.513726, 0, 1)
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_fonts/font = ExtResource("1_iv486")
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_1i6wl")
|
||||||
|
theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_608mi")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_o8wg7")
|
||||||
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_7su0m")
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxFlat_q67y6")
|
||||||
|
text = "Start Game"
|
||||||
|
|
||||||
|
[node name="Options" type="Button" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
focus_neighbor_top = NodePath("../StartGame")
|
||||||
|
focus_neighbor_bottom = NodePath("../Exit")
|
||||||
|
theme_override_colors/font_hover_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_pressed_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_focus_color = Color(0.513726, 0.513726, 0, 1)
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_fonts/font = ExtResource("1_iv486")
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_1i6wl")
|
||||||
|
theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_608mi")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_o8wg7")
|
||||||
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_7su0m")
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxFlat_q67y6")
|
||||||
|
text = "Options"
|
||||||
|
|
||||||
|
[node name="Exit" type="Button" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
focus_neighbor_top = NodePath("../Options")
|
||||||
|
focus_neighbor_bottom = NodePath("../StartGame")
|
||||||
|
theme_override_colors/font_hover_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_pressed_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_focus_color = Color(0.513726, 0.513726, 0, 1)
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_fonts/font = ExtResource("1_iv486")
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_1i6wl")
|
||||||
|
theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_608mi")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_o8wg7")
|
||||||
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_7su0m")
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxFlat_q67y6")
|
||||||
|
text = "Exit"
|
||||||
|
|
||||||
|
[node name="Settings" parent="." instance=ExtResource("3_hnkc8")]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
|
||||||
|
[connection signal="pressed" from="VBoxContainer/StartGame" to="." method="_on_start_game_pressed"]
|
||||||
|
[connection signal="pressed" from="VBoxContainer/Options" to="." method="_on_options_pressed"]
|
||||||
|
[connection signal="pressed" from="VBoxContainer/Exit" to="." method="_on_exit_pressed"]
|
9
scenes/music.tscn
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://d4lukp0vk4p64"]
|
||||||
|
|
||||||
|
[ext_resource type="AudioStream" uid="uid://pwtmr7mko3ls" path="res://assets/music/time_for_adventure.mp3" id="1_k2etp"]
|
||||||
|
|
||||||
|
[node name="Music" type="AudioStreamPlayer2D"]
|
||||||
|
stream = ExtResource("1_k2etp")
|
||||||
|
autoplay = true
|
||||||
|
bus = &"Music"
|
||||||
|
parameters/looping = false
|
135
scenes/pause_menu.tscn
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
[gd_scene load_steps=9 format=3 uid="uid://dtsxritjcddxc"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/pause_menu.gd" id="1_6ya5j"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://bsnrkucx738te" path="res://assets/fonts/PixelOperator8-Bold.ttf" id="1_7l1o7"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://ba41h5bxomx8c" path="res://scenes/settings.tscn" id="3_qpp3d"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1i6wl"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_608mi"]
|
||||||
|
bg_color = Color(0.497474, 0.497474, 0.497474, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o8wg7"]
|
||||||
|
bg_color = Color(0.737193, 0.737193, 0.737193, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7su0m"]
|
||||||
|
bg_color = Color(0.497474, 0.497474, 0.497474, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q67y6"]
|
||||||
|
bg_color = Color(1, 1, 1, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[node name="Pause Menu" type="Control"]
|
||||||
|
process_mode = 3
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
focus_neighbor_top = NodePath("VBoxContainer/Main Menu")
|
||||||
|
script = ExtResource("1_6ya5j")
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" 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 = -219.0
|
||||||
|
offset_top = -116.0
|
||||||
|
offset_right = 219.0
|
||||||
|
offset_bottom = 164.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_constants/separation = 20
|
||||||
|
|
||||||
|
[node name="Resume" type="Button" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
focus_neighbor_top = NodePath("../Main Menu")
|
||||||
|
focus_neighbor_bottom = NodePath("../Options")
|
||||||
|
theme_override_colors/font_hover_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_pressed_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_focus_color = Color(0.513726, 0.513726, 0, 1)
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_fonts/font = ExtResource("1_7l1o7")
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_1i6wl")
|
||||||
|
theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_608mi")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_o8wg7")
|
||||||
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_7su0m")
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxFlat_q67y6")
|
||||||
|
text = "Resume"
|
||||||
|
|
||||||
|
[node name="Options" type="Button" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
focus_neighbor_top = NodePath("../Resume")
|
||||||
|
focus_neighbor_bottom = NodePath("../Main Menu")
|
||||||
|
theme_override_colors/font_hover_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_pressed_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_focus_color = Color(0.513726, 0.513726, 0, 1)
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_fonts/font = ExtResource("1_7l1o7")
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_1i6wl")
|
||||||
|
theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_608mi")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_o8wg7")
|
||||||
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_7su0m")
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxFlat_q67y6")
|
||||||
|
text = "Options"
|
||||||
|
|
||||||
|
[node name="Main Menu" type="Button" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
focus_neighbor_top = NodePath("../Options")
|
||||||
|
focus_neighbor_bottom = NodePath("../Resume")
|
||||||
|
theme_override_colors/font_hover_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_pressed_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_focus_color = Color(0.513726, 0.513726, 0, 1)
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_fonts/font = ExtResource("1_7l1o7")
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_1i6wl")
|
||||||
|
theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_608mi")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_o8wg7")
|
||||||
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_7su0m")
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxFlat_q67y6")
|
||||||
|
text = "Quit and Save"
|
||||||
|
|
||||||
|
[node name="Settings" parent="." instance=ExtResource("3_qpp3d")]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
|
||||||
|
[connection signal="pressed" from="VBoxContainer/Resume" to="." method="_on_resume_pressed"]
|
||||||
|
[connection signal="pressed" from="VBoxContainer/Options" to="." method="_on_options_pressed"]
|
||||||
|
[connection signal="pressed" from="VBoxContainer/Main Menu" to="." method="_on_main_menu_pressed"]
|
18
scenes/platform.tscn
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://cxkbwbyvm01u"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b6hly46al66si" path="res://assets/sprites/platforms.png" id="1_1uwpc"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ap8pu"]
|
||||||
|
size = Vector2(48, 8)
|
||||||
|
|
||||||
|
[node name="Platform Stone Ice" type="AnimatableBody2D"]
|
||||||
|
collision_layer = 2
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
texture = ExtResource("1_1uwpc")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(0, 48, 48, 9)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource("RectangleShape2D_ap8pu")
|
||||||
|
one_way_collision = true
|
344
scenes/player.tscn
Normal file
|
@ -0,0 +1,344 @@
|
||||||
|
[gd_scene load_steps=45 format=3 uid="uid://2ix3b3dgvsb8"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://biyt8lt8upr57" path="res://assets/sprites/knight.png" id="1_eln0f"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/player.gd" id="1_kr8bd"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://g2u2p5u4ngwg" path="res://assets/sounds/jump.wav" id="2_1534m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cpvniud8u5cye" path="res://scenes/healthbar.tscn" id="4_qiotf"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_vqg2e"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(64, 160, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_uvy3x"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(0, 224, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_iivs4"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(32, 224, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_80rif"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(64, 224, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_6fjjv"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(96, 224, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_l0wiy"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(0, 192, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ax3sr"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(32, 192, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ashfv"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(64, 192, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_x8aus"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(96, 192, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_xt6x1"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(0, 0, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_qigwk"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(32, 0, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_rl4qg"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(64, 0, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_w5wnh"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(96, 0, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_r3luj"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(64, 160, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ypqk0"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(0, 160, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_jccvt"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(32, 160, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_6uq80"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(64, 160, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_jjvof"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(96, 160, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_j2b3a"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(128, 160, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_me27c"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(160, 160, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_v24te"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(192, 160, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_l2fu4"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(224, 160, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_utnbs"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(0, 64, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_elbi0"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(32, 64, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_058hd"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(64, 64, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_iwikn"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(96, 64, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_rjri0"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(128, 64, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_vpbpm"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(160, 64, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_y43fb"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(192, 64, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_lck22"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(224, 64, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ubi3o"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(0, 96, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_db76j"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(32, 96, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ach3q"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(64, 96, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_8ocsr"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(96, 96, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_l5pj6"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(128, 96, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ep4xs"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(160, 96, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_pqgbo"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(192, 96, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_w5eqv"]
|
||||||
|
atlas = ExtResource("1_eln0f")
|
||||||
|
region = Rect2(224, 96, 32, 32)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_ngeqx"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_vqg2e")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"crouch",
|
||||||
|
"speed": 10.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_uvy3x")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_iivs4")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_80rif")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_6fjjv")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"death",
|
||||||
|
"speed": 10.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_l0wiy")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ax3sr")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ashfv")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_x8aus")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"hit",
|
||||||
|
"speed": 10.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_xt6x1")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_qigwk")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_rl4qg")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_w5wnh")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"idle",
|
||||||
|
"speed": 10.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_r3luj")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"jump",
|
||||||
|
"speed": 10.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ypqk0")
|
||||||
|
}, {
|
||||||
|
"duration": 2.0,
|
||||||
|
"texture": SubResource("AtlasTexture_jccvt")
|
||||||
|
}, {
|
||||||
|
"duration": 2.0,
|
||||||
|
"texture": SubResource("AtlasTexture_6uq80")
|
||||||
|
}, {
|
||||||
|
"duration": 2.0,
|
||||||
|
"texture": SubResource("AtlasTexture_jjvof")
|
||||||
|
}, {
|
||||||
|
"duration": 2.0,
|
||||||
|
"texture": SubResource("AtlasTexture_j2b3a")
|
||||||
|
}, {
|
||||||
|
"duration": 2.0,
|
||||||
|
"texture": SubResource("AtlasTexture_me27c")
|
||||||
|
}, {
|
||||||
|
"duration": 2.0,
|
||||||
|
"texture": SubResource("AtlasTexture_v24te")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_l2fu4")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"roll",
|
||||||
|
"speed": 30.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_utnbs")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_elbi0")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_058hd")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_iwikn")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_rjri0")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_vpbpm")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_y43fb")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_lck22")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ubi3o")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_db76j")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ach3q")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_8ocsr")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_l5pj6")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ep4xs")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_pqgbo")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_w5eqv")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"run",
|
||||||
|
"speed": 10.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_esl4s"]
|
||||||
|
radius = 5.0
|
||||||
|
|
||||||
|
[node name="Player" type="CharacterBody2D"]
|
||||||
|
position = Vector2(2, 0)
|
||||||
|
collision_mask = 3
|
||||||
|
script = ExtResource("1_kr8bd")
|
||||||
|
|
||||||
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
|
position = Vector2(1, -12)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_ngeqx")
|
||||||
|
animation = &"roll"
|
||||||
|
frame_progress = 0.509179
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(1, -5)
|
||||||
|
shape = SubResource("CircleShape2D_esl4s")
|
||||||
|
|
||||||
|
[node name="Jump" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
stream = ExtResource("2_1534m")
|
||||||
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="RollTimer" type="Timer" parent="."]
|
||||||
|
wait_time = 0.5
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="ui" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
[node name="Healthbar" parent="ui" instance=ExtResource("4_qiotf")]
|
||||||
|
offset_left = 30.0
|
||||||
|
offset_top = 23.0
|
||||||
|
offset_right = 368.0
|
||||||
|
offset_bottom = 54.0
|
206
scenes/settings.tscn
Normal file
|
@ -0,0 +1,206 @@
|
||||||
|
[gd_scene load_steps=10 format=3 uid="uid://ba41h5bxomx8c"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/settings_menu.gd" id="1_h841y"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://bsnrkucx738te" path="res://assets/fonts/PixelOperator8-Bold.ttf" id="2_aovm3"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://ccibh2jw5qu60" path="res://assets/fonts/PixelOperator8.ttf" id="2_md6qq"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2nkwn"]
|
||||||
|
bg_color = Color(0.552941, 0.552941, 0.552941, 0.772549)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_dsvtm"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8vupu"]
|
||||||
|
bg_color = Color(0.497474, 0.497474, 0.497474, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_e3yc6"]
|
||||||
|
bg_color = Color(0.737193, 0.737193, 0.737193, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rtxvr"]
|
||||||
|
bg_color = Color(0.497474, 0.497474, 0.497474, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ea2pv"]
|
||||||
|
bg_color = Color(1, 1, 1, 1)
|
||||||
|
corner_radius_top_left = 16
|
||||||
|
corner_radius_top_right = 16
|
||||||
|
corner_radius_bottom_right = 16
|
||||||
|
corner_radius_bottom_left = 16
|
||||||
|
shadow_color = Color(0, 0, 0, 0.368627)
|
||||||
|
shadow_size = 5
|
||||||
|
shadow_offset = Vector2(0, 3.41)
|
||||||
|
|
||||||
|
[node name="Settings" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_h841y")
|
||||||
|
|
||||||
|
[node name="Panel" type="Panel" parent="."]
|
||||||
|
custom_minimum_size = Vector2(1, 2)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -324.5
|
||||||
|
offset_top = -197.0
|
||||||
|
offset_right = 324.5
|
||||||
|
offset_bottom = 197.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_styles/panel = SubResource("StyleBoxFlat_2nkwn")
|
||||||
|
|
||||||
|
[node name="CenterContainer" type="CenterContainer" 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 = -326.0
|
||||||
|
offset_top = -195.5
|
||||||
|
offset_right = 326.0
|
||||||
|
offset_bottom = 195.5
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="VBoxContainer2" type="VBoxContainer" parent="CenterContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 15
|
||||||
|
|
||||||
|
[node name="Label3" type="Label" parent="CenterContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("2_md6qq")
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "Video"
|
||||||
|
|
||||||
|
[node name="HBoxContainer2" type="HBoxContainer" parent="CenterContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Fullscreen" type="CheckBox" parent="CenterContainer/VBoxContainer2/HBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 0
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="CenterContainer/VBoxContainer2/HBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("2_md6qq")
|
||||||
|
theme_override_font_sizes/font_size = 16
|
||||||
|
text = "Fullscreen"
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="CenterContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("2_md6qq")
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "Audio"
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 75
|
||||||
|
|
||||||
|
[node name="Volume Slider" type="VBoxContainer" parent="CenterContainer/VBoxContainer2/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 10
|
||||||
|
|
||||||
|
[node name="Label4" type="Label" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("2_md6qq")
|
||||||
|
theme_override_font_sizes/font_size = 16
|
||||||
|
text = "Master Volume"
|
||||||
|
|
||||||
|
[node name="MasterVolume" type="HSlider" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label5" type="Label" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("2_md6qq")
|
||||||
|
theme_override_font_sizes/font_size = 16
|
||||||
|
text = "Music Volume"
|
||||||
|
|
||||||
|
[node name="MusicVolume" type="HSlider" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label6" type="Label" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("2_md6qq")
|
||||||
|
theme_override_font_sizes/font_size = 16
|
||||||
|
text = "SFX Volume"
|
||||||
|
|
||||||
|
[node name="SFXVolume" type="HSlider" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Volume Mute" type="VBoxContainer" parent="CenterContainer/VBoxContainer2/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 5
|
||||||
|
|
||||||
|
[node name="Label7" type="Label" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("2_md6qq")
|
||||||
|
theme_override_font_sizes/font_size = 16
|
||||||
|
text = "Mute"
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 30
|
||||||
|
|
||||||
|
[node name="MasterVolumeMute" type="CheckBox" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="MusicVolumeMute" type="CheckBox" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="SFXVolumeMute" type="CheckBox" parent="CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Back" type="Button" parent="CenterContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
focus_neighbor_top = NodePath("../Options")
|
||||||
|
focus_neighbor_bottom = NodePath("../StartGame")
|
||||||
|
theme_override_colors/font_hover_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_pressed_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_colors/font_focus_color = Color(0.513726, 0.513726, 0, 1)
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_fonts/font = ExtResource("2_aovm3")
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_dsvtm")
|
||||||
|
theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_8vupu")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_e3yc6")
|
||||||
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_rtxvr")
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxFlat_ea2pv")
|
||||||
|
text = "Back"
|
||||||
|
|
||||||
|
[connection signal="toggled" from="CenterContainer/VBoxContainer2/HBoxContainer2/Fullscreen" to="." method="_on_fullscreen_toggled"]
|
||||||
|
[connection signal="drag_ended" from="CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider/MasterVolume" to="." method="_on_master_volume_drag_ended"]
|
||||||
|
[connection signal="drag_ended" from="CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider/MusicVolume" to="." method="_on_music_volume_drag_ended"]
|
||||||
|
[connection signal="drag_ended" from="CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider/SFXVolume" to="." method="_on_sfx_volume_drag_ended"]
|
||||||
|
[connection signal="toggled" from="CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute/VBoxContainer/MasterVolumeMute" to="." method="_on_master_volume_mute_toggled"]
|
||||||
|
[connection signal="toggled" from="CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute/VBoxContainer/MasterVolumeMute" to="." method="_on_mastervolume_mute_toggled"]
|
||||||
|
[connection signal="toggled" from="CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute/VBoxContainer/MusicVolumeMute" to="." method="_on_music_volume_mute_toggled"]
|
||||||
|
[connection signal="toggled" from="CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute/VBoxContainer/SFXVolumeMute" to="." method="_on_sfx_volume_mute_toggled"]
|
||||||
|
[connection signal="pressed" from="CenterContainer/VBoxContainer2/Back" to="." method="_on_back_pressed"]
|
13
scripts/game.gd
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 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
|
34
scripts/healthbar.gd
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
extends ProgressBar
|
||||||
|
|
||||||
|
@onready var label: Label = $Label
|
||||||
|
@onready var damagebar: ProgressBar = $Damagebar
|
||||||
|
@onready var timer: Timer = $Timer
|
||||||
|
|
||||||
|
var health = 0 : set = _set_health
|
||||||
|
|
||||||
|
func _set_health(new_health):
|
||||||
|
var prev_health = health
|
||||||
|
health = min(max_value, new_health)
|
||||||
|
value = health
|
||||||
|
label.text = str(health)
|
||||||
|
|
||||||
|
if health <= 0:
|
||||||
|
queue_free()
|
||||||
|
|
||||||
|
if health < prev_health:
|
||||||
|
timer.start()
|
||||||
|
elif !timer.is_stopped():
|
||||||
|
pass
|
||||||
|
|
||||||
|
else: damagebar.value = health
|
||||||
|
|
||||||
|
func init_health(_health):
|
||||||
|
health = _health
|
||||||
|
max_value = health
|
||||||
|
value = health
|
||||||
|
damagebar.max_value = health
|
||||||
|
damagebar.value = health
|
||||||
|
|
||||||
|
func _on_timer_timeout() -> void:
|
||||||
|
damagebar.value = health
|
||||||
|
|
25
scripts/main_menu.gd
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
extends Control
|
||||||
|
@onready var settings: Control = $Settings
|
||||||
|
@onready var v_box_container: VBoxContainer = $VBoxContainer
|
||||||
|
@onready var label: Label = $Label
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
$VBoxContainer/StartGame.grab_focus()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_start_game_pressed() -> void:
|
||||||
|
get_tree().change_scene_to_file("res://scenes/game.tscn")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_options_pressed() -> void:
|
||||||
|
settings.visible = true
|
||||||
|
v_box_container.visible = false
|
||||||
|
label.visible = false
|
||||||
|
|
||||||
|
func _on_exit_pressed() -> void:
|
||||||
|
get_tree().quit()
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
if !settings.visible:
|
||||||
|
v_box_container.visible = true
|
||||||
|
label.visible = true
|
33
scripts/pause_menu.gd
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
extends Control
|
||||||
|
@onready var settings: Control = $Settings
|
||||||
|
@onready var v_box_container: VBoxContainer = $VBoxContainer
|
||||||
|
func _ready() -> void:
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
func resume():
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
func pause():
|
||||||
|
$VBoxContainer/Resume.grab_focus()
|
||||||
|
visible = true
|
||||||
|
|
||||||
|
func testEsc():
|
||||||
|
if Input.is_action_just_pressed("back") and !visible:
|
||||||
|
pause()
|
||||||
|
elif Input.is_action_just_pressed("back") and visible:
|
||||||
|
resume()
|
||||||
|
|
||||||
|
func _on_resume_pressed() -> void:
|
||||||
|
resume()
|
||||||
|
|
||||||
|
func _on_options_pressed() -> void:
|
||||||
|
settings.visible = true
|
||||||
|
v_box_container.visible = false
|
||||||
|
|
||||||
|
func _on_main_menu_pressed() -> void:
|
||||||
|
get_tree().change_scene_to_file("res://scenes/main_menu.tscn")
|
||||||
|
get_parent().queue_free()
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
testEsc()
|
||||||
|
if !settings.visible and !v_box_container.visible:
|
||||||
|
v_box_container.visible = true
|
101
scripts/player.gd
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
@onready var healthbar: ProgressBar = $ui/Healthbar
|
||||||
|
|
||||||
|
|
||||||
|
var health
|
||||||
|
var speed
|
||||||
|
var jump_velocity
|
||||||
|
var jumpcount
|
||||||
|
|
||||||
|
const ROLLSPEED = 2
|
||||||
|
var is_rolling = false
|
||||||
|
@onready var jump: AudioStreamPlayer2D = $Jump
|
||||||
|
@onready var animated_sprite: AnimatedSprite2D = $AnimatedSprite2D
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
health = 100
|
||||||
|
speed = 130.0
|
||||||
|
jump_velocity = -300
|
||||||
|
jumpcount = 0
|
||||||
|
healthbar.init_health(health)
|
||||||
|
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
# Add the gravity.
|
||||||
|
if not is_on_floor():
|
||||||
|
if Input.is_action_pressed("move_down"):
|
||||||
|
velocity += get_gravity() * delta * 1.7
|
||||||
|
elif velocity.y > 0:
|
||||||
|
velocity += get_gravity() * delta * 1.3
|
||||||
|
else:
|
||||||
|
velocity += get_gravity() * delta
|
||||||
|
|
||||||
|
# Handle jump.
|
||||||
|
if Input.is_action_just_released("jump") and velocity.y<0:
|
||||||
|
velocity.y = jump_velocity/4
|
||||||
|
# Doublejump
|
||||||
|
if jumpcount == 1 and Input.is_action_just_pressed("jump"):
|
||||||
|
velocity.y = jump_velocity
|
||||||
|
jump.play()
|
||||||
|
jumpcount = 2
|
||||||
|
# Jump
|
||||||
|
if Input.is_action_just_pressed("jump") and is_on_floor():
|
||||||
|
velocity.y = jump_velocity
|
||||||
|
jump.play()
|
||||||
|
jumpcount = 1
|
||||||
|
health -= 20
|
||||||
|
# Doublejump reset
|
||||||
|
if !Input.is_action_just_pressed("jump") and is_on_floor():
|
||||||
|
jumpcount = 0
|
||||||
|
# Fall through
|
||||||
|
if Input.is_action_pressed("move_down"):
|
||||||
|
set_collision_mask_value(2, false)
|
||||||
|
|
||||||
|
else:
|
||||||
|
set_collision_mask_value(2, true)
|
||||||
|
# Get the input direction: -1, 0, 1
|
||||||
|
var direction := Input.get_axis("move_left", "move_right")
|
||||||
|
# Flip the Sprite
|
||||||
|
if direction > 0 :
|
||||||
|
animated_sprite.flip_h = false
|
||||||
|
elif direction < 0:
|
||||||
|
animated_sprite.flip_h = true
|
||||||
|
# Play animations
|
||||||
|
if is_on_floor():
|
||||||
|
if Input.is_action_pressed("move_down") and direction == 0:
|
||||||
|
animated_sprite.play("crouch")
|
||||||
|
elif direction == 0:
|
||||||
|
animated_sprite.play("idle")
|
||||||
|
elif is_rolling:
|
||||||
|
animated_sprite.play("roll")
|
||||||
|
else:
|
||||||
|
animated_sprite.play("run")
|
||||||
|
else:
|
||||||
|
animated_sprite.play("jump")
|
||||||
|
# Apply Movement
|
||||||
|
# Roll
|
||||||
|
if Input.is_action_just_pressed("roll"):
|
||||||
|
if !is_rolling and direction and is_on_floor():
|
||||||
|
start_dash()
|
||||||
|
if direction:
|
||||||
|
if is_rolling:
|
||||||
|
velocity.x = direction * speed * ROLLSPEED
|
||||||
|
# Running
|
||||||
|
else:
|
||||||
|
velocity.x = direction * speed
|
||||||
|
else:
|
||||||
|
velocity.x = move_toward(velocity.x, 0, speed)
|
||||||
|
|
||||||
|
move_and_slide()
|
||||||
|
|
||||||
|
func start_dash():
|
||||||
|
is_rolling = true
|
||||||
|
$RollTimer.connect("timeout", stop_dash)
|
||||||
|
$RollTimer.start()
|
||||||
|
func stop_dash():
|
||||||
|
is_rolling = false
|
||||||
|
|
||||||
|
#Health
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
healthbar._set_health(health)
|
63
scripts/settings_menu.gd
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
extends Control
|
||||||
|
@onready var back: Button = $CenterContainer/VBoxContainer2/Back
|
||||||
|
# Video Settings
|
||||||
|
@onready var fullscreen: CheckBox = $CenterContainer/VBoxContainer2/HBoxContainer2/Fullscreen
|
||||||
|
# Audio Settings
|
||||||
|
@onready var master_volume: HSlider = $"CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider/MasterVolume"
|
||||||
|
@onready var music_volume: HSlider = $"CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider/MusicVolume"
|
||||||
|
@onready var sfx_volume: HSlider = $"CenterContainer/VBoxContainer2/HBoxContainer/Volume Slider/SFXVolume"
|
||||||
|
@onready var master_volume_mute: CheckBox = $"CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute/VBoxContainer/MasterVolumeMute"
|
||||||
|
@onready var music_volume_mute: CheckBox = $"CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute/VBoxContainer/MusicVolumeMute"
|
||||||
|
@onready var sfx_volume_mute: CheckBox =$"CenterContainer/VBoxContainer2/HBoxContainer/Volume Mute/VBoxContainer/SFXVolumeMute"
|
||||||
|
|
||||||
|
# saving
|
||||||
|
func _ready():
|
||||||
|
var video_settings = ConfigFileHandler.load_video_settings()
|
||||||
|
fullscreen.button_pressed = video_settings.fullscreen
|
||||||
|
var audio_settings = ConfigFileHandler.load_audio_settings()
|
||||||
|
master_volume.value = min(audio_settings.master_volume, 1.0) * 100
|
||||||
|
music_volume.value = min(audio_settings.music_volume, 1.0) * 100
|
||||||
|
sfx_volume.value = min(audio_settings.sfx_volume, 1.0) * 100
|
||||||
|
master_volume_mute.button_pressed = audio_settings.master_volume_mute
|
||||||
|
music_volume_mute.button_pressed = audio_settings.music_volume_mute
|
||||||
|
sfx_volume_mute.button_pressed = audio_settings.sfx_volume_mute
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
func _on_fullscreen_toggled(toggled_on: bool) -> void:
|
||||||
|
ConfigFileHandler.save_video_setting("fullscreen", toggled_on)
|
||||||
|
GlobalSettings.change_fullscreen(fullscreen.button_pressed)
|
||||||
|
|
||||||
|
func _on_master_volume_drag_ended(value_changed: bool) -> void:
|
||||||
|
if value_changed:
|
||||||
|
ConfigFileHandler.save_audio_setting("master_volume", master_volume.value/100)
|
||||||
|
GlobalSettings.change_master_volume()
|
||||||
|
|
||||||
|
func _on_music_volume_drag_ended(value_changed: bool) -> void:
|
||||||
|
if value_changed:
|
||||||
|
ConfigFileHandler.save_audio_setting("music_volume", music_volume.value/100)
|
||||||
|
GlobalSettings.change_music_volume()
|
||||||
|
|
||||||
|
func _on_sfx_volume_drag_ended(value_changed: bool) -> void:
|
||||||
|
if value_changed:
|
||||||
|
ConfigFileHandler.save_audio_setting("sfx_volume", sfx_volume.value/100)
|
||||||
|
GlobalSettings.change_sfx_volume()
|
||||||
|
|
||||||
|
func _on_master_volume_mute_toggled(toggled_on: bool) -> void:
|
||||||
|
ConfigFileHandler.save_audio_setting("master_volume_mute", toggled_on)
|
||||||
|
GlobalSettings.mute_master(master_volume_mute.button_pressed)
|
||||||
|
|
||||||
|
func _on_music_volume_mute_toggled(toggled_on: bool) -> void:
|
||||||
|
ConfigFileHandler.save_audio_setting("music_volume_mute", toggled_on)
|
||||||
|
GlobalSettings.mute_music(music_volume_mute.button_pressed)
|
||||||
|
|
||||||
|
func _on_sfx_volume_mute_toggled(toggled_on: bool) -> void:
|
||||||
|
ConfigFileHandler.save_audio_setting("sfx_volume_mute", toggled_on)
|
||||||
|
GlobalSettings.mute_sfx(sfx_volume_mute.button_pressed)
|
||||||
|
# Settings
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
check_Esc()
|
||||||
|
func check_Esc():
|
||||||
|
if Input.is_action_just_pressed("back"):
|
||||||
|
visible = false
|
||||||
|
func _on_back_pressed() -> void:
|
||||||
|
visible = false
|