Merge pull request 'Getting Stuff Together' (#42) from dev-base into stable
All checks were successful
Export Game
Reviewed-on: #42
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://dwkjfno8mjrdp"
|
uid="uid://1tn0jeyhxy1k"
|
||||||
path="res://.godot/imported/ColorPallet.png-9feaa0f98adb7b976a9666999fd546c6.ctex"
|
path="res://.godot/imported/ColorPallet.png-9feaa0f98adb7b976a9666999fd546c6.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
|
BIN
Assets/Fonts/Dogica/dogica.ttf
Normal file
33
Assets/Fonts/Dogica/dogica.ttf.import
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://cnjan4pbb0t7y"
|
||||||
|
path="res://.godot/imported/dogica.ttf-cca28cc7d16ed3c13206eee2bc7c7b52.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Fonts/Dogica/dogica.ttf"
|
||||||
|
dest_files=["res://.godot/imported/dogica.ttf-cca28cc7d16ed3c13206eee2bc7c7b52.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
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/Dogica/dogicabold.ttf
Normal file
33
Assets/Fonts/Dogica/dogicabold.ttf.import
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://b3gehhp8onguu"
|
||||||
|
path="res://.godot/imported/dogicabold.ttf-7a6b755be6795c57e32ed0bf4e1f5470.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Fonts/Dogica/dogicabold.ttf"
|
||||||
|
dest_files=["res://.godot/imported/dogicabold.ttf-7a6b755be6795c57e32ed0bf4e1f5470.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
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/Dogica/dogicapixel.ttf
Normal file
33
Assets/Fonts/Dogica/dogicapixel.ttf.import
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://dqdeftjkwxe64"
|
||||||
|
path="res://.godot/imported/dogicapixel.ttf-3989b977d2a1d83a86699e4542933e5f.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Fonts/Dogica/dogicapixel.ttf"
|
||||||
|
dest_files=["res://.godot/imported/dogicapixel.ttf-3989b977d2a1d83a86699e4542933e5f.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
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/Dogica/dogicapixelbold.ttf
Normal file
33
Assets/Fonts/Dogica/dogicapixelbold.ttf.import
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://ymsnpcoeg07j"
|
||||||
|
path="res://.godot/imported/dogicapixelbold.ttf-304a51366a90ea0cf00d3f76893ac3ec.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Fonts/Dogica/dogicapixelbold.ttf"
|
||||||
|
dest_files=["res://.godot/imported/dogicapixelbold.ttf-304a51366a90ea0cf00d3f76893ac3ec.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
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={}
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4 KiB |
BIN
Assets/Sprites/Easter Egg/Egg 1.png
Normal file
After Width: | Height: | Size: 522 B |
34
Assets/Sprites/Easter Egg/Egg 1.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dkotcqflp3e32"
|
||||||
|
path="res://.godot/imported/Egg 1.png-1b589e8341e1098857da93ae736df578.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/Easter Egg/Egg 1.png"
|
||||||
|
dest_files=["res://.godot/imported/Egg 1.png-1b589e8341e1098857da93ae736df578.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/Easter Egg/Egg 2.png
Normal file
After Width: | Height: | Size: 470 B |
34
Assets/Sprites/Easter Egg/Egg 2.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c3yg6u8yncau3"
|
||||||
|
path="res://.godot/imported/Egg 2.png-3ecb9a3c38d8804b494043f6efeaf5ee.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/Easter Egg/Egg 2.png"
|
||||||
|
dest_files=["res://.godot/imported/Egg 2.png-3ecb9a3c38d8804b494043f6efeaf5ee.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/Easter Egg/Egg 3.png
Normal file
After Width: | Height: | Size: 445 B |
34
Assets/Sprites/Easter Egg/Egg 3.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://daat37cyg0go5"
|
||||||
|
path="res://.godot/imported/Egg 3.png-c72e63a8a820676347949adf94a3512a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/Easter Egg/Egg 3.png"
|
||||||
|
dest_files=["res://.godot/imported/Egg 3.png-c72e63a8a820676347949adf94a3512a.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/Easter Egg/Shadow.png
Normal file
After Width: | Height: | Size: 145 B |
34
Assets/Sprites/Easter Egg/Shadow.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://tjxkew3m4v8m"
|
||||||
|
path="res://.godot/imported/Shadow.png-763630734c7fdb0535d00bfd3d40a6b3.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/Easter Egg/Shadow.png"
|
||||||
|
dest_files=["res://.godot/imported/Shadow.png-763630734c7fdb0535d00bfd3d40a6b3.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
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://db70wcy5ua3jd"
|
uid="uid://ojlfqxj5bilo"
|
||||||
path="res://.godot/imported/jesus_spritesheet.png-2f2e431acd4617eba93529f5420694c6.ctex"
|
path="res://.godot/imported/jesus_spritesheet.png-2f2e431acd4617eba93529f5420694c6.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
|
BIN
Assets/Sprites/Props/Cake.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
34
Assets/Sprites/Props/Cake.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dhvvw4yckl8x7"
|
||||||
|
path="res://.godot/imported/Cake.png-a1299373d3c2f4ed321393ceaefc7ccc.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/Props/Cake.png"
|
||||||
|
dest_files=["res://.godot/imported/Cake.png-a1299373d3c2f4ed321393ceaefc7ccc.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
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.4 KiB |
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://bqi3ddjrcj2bh"
|
uid="uid://dl2qogjortsbo"
|
||||||
path="res://.godot/imported/TileMap.png-5a8ebee45e38c1e4c53b5e5cf69bfe18.ctex"
|
path="res://.godot/imported/TileMap.png-5a8ebee45e38c1e4c53b5e5cf69bfe18.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
|
BIN
Assets/Sprites/UI Elements/Cross.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
34
Assets/Sprites/UI Elements/Cross.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://6snf183fgfo5"
|
||||||
|
path="res://.godot/imported/Cross.png-cb47f197658081aa6b3b2436216091d8.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/UI Elements/Cross.png"
|
||||||
|
dest_files=["res://.godot/imported/Cross.png-cb47f197658081aa6b3b2436216091d8.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/UI Elements/Jesus.png
Normal file
After Width: | Height: | Size: 563 B |
34
Assets/Sprites/UI Elements/Jesus.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cp84ssaqs3pmp"
|
||||||
|
path="res://.godot/imported/Jesus.png-4b77d6b073d02e874b45321d0948eaf8.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/UI Elements/Jesus.png"
|
||||||
|
dest_files=["res://.godot/imported/Jesus.png-4b77d6b073d02e874b45321d0948eaf8.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
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://c5jj6s5orw6mi"
|
uid="uid://dlxjdb0tchrps"
|
||||||
path="res://.godot/imported/crucefix.png-cb219c7b600f79e2811b5e89faa1becb.ctex"
|
path="res://.godot/imported/crucefix.png-cb219c7b600f79e2811b5e89faa1becb.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
|
BIN
Assets/Temp Music/awesomeness.wav
Normal file
24
Assets/Temp Music/awesomeness.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dpbyjnyg765r7"
|
||||||
|
path="res://.godot/imported/awesomeness.wav-59f1c1423f54ec46cf96ddbcf1a5f126.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Temp Music/awesomeness.wav"
|
||||||
|
dest_files=["res://.godot/imported/awesomeness.wav-59f1c1423f54ec46cf96ddbcf1a5f126.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
|
16
Assets/Temp Music/default_bus_layout.tres
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
[gd_resource type="AudioBusLayout" format=3 uid="uid://df0inyse5slni"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
bus/0/volume_db = 0.796078
|
||||||
|
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"
|
BIN
Assets/Temp Music/omw-to-beat-the-big-bad.wav
Normal file
24
Assets/Temp Music/omw-to-beat-the-big-bad.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://c6nf5s6xy2uii"
|
||||||
|
path="res://.godot/imported/omw-to-beat-the-big-bad.wav-7f8a9a2e19afe1786d6b9f29ff762163.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Temp Music/omw-to-beat-the-big-bad.wav"
|
||||||
|
dest_files=["res://.godot/imported/omw-to-beat-the-big-bad.wav-7f8a9a2e19afe1786d6b9f29ff762163.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
|
|
@ -1,6 +1,11 @@
|
||||||
[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://bj7uu2180mie3"]
|
[gd_resource type="TileSet" load_steps=4 format=3 uid="uid://bj7uu2180mie3"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bqi3ddjrcj2bh" path="res://Assets/Sprites/TileMap.png" id="1_cl3se"]
|
[ext_resource type="Texture2D" uid="uid://dl2qogjortsbo" path="res://Assets/Sprites/TileMap.png" id="1_cl3se"]
|
||||||
|
|
||||||
|
[sub_resource type="NavigationPolygon" id="NavigationPolygon_fhapu"]
|
||||||
|
vertices = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||||
|
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
|
||||||
|
outlines = Array[PackedVector2Array]([PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)])
|
||||||
|
|
||||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_mgef5"]
|
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_mgef5"]
|
||||||
texture = ExtResource("1_cl3se")
|
texture = ExtResource("1_cl3se")
|
||||||
|
@ -485,6 +490,12 @@ texture_region_size = Vector2i(32, 32)
|
||||||
11:3/0/terrains_peering_bit/left_side = 0
|
11:3/0/terrains_peering_bit/left_side = 0
|
||||||
11:3/0/terrains_peering_bit/top_left_corner = 0
|
11:3/0/terrains_peering_bit/top_left_corner = 0
|
||||||
11:3/0/terrains_peering_bit/top_side = 0
|
11:3/0/terrains_peering_bit/top_side = 0
|
||||||
|
10:1/0 = 0
|
||||||
|
10:1/0/terrain_set = 0
|
||||||
|
10:1/0/terrain = 1
|
||||||
|
10:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
10:1/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
10:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_fhapu")
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
tile_size = Vector2i(32, 32)
|
tile_size = Vector2i(32, 32)
|
||||||
|
@ -493,4 +504,7 @@ physics_layer_0/collision_mask = 0
|
||||||
terrain_set_0/mode = 0
|
terrain_set_0/mode = 0
|
||||||
terrain_set_0/terrain_0/name = "Walls"
|
terrain_set_0/terrain_0/name = "Walls"
|
||||||
terrain_set_0/terrain_0/color = Color(1, 0.301961, 0.329412, 1)
|
terrain_set_0/terrain_0/color = Color(1, 0.301961, 0.329412, 1)
|
||||||
|
terrain_set_0/terrain_1/name = "Ground"
|
||||||
|
terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1)
|
||||||
|
navigation_layer_0/layers = 1
|
||||||
sources/1 = SubResource("TileSetAtlasSource_mgef5")
|
sources/1 = SubResource("TileSetAtlasSource_mgef5")
|
||||||
|
|
109
Assets/UI_Theme.tres
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
[gd_resource type="Theme" load_steps=13 format=3 uid="uid://o3vg845para"]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" uid="uid://dqdeftjkwxe64" path="res://Assets/Fonts/Dogica/dogicapixel.ttf" id="1_43hgj"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rmi2t"]
|
||||||
|
bg_color = Color(0.427451, 0.423529, 0.8, 1)
|
||||||
|
border_width_left = 4
|
||||||
|
border_width_top = 4
|
||||||
|
border_width_right = 4
|
||||||
|
border_width_bottom = 4
|
||||||
|
border_color = Color(0, 0, 0, 1)
|
||||||
|
expand_margin_left = 7.0
|
||||||
|
expand_margin_right = 7.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_47cud"]
|
||||||
|
bg_color = Color(0.427451, 0.423529, 0.8, 1)
|
||||||
|
border_width_left = 4
|
||||||
|
border_width_bottom = 4
|
||||||
|
border_color = Color(0.317647, 0.301961, 0.658824, 1)
|
||||||
|
corner_radius_top_left = 2
|
||||||
|
corner_radius_bottom_right = 2
|
||||||
|
expand_margin_left = 7.0
|
||||||
|
expand_margin_right = 7.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2i81h"]
|
||||||
|
bg_color = Color(0.392157, 0.380392, 0.760784, 1)
|
||||||
|
border_width_left = 4
|
||||||
|
border_width_bottom = 4
|
||||||
|
border_color = Color(0.262745, 0.243137, 0.556863, 1)
|
||||||
|
corner_radius_top_left = 2
|
||||||
|
corner_radius_bottom_right = 2
|
||||||
|
expand_margin_left = 10.0
|
||||||
|
expand_margin_right = 10.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vel2s"]
|
||||||
|
bg_color = Color(0.392157, 0.380392, 0.760784, 1)
|
||||||
|
expand_margin_left = 7.0
|
||||||
|
expand_margin_right = 7.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7k6ml"]
|
||||||
|
bg_color = Color(0.392157, 0.380392, 0.760784, 1)
|
||||||
|
expand_margin_right = 10.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_11k4d"]
|
||||||
|
bg_color = Color(0.392157, 0.380392, 0.760784, 1)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nyi0q"]
|
||||||
|
bg_color = Color(0.392157, 0.380392, 0.760784, 1)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qky0m"]
|
||||||
|
bg_color = Color(0.313726, 0.231373, 0.4, 1)
|
||||||
|
border_width_left = 4
|
||||||
|
border_width_top = 4
|
||||||
|
border_width_right = 4
|
||||||
|
border_width_bottom = 4
|
||||||
|
border_color = Color(0.313726, 0.231373, 0.4, 1)
|
||||||
|
corner_radius_top_left = 2
|
||||||
|
corner_radius_top_right = 2
|
||||||
|
corner_radius_bottom_right = 2
|
||||||
|
corner_radius_bottom_left = 2
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lleuj"]
|
||||||
|
bg_color = Color(0.941176, 0.964706, 0.909804, 1)
|
||||||
|
border_width_left = 5
|
||||||
|
border_width_top = 5
|
||||||
|
border_width_right = 5
|
||||||
|
border_width_bottom = 5
|
||||||
|
border_color = Color(0.65098, 0.741176, 0.509804, 1)
|
||||||
|
corner_radius_top_left = 5
|
||||||
|
corner_radius_top_right = 5
|
||||||
|
corner_radius_bottom_right = 5
|
||||||
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rcukk"]
|
||||||
|
bg_color = Color(0.941176, 0.964706, 0.909804, 1)
|
||||||
|
border_width_left = 3
|
||||||
|
border_width_top = 3
|
||||||
|
border_width_right = 3
|
||||||
|
border_color = Color(0.658824, 0.74902, 0.517647, 1)
|
||||||
|
expand_margin_left = 5.0
|
||||||
|
expand_margin_top = 5.0
|
||||||
|
expand_margin_right = 5.0
|
||||||
|
expand_margin_bottom = 5.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_44exv"]
|
||||||
|
bg_color = Color(0.894118, 0.94902, 0.835294, 1)
|
||||||
|
border_width_left = 4
|
||||||
|
border_width_top = 4
|
||||||
|
border_width_right = 4
|
||||||
|
border_color = Color(0.635294, 0.756863, 0.482353, 1)
|
||||||
|
expand_margin_left = 4.0
|
||||||
|
expand_margin_top = 4.0
|
||||||
|
expand_margin_right = 4.0
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
default_font = ExtResource("1_43hgj")
|
||||||
|
Button/styles/focus = SubResource("StyleBoxFlat_rmi2t")
|
||||||
|
Button/styles/hover = SubResource("StyleBoxFlat_47cud")
|
||||||
|
Button/styles/normal = SubResource("StyleBoxFlat_2i81h")
|
||||||
|
Button/styles/pressed = SubResource("StyleBoxFlat_vel2s")
|
||||||
|
CheckButton/styles/hover_pressed = SubResource("StyleBoxFlat_7k6ml")
|
||||||
|
HSlider/styles/grabber_area = SubResource("StyleBoxFlat_11k4d")
|
||||||
|
HSlider/styles/grabber_area_highlight = SubResource("StyleBoxFlat_nyi0q")
|
||||||
|
HSlider/styles/slider = SubResource("StyleBoxFlat_qky0m")
|
||||||
|
TabContainer/colors/font_selected_color = Color(0.0980392, 0.0980392, 0.0980392, 1)
|
||||||
|
TabContainer/colors/font_unselected_color = Color(0.435294, 0.435294, 0.435294, 1)
|
||||||
|
TabContainer/styles/panel = SubResource("StyleBoxFlat_lleuj")
|
||||||
|
TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_rcukk")
|
||||||
|
TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_44exv")
|
298
Prefabs/Settings Menu.tscn
Normal file
|
@ -0,0 +1,298 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://cbfcolm6mjolp"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Scripts/UI/SettingsMenu.gd" id="1_2rgd2"]
|
||||||
|
[ext_resource type="Script" path="res://Scripts/UI/Remaping/RemapController.gd" id="2_2f8ap"]
|
||||||
|
[ext_resource type="Script" path="res://Scripts/UI/Remaping/RemapButton.gd" id="2_4asaa"]
|
||||||
|
|
||||||
|
[node name="SettingsMenu" type="Node" node_paths=PackedStringArray("display_options_button", "vsync_toggle", "resolutions_options_button", "master_volume_slider", "music_volume_slider", "sfx_volume_slider")]
|
||||||
|
script = ExtResource("1_2rgd2")
|
||||||
|
display_options_button = NodePath("CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/DisplayModeOptions")
|
||||||
|
vsync_toggle = NodePath("CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/VsyncButton")
|
||||||
|
resolutions_options_button = NodePath("CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/ResolutionsOptions")
|
||||||
|
master_volume_slider = NodePath("CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MasterVolumeSlider")
|
||||||
|
music_volume_slider = NodePath("CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MusicVolSlider")
|
||||||
|
sfx_volume_slider = NodePath("CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/SFXVolSlider")
|
||||||
|
|
||||||
|
[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.576471, 0.831373, 0.709804, 1)
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="."]
|
||||||
|
anchors_preset = 10
|
||||||
|
anchor_right = 1.0
|
||||||
|
offset_bottom = 95.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
theme_override_font_sizes/font_size = 35
|
||||||
|
text = "SETTINGS MENU"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||||
|
custom_minimum_size = Vector2(0, 475)
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="SettingsTabs" type="TabContainer" parent="CenterContainer"]
|
||||||
|
custom_minimum_size = Vector2(1050, 475)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_font_sizes/font_size = 29
|
||||||
|
|
||||||
|
[node name="Video" type="VBoxContainer" parent="CenterContainer/SettingsTabs"]
|
||||||
|
layout_mode = 2
|
||||||
|
focus_neighbor_left = NodePath("../Controls")
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/SettingsTabs/Video"]
|
||||||
|
custom_minimum_size = Vector2(0, 425)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 25
|
||||||
|
theme_override_constants/margin_top = 25
|
||||||
|
theme_override_constants/margin_right = 25
|
||||||
|
theme_override_constants/margin_bottom = 25
|
||||||
|
|
||||||
|
[node name="VideoSettings" type="GridContainer" parent="CenterContainer/SettingsTabs/Video/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
columns = 2
|
||||||
|
|
||||||
|
[node name="DisplayModeLabel" type="Label" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
|
||||||
|
custom_minimum_size = Vector2(400, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
text = "Display Mode"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="DisplayModeOptions" type="OptionButton" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 10
|
||||||
|
item_count = 5
|
||||||
|
selected = 0
|
||||||
|
popup/item_0/text = "Full-Screen"
|
||||||
|
popup/item_0/id = 0
|
||||||
|
popup/item_1/text = "Windowed"
|
||||||
|
popup/item_1/id = 1
|
||||||
|
popup/item_2/text = "Maximized"
|
||||||
|
popup/item_2/id = 2
|
||||||
|
popup/item_3/text = "Minimized"
|
||||||
|
popup/item_3/id = 3
|
||||||
|
popup/item_4/text = "Exclusive Full-Screen"
|
||||||
|
popup/item_4/id = 4
|
||||||
|
|
||||||
|
[node name="VSync Label" type="Label" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
|
||||||
|
custom_minimum_size = Vector2(400, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
text = "VSync
|
||||||
|
"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="VsyncButton" type="CheckButton" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 10
|
||||||
|
text = "Vsync"
|
||||||
|
|
||||||
|
[node name="ResolutionsLabel" type="Label" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
|
||||||
|
custom_minimum_size = Vector2(400, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
text = "Resolutions
|
||||||
|
"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="ResolutionsOptions" type="OptionButton" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 10
|
||||||
|
fit_to_longest_item = false
|
||||||
|
|
||||||
|
[node name="Audio" type="VBoxContainer" parent="CenterContainer/SettingsTabs"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/SettingsTabs/Audio"]
|
||||||
|
custom_minimum_size = Vector2(0, 425)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 25
|
||||||
|
theme_override_constants/margin_top = 25
|
||||||
|
theme_override_constants/margin_right = 25
|
||||||
|
theme_override_constants/margin_bottom = 25
|
||||||
|
|
||||||
|
[node name="AudioSettings" type="GridContainer" parent="CenterContainer/SettingsTabs/Audio/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
columns = 2
|
||||||
|
|
||||||
|
[node name="MasterVolLabel" type="Label" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
|
||||||
|
custom_minimum_size = Vector2(400, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
text = "Master Volume
|
||||||
|
"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="MasterVolumeSlider" type="HSlider" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 10
|
||||||
|
min_value = -72.0
|
||||||
|
max_value = 0.0
|
||||||
|
|
||||||
|
[node name="MusicVolLabel" type="Label" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
|
||||||
|
custom_minimum_size = Vector2(400, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
text = "Music Volume
|
||||||
|
"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="MusicVolSlider" type="HSlider" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 10
|
||||||
|
min_value = -72.0
|
||||||
|
max_value = 0.0
|
||||||
|
|
||||||
|
[node name="SFXVolLabel" type="Label" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
|
||||||
|
custom_minimum_size = Vector2(400, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
text = "SFX Volume"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="SFXVolSlider" type="HSlider" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 10
|
||||||
|
min_value = -72.0
|
||||||
|
max_value = 0.0
|
||||||
|
|
||||||
|
[node name="Controls" type="VBoxContainer" parent="CenterContainer/SettingsTabs"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Remap Controller" type="Control" parent="CenterContainer/SettingsTabs/Controls"]
|
||||||
|
layout_mode = 2
|
||||||
|
script = ExtResource("2_2f8ap")
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/SettingsTabs/Controls"]
|
||||||
|
custom_minimum_size = Vector2(0, 425)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 25
|
||||||
|
theme_override_constants/margin_top = 25
|
||||||
|
theme_override_constants/margin_right = 25
|
||||||
|
theme_override_constants/margin_bottom = 25
|
||||||
|
|
||||||
|
[node name="ControlSettings" type="GridContainer" parent="CenterContainer/SettingsTabs/Controls/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
columns = 2
|
||||||
|
|
||||||
|
[node name="MoveUpLabel" type="Label" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
|
||||||
|
custom_minimum_size = Vector2(400, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
text = "Move Up"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="MoveUpRemapButton" type="Button" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" node_paths=PackedStringArray("remap_controller")]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 10
|
||||||
|
toggle_mode = true
|
||||||
|
script = ExtResource("2_4asaa")
|
||||||
|
input_action_name = "move_up"
|
||||||
|
remap_controller = NodePath("../../../Remap Controller")
|
||||||
|
|
||||||
|
[node name="MoveLeftLabel" type="Label" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
|
||||||
|
custom_minimum_size = Vector2(400, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
text = "Move Left"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="MoveLeftRemapButton" type="Button" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" node_paths=PackedStringArray("remap_controller")]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 10
|
||||||
|
toggle_mode = true
|
||||||
|
script = ExtResource("2_4asaa")
|
||||||
|
input_action_name = "move_left"
|
||||||
|
remap_controller = NodePath("../../../Remap Controller")
|
||||||
|
|
||||||
|
[node name="MoveDownLabel" type="Label" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
|
||||||
|
custom_minimum_size = Vector2(400, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
text = "Move Down"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="MoveDownRemapButton" type="Button" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" node_paths=PackedStringArray("remap_controller")]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 10
|
||||||
|
toggle_mode = true
|
||||||
|
script = ExtResource("2_4asaa")
|
||||||
|
input_action_name = "move_down"
|
||||||
|
remap_controller = NodePath("../../../Remap Controller")
|
||||||
|
|
||||||
|
[node name="MoveRightLabel" type="Label" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
|
||||||
|
custom_minimum_size = Vector2(400, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
text = "Move RIght"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="MoveRightRemapButton" type="Button" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" node_paths=PackedStringArray("remap_controller")]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 10
|
||||||
|
toggle_mode = true
|
||||||
|
script = ExtResource("2_4asaa")
|
||||||
|
input_action_name = "move_right"
|
||||||
|
remap_controller = NodePath("../../../Remap Controller")
|
||||||
|
|
||||||
|
[node name="Back Button" type="Button" parent="."]
|
||||||
|
custom_minimum_size = Vector2(500, 40)
|
||||||
|
anchors_preset = 7
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 1.0
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = -250.0
|
||||||
|
offset_top = -80.0
|
||||||
|
offset_right = 250.0
|
||||||
|
offset_bottom = -40.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 0
|
||||||
|
theme_override_font_sizes/font_size = 23
|
||||||
|
text = "Back"
|
||||||
|
|
||||||
|
[connection signal="item_selected" from="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/DisplayModeOptions" to="." method="_on_display_mode_options_item_selected"]
|
||||||
|
[connection signal="toggled" from="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/VsyncButton" to="." method="_on_vsync_button_toggled"]
|
||||||
|
[connection signal="item_selected" from="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/ResolutionsOptions" to="." method="_on_resolutions_options_item_selected"]
|
||||||
|
[connection signal="drag_ended" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MasterVolumeSlider" to="." method="_on_master_volume_slider_drag_ended"]
|
||||||
|
[connection signal="value_changed" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MasterVolumeSlider" to="." method="_on_master_volume_slider_value_changed"]
|
||||||
|
[connection signal="drag_ended" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MusicVolSlider" to="." method="_on_music_vol_slider_drag_ended"]
|
||||||
|
[connection signal="value_changed" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MusicVolSlider" to="." method="_on_music_vol_slider_value_changed"]
|
||||||
|
[connection signal="drag_ended" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/SFXVolSlider" to="." method="_on_sfx_vol_slider_drag_ended"]
|
||||||
|
[connection signal="value_changed" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/SFXVolSlider" to="." method="_on_sfx_vol_slider_value_changed"]
|
||||||
|
[connection signal="pressed" from="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveUpRemapButton" to="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveUpRemapButton" method="_on_pressed"]
|
||||||
|
[connection signal="pressed" from="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveLeftRemapButton" to="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveLeftRemapButton" method="_on_pressed"]
|
||||||
|
[connection signal="pressed" from="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveDownRemapButton" to="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveDownRemapButton" method="_on_pressed"]
|
||||||
|
[connection signal="pressed" from="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveRightRemapButton" to="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveRightRemapButton" method="_on_pressed"]
|
||||||
|
[connection signal="pressed" from="Back Button" to="." method="_on_back_pressed"]
|
|
@ -1,20 +1,37 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://cpl4tllohhyel"]
|
[gd_scene load_steps=5 format=3 uid="uid://cpl4tllohhyel"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/EntitySystem/Bunny.gd" id="1_1kj2b"]
|
[ext_resource type="Script" path="res://Scripts/EntitySystem/Bunny.gd" id="1_1kj2b"]
|
||||||
[ext_resource type="Texture2D" uid="uid://df2fluk0dlqar" path="res://Assets/Sprites/Bunny/bad_bunny_spritesheet.png" id="2_v8p70"]
|
[ext_resource type="Texture2D" uid="uid://df2fluk0dlqar" path="res://Assets/Sprites/Bunny/bad_bunny_spritesheet.png" id="2_v8p70"]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_sedmr"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_sedmr"]
|
||||||
|
|
||||||
[node name="Bunny" type="CharacterBody2D"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_itvjj"]
|
||||||
scale = Vector2(0.5, 0.5)
|
radius = 14.0
|
||||||
|
|
||||||
|
[node name="Bunny" type="CharacterBody2D" node_paths=PackedStringArray("agent")]
|
||||||
collision_layer = 4
|
collision_layer = 4
|
||||||
collision_mask = 11
|
collision_mask = 15
|
||||||
script = ExtResource("1_1kj2b")
|
script = ExtResource("1_1kj2b")
|
||||||
|
agent = NodePath("NavigationAgent")
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(0.5, 0)
|
||||||
texture = ExtResource("2_v8p70")
|
texture = ExtResource("2_v8p70")
|
||||||
hframes = 5
|
hframes = 5
|
||||||
vframes = 4
|
vframes = 4
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
shape = SubResource("CircleShape2D_sedmr")
|
shape = SubResource("CircleShape2D_sedmr")
|
||||||
|
|
||||||
|
[node name="NavigationAgent" type="NavigationAgent2D" parent="."]
|
||||||
|
path_metadata_flags = 0
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
|
collision_layer = 64
|
||||||
|
collision_mask = 4
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
|
shape = SubResource("CircleShape2D_itvjj")
|
||||||
|
|
||||||
|
[connection signal="body_entered" from="Area2D" to="." method="_on_collision"]
|
||||||
|
[connection signal="body_exited" from="Area2D" to="." method="_of_collision"]
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://csxh42o8twxwn"]
|
[gd_scene load_steps=4 format=3 uid="uid://csxh42o8twxwn"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/WeaponSystem/Projectile.gd" id="1_os652"]
|
[ext_resource type="Script" path="res://Scripts/WeaponSystem/Projectile.gd" id="1_os652"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c5jj6s5orw6mi" path="res://Assets/Sprites/crucefix.png" id="2_ibs3t"]
|
[ext_resource type="Texture2D" uid="uid://dlxjdb0tchrps" path="res://Assets/Sprites/crucefix.png" id="2_ibs3t"]
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_ki5cp"]
|
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_ki5cp"]
|
||||||
radius = 8.57143
|
radius = 8.57143
|
||||||
height = 22.8571
|
height = 22.8571
|
||||||
|
|
||||||
[node name="Projectile" type="Area2D"]
|
[node name="Projectile" type="Area2D"]
|
||||||
scale = Vector2(0.5, 0.5)
|
|
||||||
collision_layer = 8
|
collision_layer = 8
|
||||||
collision_mask = 5
|
collision_mask = 5
|
||||||
script = ExtResource("1_os652")
|
script = ExtResource("1_os652")
|
||||||
|
|
173
Scenes/Game.tscn
Normal file
|
@ -0,0 +1,173 @@
|
||||||
|
[gd_scene load_steps=17 format=3 uid="uid://c4btepmue6d7p"]
|
||||||
|
|
||||||
|
[ext_resource type="TileSet" uid="uid://bj7uu2180mie3" path="res://Assets/Tileset.tres" id="1_38041"]
|
||||||
|
[ext_resource type="Script" path="res://Scripts/GameManager.gd" id="1_t708k"]
|
||||||
|
[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="2_ope8r"]
|
||||||
|
[ext_resource type="Script" path="res://Scripts/EntitySystem/BunnyGenerator.gd" id="3_o045y"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cpl4tllohhyel" path="res://Prefabs/bunny.tscn" id="4_hpafd"]
|
||||||
|
[ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="5_d2cbj"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ojlfqxj5bilo" path="res://Assets/Sprites/Jesus/jesus_spritesheet.png" id="6_p526i"]
|
||||||
|
[ext_resource type="Script" path="res://Scripts/WeaponSystem/WeaponController.gd" id="7_mtrts"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://csxh42o8twxwn" path="res://Prefabs/projectile.tscn" id="8_fp1vx"]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_kdxam"]
|
||||||
|
resource_name = "Idle"
|
||||||
|
length = 0.1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_dwpep"]
|
||||||
|
resource_name = "MoveDown"
|
||||||
|
length = 0.8
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = false
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0, 1, 2, 3, 4, 5, 6, 7]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_2jvl5"]
|
||||||
|
resource_name = "MoveLeft"
|
||||||
|
length = 0.8
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [24, 25, 26, 27, 28, 29, 30, 31]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_4ig1u"]
|
||||||
|
resource_name = "MoveRight"
|
||||||
|
length = 0.8
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13, 14, 15]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_pswkh"]
|
||||||
|
resource_name = "MoveUp"
|
||||||
|
length = 0.8
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [16, 17, 18, 19, 20, 21, 22, 23]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_o3hln"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_bi1h3"]
|
||||||
|
_data = {
|
||||||
|
"Idle": SubResource("Animation_kdxam"),
|
||||||
|
"MoveDown": SubResource("Animation_dwpep"),
|
||||||
|
"MoveLeft": SubResource("Animation_2jvl5"),
|
||||||
|
"MoveRight": SubResource("Animation_4ig1u"),
|
||||||
|
"MoveUp": SubResource("Animation_pswkh"),
|
||||||
|
"RESET": SubResource("Animation_o3hln")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="GameManager" type="Node2D" node_paths=PackedStringArray("map_generator", "bunny_generator")]
|
||||||
|
script = ExtResource("1_t708k")
|
||||||
|
map_generator = NodePath("Map Generator")
|
||||||
|
bunny_generator = NodePath("Bunny Generator")
|
||||||
|
|
||||||
|
[node name="Map Generator" type="TileMap" parent="."]
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
tile_set = ExtResource("1_38041")
|
||||||
|
cell_quadrant_size = 32
|
||||||
|
format = 2
|
||||||
|
script = ExtResource("2_ope8r")
|
||||||
|
start_area_corner_size = 3
|
||||||
|
|
||||||
|
[node name="Bunny Generator" type="Node2D" parent="." node_paths=PackedStringArray("player")]
|
||||||
|
script = ExtResource("3_o045y")
|
||||||
|
bunny_prefab = ExtResource("4_hpafd")
|
||||||
|
player = NodePath("../Player")
|
||||||
|
player_save_distance = 320.0
|
||||||
|
|
||||||
|
[node name="Player" type="CharacterBody2D" parent="." node_paths=PackedStringArray("animation_player")]
|
||||||
|
position = Vector2(1440, 810)
|
||||||
|
collision_layer = 0
|
||||||
|
script = ExtResource("5_d2cbj")
|
||||||
|
animation_player = NodePath("Player Animator")
|
||||||
|
|
||||||
|
[node name="Player Sprite" type="Sprite2D" parent="Player"]
|
||||||
|
position = Vector2(0, -20)
|
||||||
|
texture = ExtResource("6_p526i")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 4
|
||||||
|
|
||||||
|
[node name="Player Collider" type="CollisionPolygon2D" parent="Player"]
|
||||||
|
position = Vector2(2, -24)
|
||||||
|
polygon = PackedVector2Array(12, 32, -16, 32, -16, -24, 12, -24)
|
||||||
|
|
||||||
|
[node name="Player Camera" type="Camera2D" parent="Player"]
|
||||||
|
position = Vector2(0, -25)
|
||||||
|
zoom = Vector2(2, 2)
|
||||||
|
position_smoothing_enabled = true
|
||||||
|
drag_horizontal_enabled = true
|
||||||
|
drag_vertical_enabled = true
|
||||||
|
editor_draw_drag_margin = true
|
||||||
|
|
||||||
|
[node name="Player Animator" type="AnimationPlayer" parent="Player"]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_bi1h3")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="WeaponController" type="Node2D" parent="Player"]
|
||||||
|
position = Vector2(0, -16)
|
||||||
|
script = ExtResource("7_mtrts")
|
||||||
|
projectile_prefab = ExtResource("8_fp1vx")
|
294
Scenes/Main Menu.tscn
Normal file
|
@ -0,0 +1,294 @@
|
||||||
|
[gd_scene load_steps=14 format=3 uid="uid://4fysk8vaw3e1"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Scripts/UI/MainMenuManager.gd" id="1_qepq0"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://tjxkew3m4v8m" path="res://Assets/Sprites/Easter Egg/Shadow.png" id="2_8o6th"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c4btepmue6d7p" path="res://Scenes/Game.tscn" id="2_28004"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://daat37cyg0go5" path="res://Assets/Sprites/Easter Egg/Egg 3.png" id="3_1e3fe"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cbfcolm6mjolp" path="res://Prefabs/Settings Menu.tscn" id="3_r3r61"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dhvvw4yckl8x7" path="res://Assets/Sprites/Props/Cake.png" id="5_7ull8"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c3yg6u8yncau3" path="res://Assets/Sprites/Easter Egg/Egg 2.png" id="6_45o7d"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cp84ssaqs3pmp" path="res://Assets/Sprites/UI Elements/Jesus.png" id="6_wnx18"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dkotcqflp3e32" path="res://Assets/Sprites/Easter Egg/Egg 1.png" id="7_285vd"]
|
||||||
|
[ext_resource type="Theme" uid="uid://o3vg845para" path="res://Assets/UI_Theme.tres" id="8_lr748"]
|
||||||
|
[ext_resource type="Script" path="res://Scripts/UI/MenuButton.gd" id="9_2cu5l"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://6snf183fgfo5" path="res://Assets/Sprites/UI Elements/Cross.png" id="12_dhfc0"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://c6nf5s6xy2uii" path="res://Assets/Temp Music/omw-to-beat-the-big-bad.wav" id="13_3j724"]
|
||||||
|
|
||||||
|
[node name="MainMenu" type="Node" node_paths=PackedStringArray("default_focus")]
|
||||||
|
script = ExtResource("1_qepq0")
|
||||||
|
game_scene = ExtResource("2_28004")
|
||||||
|
settings_scene = ExtResource("3_r3r61")
|
||||||
|
default_focus = NodePath("MainVBox/ButtonsVbox/PlayButton")
|
||||||
|
|
||||||
|
[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.576471, 0.831373, 0.709804, 1)
|
||||||
|
|
||||||
|
[node name="Decorations" type="Control" parent="."]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Left Decor" type="CenterContainer" parent="Decorations"]
|
||||||
|
custom_minimum_size = Vector2(576, 0)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 9
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="Decorations/Left Decor"]
|
||||||
|
position = Vector2(226.563, 338.875)
|
||||||
|
scale = Vector2(22.7773, 15.6953)
|
||||||
|
texture = ExtResource("2_8o6th")
|
||||||
|
|
||||||
|
[node name="Egg3" type="Sprite2D" parent="Decorations/Left Decor"]
|
||||||
|
position = Vector2(134, 477)
|
||||||
|
scale = Vector2(4.6875, 4.625)
|
||||||
|
texture = ExtResource("3_1e3fe")
|
||||||
|
|
||||||
|
[node name="Jesus" type="Sprite2D" parent="Decorations/Left Decor"]
|
||||||
|
position = Vector2(220, 335)
|
||||||
|
scale = Vector2(7.0431, 6.97321)
|
||||||
|
texture = ExtResource("6_wnx18")
|
||||||
|
|
||||||
|
[node name="Cake" type="Sprite2D" parent="Decorations/Left Decor"]
|
||||||
|
position = Vector2(310, 491)
|
||||||
|
scale = Vector2(2.59375, 2.32031)
|
||||||
|
texture = ExtResource("5_7ull8")
|
||||||
|
|
||||||
|
[node name="Right Decor" type="CenterContainer" parent="Decorations"]
|
||||||
|
custom_minimum_size = Vector2(576, 0)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 11
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 0
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Shadow2" type="Sprite2D" parent="Decorations/Right Decor"]
|
||||||
|
position = Vector2(351, 403)
|
||||||
|
scale = Vector2(19.0938, 11.8125)
|
||||||
|
texture = ExtResource("2_8o6th")
|
||||||
|
|
||||||
|
[node name="Egg2" type="Sprite2D" parent="Decorations/Right Decor"]
|
||||||
|
position = Vector2(294, 487)
|
||||||
|
rotation = -1.5708
|
||||||
|
scale = Vector2(4.89203, 5.21732)
|
||||||
|
texture = ExtResource("6_45o7d")
|
||||||
|
|
||||||
|
[node name="Egg1" type="Sprite2D" parent="Decorations/Right Decor"]
|
||||||
|
position = Vector2(420.75, 471.25)
|
||||||
|
scale = Vector2(4.89062, 4.95313)
|
||||||
|
texture = ExtResource("7_285vd")
|
||||||
|
|
||||||
|
[node name="GoodBunny" type="Sprite2D" parent="Decorations/Right Decor"]
|
||||||
|
position = Vector2(331, 458.5)
|
||||||
|
scale = Vector2(7.14286, 7.02941)
|
||||||
|
hframes = 6
|
||||||
|
|
||||||
|
[node name="MainVBox" type="VBoxContainer" parent="."]
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme = ExtResource("8_lr748")
|
||||||
|
|
||||||
|
[node name="CenterContainer" type="CenterContainer" parent="MainVBox"]
|
||||||
|
custom_minimum_size = Vector2(0, 150)
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="MainVBox/CenterContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_font_sizes/font_size = 50
|
||||||
|
text = "HOPPY EASTER GAME THING"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="ButtonsVbox" type="VBoxContainer" parent="MainVBox"]
|
||||||
|
custom_minimum_size = Vector2(0, 495)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 10
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="PlayButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")]
|
||||||
|
custom_minimum_size = Vector2(0, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
focus_neighbor_left = NodePath("../QuitButton")
|
||||||
|
focus_neighbor_top = NodePath("../QuitButton")
|
||||||
|
focus_neighbor_right = NodePath("../SettingsButton")
|
||||||
|
focus_neighbor_bottom = NodePath("../SettingsButton")
|
||||||
|
focus_next = NodePath("../SettingsButton")
|
||||||
|
focus_previous = NodePath("../QuitButton")
|
||||||
|
mouse_default_cursor_shape = 2
|
||||||
|
script = ExtResource("9_2cu5l")
|
||||||
|
text = "Play"
|
||||||
|
pointer_margin_from_center = 80
|
||||||
|
leftPointer = NodePath("LeftPointer")
|
||||||
|
rightPointer = NodePath("RightPointer")
|
||||||
|
textBox = NodePath("RichTextLabel")
|
||||||
|
|
||||||
|
[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/PlayButton"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
theme_override_font_sizes/normal_font_size = 30
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center]Play[/center]"
|
||||||
|
|
||||||
|
[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/PlayButton"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(502, 12)
|
||||||
|
rotation = 1.5708
|
||||||
|
texture = ExtResource("12_dhfc0")
|
||||||
|
|
||||||
|
[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/PlayButton"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(650, 12)
|
||||||
|
rotation = -1.5708
|
||||||
|
texture = ExtResource("12_dhfc0")
|
||||||
|
|
||||||
|
[node name="SettingsButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")]
|
||||||
|
custom_minimum_size = Vector2(0, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
focus_neighbor_left = NodePath("../PlayButton")
|
||||||
|
focus_neighbor_top = NodePath("../PlayButton")
|
||||||
|
focus_neighbor_right = NodePath("../AboutButton")
|
||||||
|
focus_neighbor_bottom = NodePath("../AboutButton")
|
||||||
|
focus_next = NodePath("../AboutButton")
|
||||||
|
focus_previous = NodePath("../PlayButton")
|
||||||
|
mouse_default_cursor_shape = 2
|
||||||
|
script = ExtResource("9_2cu5l")
|
||||||
|
text = "Settings"
|
||||||
|
pointer_margin_from_center = 130
|
||||||
|
leftPointer = NodePath("LeftPointer")
|
||||||
|
rightPointer = NodePath("RightPointer")
|
||||||
|
textBox = NodePath("RichTextLabel")
|
||||||
|
|
||||||
|
[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/SettingsButton"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
theme_override_font_sizes/normal_font_size = 30
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center]Settings[/center]"
|
||||||
|
|
||||||
|
[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/SettingsButton"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(502, 12)
|
||||||
|
rotation = 1.5708
|
||||||
|
texture = ExtResource("12_dhfc0")
|
||||||
|
|
||||||
|
[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/SettingsButton"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(650, 12)
|
||||||
|
rotation = -1.5708
|
||||||
|
texture = ExtResource("12_dhfc0")
|
||||||
|
|
||||||
|
[node name="AboutButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")]
|
||||||
|
custom_minimum_size = Vector2(0, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
focus_neighbor_left = NodePath("../SettingsButton")
|
||||||
|
focus_neighbor_top = NodePath("../SettingsButton")
|
||||||
|
focus_neighbor_right = NodePath("../QuitButton")
|
||||||
|
focus_neighbor_bottom = NodePath("../QuitButton")
|
||||||
|
focus_next = NodePath("../QuitButton")
|
||||||
|
focus_previous = NodePath("../SettingsButton")
|
||||||
|
mouse_default_cursor_shape = 2
|
||||||
|
script = ExtResource("9_2cu5l")
|
||||||
|
text = "About"
|
||||||
|
pointer_margin_from_center = 95
|
||||||
|
leftPointer = NodePath("LeftPointer")
|
||||||
|
rightPointer = NodePath("RightPointer")
|
||||||
|
textBox = NodePath("RichTextLabel")
|
||||||
|
|
||||||
|
[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/AboutButton"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
theme_override_font_sizes/normal_font_size = 30
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center]About[/center]"
|
||||||
|
|
||||||
|
[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/AboutButton"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(502, 12)
|
||||||
|
rotation = 1.5708
|
||||||
|
texture = ExtResource("12_dhfc0")
|
||||||
|
|
||||||
|
[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/AboutButton"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(650, 12)
|
||||||
|
rotation = -1.5708
|
||||||
|
texture = ExtResource("12_dhfc0")
|
||||||
|
|
||||||
|
[node name="QuitButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")]
|
||||||
|
custom_minimum_size = Vector2(0, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
focus_neighbor_left = NodePath("../AboutButton")
|
||||||
|
focus_neighbor_top = NodePath("../AboutButton")
|
||||||
|
focus_neighbor_right = NodePath("../PlayButton")
|
||||||
|
focus_neighbor_bottom = NodePath("../PlayButton")
|
||||||
|
focus_next = NodePath("../PlayButton")
|
||||||
|
focus_previous = NodePath("../AboutButton")
|
||||||
|
mouse_default_cursor_shape = 2
|
||||||
|
script = ExtResource("9_2cu5l")
|
||||||
|
text = "Quit"
|
||||||
|
pointer_margin_from_center = 80
|
||||||
|
leftPointer = NodePath("LeftPointer")
|
||||||
|
rightPointer = NodePath("RightPointer")
|
||||||
|
textBox = NodePath("RichTextLabel")
|
||||||
|
|
||||||
|
[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/QuitButton"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
theme_override_font_sizes/normal_font_size = 30
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center]Quit[/center]"
|
||||||
|
|
||||||
|
[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/QuitButton"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(502, 12)
|
||||||
|
rotation = 1.5708
|
||||||
|
texture = ExtResource("12_dhfc0")
|
||||||
|
|
||||||
|
[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/QuitButton"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(650, 12)
|
||||||
|
rotation = -1.5708
|
||||||
|
texture = ExtResource("12_dhfc0")
|
||||||
|
|
||||||
|
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("13_3j724")
|
||||||
|
autoplay = true
|
||||||
|
bus = &"Music"
|
||||||
|
|
||||||
|
[connection signal="pressed" from="MainVBox/ButtonsVbox/PlayButton" to="." method="_on_play_button_pressed"]
|
||||||
|
[connection signal="pressed" from="MainVBox/ButtonsVbox/SettingsButton" to="." method="_on_settings_button_pressed"]
|
||||||
|
[connection signal="pressed" from="MainVBox/ButtonsVbox/AboutButton" to="." method="_on_about_button_pressed"]
|
||||||
|
[connection signal="pressed" from="MainVBox/ButtonsVbox/QuitButton" to="." method="_on_quit_button_pressed"]
|
|
@ -1,11 +1,11 @@
|
||||||
[gd_scene load_steps=16 format=3 uid="uid://cd45icxf4gxpp"]
|
[gd_scene load_steps=16 format=3 uid="uid://cugui0mjc6cfe"]
|
||||||
|
|
||||||
[ext_resource type="TileSet" uid="uid://bj7uu2180mie3" path="res://Assets/Tileset.tres" id="1_s4utw"]
|
[ext_resource type="TileSet" uid="uid://bj7uu2180mie3" path="res://Assets/Tileset.tres" id="1_s4utw"]
|
||||||
[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="2_yhpwh"]
|
[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="2_yhpwh"]
|
||||||
[ext_resource type="Script" path="res://Scripts/EntitySystem/BunnyGenerator.gd" id="3_dvklj"]
|
[ext_resource type="Script" path="res://Scripts/EntitySystem/BunnyGenerator.gd" id="3_dvklj"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cpl4tllohhyel" path="res://Prefabs/bunny.tscn" id="4_0fyd5"]
|
[ext_resource type="PackedScene" uid="uid://cpl4tllohhyel" path="res://Prefabs/bunny.tscn" id="4_0fyd5"]
|
||||||
[ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="5_uv7bh"]
|
[ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="5_uv7bh"]
|
||||||
[ext_resource type="Texture2D" uid="uid://db70wcy5ua3jd" path="res://Assets/Sprites/Jesus/jesus_spritesheet.png" id="6_es2l8"]
|
[ext_resource type="Texture2D" uid="uid://ojlfqxj5bilo" path="res://Assets/Sprites/Jesus/jesus_spritesheet.png" id="6_es2l8"]
|
||||||
[ext_resource type="Script" path="res://Scripts/WeaponSystem/WeaponController.gd" id="7_8kdie"]
|
[ext_resource type="Script" path="res://Scripts/WeaponSystem/WeaponController.gd" id="7_8kdie"]
|
||||||
[ext_resource type="PackedScene" uid="uid://csxh42o8twxwn" path="res://Prefabs/projectile.tscn" id="8_wx0kk"]
|
[ext_resource type="PackedScene" uid="uid://csxh42o8twxwn" path="res://Prefabs/projectile.tscn" id="8_wx0kk"]
|
||||||
|
|
||||||
|
@ -121,18 +121,20 @@ _data = {
|
||||||
[node name="Player Movement" type="Node2D"]
|
[node name="Player Movement" type="Node2D"]
|
||||||
|
|
||||||
[node name="Map Generator" type="TileMap" parent="."]
|
[node name="Map Generator" type="TileMap" parent="."]
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
tile_set = ExtResource("1_s4utw")
|
tile_set = ExtResource("1_s4utw")
|
||||||
cell_quadrant_size = 32
|
cell_quadrant_size = 32
|
||||||
format = 2
|
format = 2
|
||||||
script = ExtResource("2_yhpwh")
|
script = ExtResource("2_yhpwh")
|
||||||
start_area_corner_size = 3
|
start_area_corner_size = 3
|
||||||
|
|
||||||
[node name="Bunny Generator" type="Node" parent="."]
|
[node name="Bunny Generator" type="Node" parent="." node_paths=PackedStringArray("player")]
|
||||||
script = ExtResource("3_dvklj")
|
script = ExtResource("3_dvklj")
|
||||||
bunny_prefab = ExtResource("4_0fyd5")
|
bunny_prefab = ExtResource("4_0fyd5")
|
||||||
|
player = NodePath("../Player")
|
||||||
|
|
||||||
[node name="Player" type="CharacterBody2D" parent="." node_paths=PackedStringArray("animation_player")]
|
[node name="Player" type="CharacterBody2D" parent="." node_paths=PackedStringArray("animation_player")]
|
||||||
position = Vector2(960, 512)
|
position = Vector2(1440, 810)
|
||||||
collision_layer = 0
|
collision_layer = 0
|
||||||
script = ExtResource("5_uv7bh")
|
script = ExtResource("5_uv7bh")
|
||||||
speed = 60
|
speed = 60
|
||||||
|
@ -145,10 +147,12 @@ hframes = 8
|
||||||
vframes = 4
|
vframes = 4
|
||||||
|
|
||||||
[node name="Player Collider" type="CollisionPolygon2D" parent="Player"]
|
[node name="Player Collider" type="CollisionPolygon2D" parent="Player"]
|
||||||
|
position = Vector2(2, -24)
|
||||||
polygon = PackedVector2Array(12, 32, -16, 32, -16, -24, 12, -24)
|
polygon = PackedVector2Array(12, 32, -16, 32, -16, -24, 12, -24)
|
||||||
|
|
||||||
[node name="Player Camera" type="Camera2D" parent="Player"]
|
[node name="Player Camera" type="Camera2D" parent="Player"]
|
||||||
zoom = Vector2(5, 5)
|
position = Vector2(-1, -25)
|
||||||
|
zoom = Vector2(3, 3)
|
||||||
position_smoothing_enabled = true
|
position_smoothing_enabled = true
|
||||||
drag_horizontal_enabled = true
|
drag_horizontal_enabled = true
|
||||||
drag_vertical_enabled = true
|
drag_vertical_enabled = true
|
||||||
|
|
|
@ -1,19 +1,56 @@
|
||||||
extends CharacterBody2D
|
extends CharacterBody2D
|
||||||
class_name Bunny
|
class_name Bunny
|
||||||
|
|
||||||
@export var health : int
|
@export var min_distance_to_player := 80.0
|
||||||
|
@export var max_distance_to_player := 800.0
|
||||||
|
@export var agent : NavigationAgent2D
|
||||||
|
@export var speed := 200.0
|
||||||
|
|
||||||
|
var health : int
|
||||||
var team : int
|
var team : int
|
||||||
|
var player : Node2D
|
||||||
|
|
||||||
var on_death_callbacks : Array
|
var on_death_callbacks : Array
|
||||||
|
|
||||||
func damage(damage : int):
|
var dir : Vector2
|
||||||
health -= damage
|
var spread_time : float
|
||||||
|
var current_time : float
|
||||||
|
var collisions : int
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
seed(int(str(self)))
|
||||||
|
spread_time = randf() * 3
|
||||||
|
current_time = spread_time
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
current_time -= delta
|
||||||
|
if player != null and self.global_position.distance_to(player.global_position) < max_distance_to_player and collisions <= 3:
|
||||||
|
if current_time <= 0:
|
||||||
|
current_time = spread_time
|
||||||
|
agent.target_position = player.global_position
|
||||||
|
if min_distance_to_player and agent.is_target_reachable():
|
||||||
|
var next_location = agent.get_next_path_position() + Vector2(randf() - 0.5 * 10, randf() - 0.5 * 10)
|
||||||
|
dir = self.global_position.direction_to(next_location).normalized()
|
||||||
|
if self.global_position.distance_to(player.global_position) > min_distance_to_player:
|
||||||
|
self.velocity = dir * delta * 60 * speed
|
||||||
|
move_and_slide()
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_collision(body):
|
||||||
|
if body != self: collisions += 1
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _of_collision(body):
|
||||||
|
if body != self: collisions-= 1
|
||||||
|
pass
|
||||||
|
|
||||||
|
func damage(damage_amount : int):
|
||||||
|
health -= damage_amount
|
||||||
if(health <= 0): on_death()
|
if(health <= 0): on_death()
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func heal(health : int):
|
func heal(health_amount : int):
|
||||||
self.health += health
|
self.health += health_amount
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func on_death():
|
func on_death():
|
||||||
|
@ -24,3 +61,9 @@ func on_death():
|
||||||
func sub_on_death(callback : Callable):
|
func sub_on_death(callback : Callable):
|
||||||
on_death_callbacks.push_front(callback)
|
on_death_callbacks.push_front(callback)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,32 @@
|
||||||
extends Node
|
extends Node
|
||||||
|
class_name BunnyGenerator
|
||||||
|
|
||||||
@export var bunny_prefab : Resource
|
@export var bunny_prefab : Resource
|
||||||
|
@export var player : CharacterBody2D
|
||||||
|
@export var player_save_distance : float = 32.0
|
||||||
@onready var BunnyPrefab : PackedScene = load(bunny_prefab.resource_path)
|
@onready var BunnyPrefab : PackedScene = load(bunny_prefab.resource_path)
|
||||||
|
|
||||||
func spawn_bunny(x : float, y : float, team : int, health : int) -> Bunny:
|
func spawn_bunny(pos : Vector2, team : int, health : int) -> Bunny:
|
||||||
var bunny = BunnyPrefab.instantiate()
|
var bunny = BunnyPrefab.instantiate()
|
||||||
self.add_child(bunny)
|
self.add_child(bunny)
|
||||||
bunny.global_position = Vector2(x,y)
|
bunny.global_position = pos
|
||||||
bunny.health = health
|
bunny.health = health
|
||||||
bunny.team = team
|
bunny.team = team
|
||||||
|
bunny.player = player
|
||||||
return bunny
|
return bunny
|
||||||
|
|
||||||
|
func spawn_wave(free_tiles : Array, team: int, amount : int, health : int) -> Array:
|
||||||
|
var bunnys = []
|
||||||
|
|
||||||
func _ready():
|
# Make Sure that no possitions to near to the player are insdie of the list
|
||||||
var bunny = spawn_bunny(960, 512, TEAM.EVIL, 3)
|
free_tiles = free_tiles.filter(func(val): return val.distance_to(player.global_position) > player_save_distance)
|
||||||
bunny.sub_on_death(func(bunny): bunny.queue_free())
|
# Make sure amount isnt bigger then available positions
|
||||||
|
if free_tiles.size() < amount: amount = free_tiles.size()
|
||||||
|
|
||||||
|
# Spawn at random positions of the list
|
||||||
|
for i in amount:
|
||||||
|
var pos = free_tiles.pick_random()
|
||||||
|
free_tiles.erase(pos)
|
||||||
|
var bunny = spawn_bunny(pos, team, health)
|
||||||
|
bunnys.push_back(bunny)
|
||||||
|
return bunnys
|
||||||
|
|
22
Scripts/GameManager.gd
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
@export var map_generator : Node
|
||||||
|
@export var bunny_generator : Node
|
||||||
|
|
||||||
|
var bunnys = []
|
||||||
|
var gen_data : Dictionary
|
||||||
|
var wave := 0
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
gen_data = map_generator.generate() as Dictionary
|
||||||
|
print("time for generation: " + str(gen_data.time))
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _process(_delta):
|
||||||
|
if(bunnys.size() == 0):
|
||||||
|
wave += 1
|
||||||
|
bunnys = bunny_generator.spawn_wave(gen_data.free_tiles.duplicate(), TEAM.EVIL, wave * 500, 3)
|
||||||
|
for bunny in bunnys:
|
||||||
|
bunny.sub_on_death(func(bunny): bunnys.erase(bunny))
|
||||||
|
bunny.sub_on_death(func(bunny): bunny.queue_free())
|
||||||
|
pass
|
|
@ -15,14 +15,7 @@ extends TileMap
|
||||||
|
|
||||||
var tile_array : Array
|
var tile_array : Array
|
||||||
|
|
||||||
func _ready():
|
func generate() -> Dictionary:
|
||||||
var time = generate()
|
|
||||||
print("time for generation: " + str(time))
|
|
||||||
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
func generate() -> float:
|
|
||||||
var start_time = Time.get_unix_time_from_system()
|
var start_time = Time.get_unix_time_from_system()
|
||||||
|
|
||||||
randomize()
|
randomize()
|
||||||
|
@ -39,7 +32,15 @@ func generate() -> float:
|
||||||
set_borders_solid()
|
set_borders_solid()
|
||||||
|
|
||||||
tile_array_to_terrain()
|
tile_array_to_terrain()
|
||||||
return Time.get_unix_time_from_system() - start_time
|
|
||||||
|
return {"time": Time.get_unix_time_from_system() - start_time, "free_tiles": get_free_tiles()}
|
||||||
|
|
||||||
|
func get_free_tiles() -> Array:
|
||||||
|
var free_tiles = []
|
||||||
|
for x in width:
|
||||||
|
for y in height:
|
||||||
|
if get_tile_non_solid(x, y): free_tiles.push_back(Vector2(x, y) * self.cell_quadrant_size * self.scale + (Vector2(self.cell_quadrant_size, self.cell_quadrant_size) / 2))
|
||||||
|
return free_tiles
|
||||||
|
|
||||||
func setup_tile_data_array():
|
func setup_tile_data_array():
|
||||||
tile_array.clear()
|
tile_array.clear()
|
||||||
|
@ -68,7 +69,8 @@ func set_borders_solid():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func prepare_player_start_area():
|
func prepare_player_start_area():
|
||||||
var center = Vector2i(width/2, height/2)
|
@warning_ignore("integer_division")
|
||||||
|
var center = Vector2i(width / 2, height / 2)
|
||||||
for x in range(center.x - start_area_size, center.x + start_area_size):
|
for x in range(center.x - start_area_size, center.x + start_area_size):
|
||||||
|
|
||||||
# Getting a P factor for the corner "radius" Decission
|
# Getting a P factor for the corner "radius" Decission
|
||||||
|
@ -265,5 +267,5 @@ func set_terrain_tile_solid(x : int, y : int):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func set_terrain_tile_non_solid(x : int, y : int):
|
func set_terrain_tile_non_solid(x : int, y : int):
|
||||||
self.set_cell(0, Vector2i(x,y), -1)
|
self.set_cells_terrain_connect(0, [Vector2i(x,y)], 0, 1, false)
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
extends CharacterBody2D
|
extends CharacterBody2D
|
||||||
|
|
||||||
@export var speed = 20
|
@export var speed = 200
|
||||||
@export_range(0, 1) var damping_factor = 0.6
|
@export_range(0, 1) var damping_factor = 0.6
|
||||||
@export var animation_player : AnimationPlayer
|
@export var animation_player : AnimationPlayer
|
||||||
|
|
||||||
|
|
31
Scripts/SaveSystem/GameDataSaver.gd
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
const SAVE_FILE : String = "user://SAVEFILE.save"
|
||||||
|
var game_data = {}
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
load_data()
|
||||||
|
|
||||||
|
func load_data():
|
||||||
|
var file = FileAccess.open(SAVE_FILE, FileAccess.READ)
|
||||||
|
if file == null:
|
||||||
|
game_data = {
|
||||||
|
"display_mode": 0,
|
||||||
|
"vsync_on": false,
|
||||||
|
"current_resolution_index": 0,
|
||||||
|
"master_volume": 0,
|
||||||
|
"music_volume": 0,
|
||||||
|
"sfx_volume": 0,
|
||||||
|
}
|
||||||
|
save_data()
|
||||||
|
else:
|
||||||
|
game_data = file.get_var()
|
||||||
|
file.close()
|
||||||
|
pass
|
||||||
|
|
||||||
|
func save_data():
|
||||||
|
var file = FileAccess.open(SAVE_FILE, FileAccess.WRITE)
|
||||||
|
file.store_var(game_data)
|
||||||
|
file.flush()
|
||||||
|
file.close()
|
||||||
|
pass
|
61
Scripts/SaveSystem/GlobalSettings.gd
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
@export var master_bus_index : int = 0
|
||||||
|
@export var music_bus_index : int = 1
|
||||||
|
@export var sfx_bus_index : int = 2
|
||||||
|
|
||||||
|
const resolutions_dictionary : Dictionary = {
|
||||||
|
"800x600" : Vector2(800, 600),
|
||||||
|
"1024x546" : Vector2(1024, 546),
|
||||||
|
"1152x648" : Vector2(1152, 648),
|
||||||
|
"1600x900" : Vector2(1600, 900),
|
||||||
|
"1366x768" : Vector2(1366, 768),
|
||||||
|
"1920x1080" : Vector2(1920, 1080),
|
||||||
|
"1920x1200" : Vector2(1920, 1200),
|
||||||
|
"2560x1440" : Vector2(2560, 1440),
|
||||||
|
"3840x2160" : Vector2(3840, 2160),
|
||||||
|
}
|
||||||
|
|
||||||
|
# Video Global Settings
|
||||||
|
func set_display_mode(value: int) -> void:
|
||||||
|
Save.game_data.display_mode = value
|
||||||
|
Save.save_data()
|
||||||
|
if value == 0: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
||||||
|
elif value == 1: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
||||||
|
elif value == 2: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MAXIMIZED)
|
||||||
|
elif value == 3: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MINIMIZED)
|
||||||
|
elif value == 4: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN)
|
||||||
|
else: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func toggle_vsync(value : bool) -> void:
|
||||||
|
Save.game_data.vsync_on = value
|
||||||
|
Save.save_data()
|
||||||
|
if value: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED)
|
||||||
|
else: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func set_resolution(index):
|
||||||
|
Save.game_data.current_resolution_index = index
|
||||||
|
Save.save_data()
|
||||||
|
for i in resolutions_dictionary.keys().size():
|
||||||
|
if i == index: DisplayServer.window_set_size(resolutions_dictionary.values()[i])
|
||||||
|
|
||||||
|
# Audio Global Settings
|
||||||
|
func update_master_volume(vol : int) -> void:
|
||||||
|
Save.game_data.master_volume = vol
|
||||||
|
Save.save_data()
|
||||||
|
AudioServer.set_bus_volume_db(master_bus_index, vol)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func update_music_volume(vol : int) -> void:
|
||||||
|
Save.game_data.music_volume = vol
|
||||||
|
Save.save_data()
|
||||||
|
AudioServer.set_bus_volume_db(music_bus_index, vol)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func update_sfx_volume(vol : int) -> void:
|
||||||
|
Save.game_data.sfx_volume = vol
|
||||||
|
Save.save_data()
|
||||||
|
AudioServer.set_bus_volume_db(sfx_bus_index, vol)
|
||||||
|
pass
|
34
Scripts/UI/MainMenuManager.gd
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
@export var game_scene : Resource
|
||||||
|
@export var settings_scene : Resource
|
||||||
|
@export var default_focus : TextureButton
|
||||||
|
|
||||||
|
# Engine Callbackss
|
||||||
|
func _ready():
|
||||||
|
GlobalSettings.set_display_mode(Save.game_data.display_mode)
|
||||||
|
GlobalSettings.toggle_vsync(Save.game_data.vsync_on)
|
||||||
|
GlobalSettings.set_resolution(Save.game_data.current_resolution_index)
|
||||||
|
GlobalSettings.update_master_volume(Save.game_data.master_volume)
|
||||||
|
GlobalSettings.update_music_volume(Save.game_data.music_volume)
|
||||||
|
GlobalSettings.update_sfx_volume(Save.game_data.sfx_volume)
|
||||||
|
default_focus.grab_focus()
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_play_button_pressed():
|
||||||
|
load(game_scene.resource_path)
|
||||||
|
get_tree().change_scene_to_file(game_scene.resource_path)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_settings_button_pressed():
|
||||||
|
var settings_scene_instance = load(settings_scene.resource_path).instantiate()
|
||||||
|
get_tree().current_scene.add_child(settings_scene_instance)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_about_button_pressed():
|
||||||
|
OS.shell_open("https://git.euph.dev/GameDev/HoppyEaster")
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_quit_button_pressed():
|
||||||
|
get_tree().quit()
|
||||||
|
pass
|
38
Scripts/UI/MenuButton.gd
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
extends TextureButton
|
||||||
|
|
||||||
|
@export var text : String = "Sample Text"
|
||||||
|
@export var pointer_margin_from_center : int = 100
|
||||||
|
@export var leftPointer : Sprite2D
|
||||||
|
@export var rightPointer : Sprite2D
|
||||||
|
@export var textBox : RichTextLabel
|
||||||
|
|
||||||
|
# Engine Callbacks
|
||||||
|
func _ready():
|
||||||
|
textBox.parse_bbcode("[center] %s [/center]" % [text])
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _process(_delta):
|
||||||
|
handle_hover_and_focus()
|
||||||
|
handle_x_position()
|
||||||
|
|
||||||
|
func handle_hover_and_focus() -> void:
|
||||||
|
if has_focus():
|
||||||
|
leftPointer.visible = true
|
||||||
|
rightPointer.visible = true
|
||||||
|
elif is_hovered():
|
||||||
|
leftPointer.visible = true
|
||||||
|
leftPointer.modulate.a = 0.5
|
||||||
|
rightPointer.visible = true
|
||||||
|
rightPointer.modulate.a = 0.5
|
||||||
|
else:
|
||||||
|
leftPointer.visible = false
|
||||||
|
leftPointer.modulate.a = 1
|
||||||
|
rightPointer.visible = false
|
||||||
|
rightPointer.modulate.a = 1
|
||||||
|
pass
|
||||||
|
|
||||||
|
func handle_x_position() -> void:
|
||||||
|
var center_x = get_parent().position.x + (get_parent().size.x / 2.0)
|
||||||
|
leftPointer.global_position.x = center_x - pointer_margin_from_center
|
||||||
|
rightPointer.global_position.x = center_x + pointer_margin_from_center
|
||||||
|
pass
|
15
Scripts/UI/Remaping/RemapButton.gd
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
extends Button
|
||||||
|
|
||||||
|
@export var input_action_name : String
|
||||||
|
@export var remap_controller : Node
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
display_key()
|
||||||
|
|
||||||
|
func display_key ():
|
||||||
|
text = "%s" % InputMap.action_get_events(input_action_name)[0].as_text()
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_pressed():
|
||||||
|
remap_controller.start_remap(self, input_action_name)
|
||||||
|
pass # Replace with function body.
|
34
Scripts/UI/Remaping/RemapController.gd
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
var remap_button : Button
|
||||||
|
var remap_action : String
|
||||||
|
|
||||||
|
func _unhandled_key_input(event):
|
||||||
|
if remap_button != null and event.pressed:
|
||||||
|
remap_key(event)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
set_process_unhandled_key_input(false)
|
||||||
|
remap_button = null
|
||||||
|
pass
|
||||||
|
|
||||||
|
func start_remap(button : Button, action : String):
|
||||||
|
if(remap_button != null):
|
||||||
|
remap_button.display_key()
|
||||||
|
remap_button = button
|
||||||
|
remap_action = action
|
||||||
|
remap_button.text = "..."
|
||||||
|
set_process_unhandled_key_input(true)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func remap_key(event):
|
||||||
|
print(event)
|
||||||
|
# Do Actual Rebinding
|
||||||
|
for key in InputMap.action_get_events(remap_action):
|
||||||
|
InputMap.action_erase_event(remap_action, key)
|
||||||
|
InputMap.action_add_event(remap_action, event)
|
||||||
|
remap_button.display_key()
|
||||||
|
remap_button = null
|
||||||
|
set_process_unhandled_key_input(false)
|
||||||
|
pass
|
63
Scripts/UI/SettingsMenu.gd
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
# Video Settings UI References
|
||||||
|
@export var display_options_button : OptionButton
|
||||||
|
@export var vsync_toggle : CheckButton
|
||||||
|
@export var resolutions_options_button : OptionButton
|
||||||
|
|
||||||
|
# Audio Settings UI References
|
||||||
|
@export var master_volume_slider : Slider
|
||||||
|
@export var music_volume_slider : Slider
|
||||||
|
@export var sfx_volume_slider : Slider
|
||||||
|
|
||||||
|
# Engine Callbacks
|
||||||
|
func _ready():
|
||||||
|
add_resolution_items()
|
||||||
|
display_options_button.select(Save.game_data.display_mode)
|
||||||
|
GlobalSettings.set_display_mode(Save.game_data.display_mode)
|
||||||
|
vsync_toggle.set_pressed_no_signal(Save.game_data.vsync_on)
|
||||||
|
GlobalSettings.toggle_vsync(Save.game_data.vsync_on)
|
||||||
|
resolutions_options_button.select(Save.game_data.current_resolution_index)
|
||||||
|
GlobalSettings.set_resolution(Save.game_data.current_resolution_index)
|
||||||
|
master_volume_slider.value = Save.game_data.master_volume
|
||||||
|
GlobalSettings.update_master_volume(Save.game_data.master_volume)
|
||||||
|
music_volume_slider.value = Save.game_data.music_volume
|
||||||
|
GlobalSettings.update_music_volume(Save.game_data.music_volume)
|
||||||
|
sfx_volume_slider.value = Save.game_data.sfx_volume
|
||||||
|
GlobalSettings.update_sfx_volume(Save.game_data.sfx_volume)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func add_resolution_items():
|
||||||
|
for key in GlobalSettings.resolutions_dictionary.keys():
|
||||||
|
resolutions_options_button.add_item(key)
|
||||||
|
|
||||||
|
# Other Buttons
|
||||||
|
func _on_back_pressed():
|
||||||
|
queue_free()
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Video Settings
|
||||||
|
func _on_display_mode_options_item_selected(index):
|
||||||
|
GlobalSettings.set_display_mode(index)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_vsync_button_toggled(button_pressed):
|
||||||
|
GlobalSettings.toggle_vsync(button_pressed)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_resolutions_options_item_selected(index):
|
||||||
|
GlobalSettings.set_resolution(index)
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Audio Settings
|
||||||
|
func _on_master_volume_slider_value_changed(value):
|
||||||
|
GlobalSettings.update_master_volume(value)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_music_vol_slider_value_changed(value):
|
||||||
|
GlobalSettings.update_music_volume(value)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_sfx_vol_slider_value_changed(value):
|
||||||
|
GlobalSettings.update_sfx_volume(value)
|
||||||
|
pass
|
|
@ -11,16 +11,16 @@ func _process(delta):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func _on_collision(body):
|
func _on_collision(body):
|
||||||
var collision_layer = null;
|
var collided_layer = null;
|
||||||
|
|
||||||
if body.get_class() == "TileMap":
|
if body.get_class() == "TileMap":
|
||||||
collision_layer = body.tile_set.get_physics_layer_collision_layer(0)
|
collided_layer = body.tile_set.get_physics_layer_collision_layer(0)
|
||||||
if(body.has_method("get_collision_layer")):
|
if(body.has_method("get_collision_layer")):
|
||||||
collision_layer = body.get_collision_layer()
|
collided_layer = body.get_collision_layer()
|
||||||
|
|
||||||
if collision_layer & map_collision_layer:
|
if collided_layer & map_collision_layer:
|
||||||
queue_free()
|
queue_free()
|
||||||
if collision_layer & bunny_collision_layer:
|
if collided_layer & bunny_collision_layer:
|
||||||
var bunny = body as Bunny
|
var bunny = body as Bunny
|
||||||
bunny.damage(damage)
|
bunny.damage(damage)
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
|
@ -3,7 +3,7 @@ extends Node2D
|
||||||
@export var projectile_prefab : Resource
|
@export var projectile_prefab : Resource
|
||||||
@onready var projectilePrefab : PackedScene = load(projectile_prefab.resource_path)
|
@onready var projectilePrefab : PackedScene = load(projectile_prefab.resource_path)
|
||||||
|
|
||||||
func _process(delta):
|
func _process(_delta):
|
||||||
rotate_to_pointer()
|
rotate_to_pointer()
|
||||||
|
|
||||||
if Input.is_action_just_pressed("attack"):
|
if Input.is_action_just_pressed("attack"):
|
||||||
|
@ -18,5 +18,8 @@ func spawn_projectile(pos : Vector2, dir : float, speed: float, damage : int):
|
||||||
var projectile = projectilePrefab.instantiate()
|
var projectile = projectilePrefab.instantiate()
|
||||||
projectile.global_position = pos
|
projectile.global_position = pos
|
||||||
projectile.rotation = dir
|
projectile.rotation = dir
|
||||||
|
projectile.speed = speed
|
||||||
|
projectile.damage = damage
|
||||||
|
projectile.is_displayed_folded()
|
||||||
get_tree().root.add_child(projectile)
|
get_tree().root.add_child(projectile)
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -11,42 +11,90 @@ config_version=5
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="HoppyEaster"
|
config/name="HoppyEaster"
|
||||||
run/main_scene="res://Scenes/Test.tscn"
|
run/main_scene="res://Scenes/Main Menu.tscn"
|
||||||
config/features=PackedStringArray("4.0", "GL Compatibility")
|
config/features=PackedStringArray("4.0", "GL Compatibility")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[audio]
|
||||||
|
|
||||||
|
buses/default_bus_layout="res://Assets/Temp Music/default_bus_layout.tres"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
GlobalSettings="*res://Scripts/SaveSystem/GlobalSettings.gd"
|
||||||
|
Save="*res://Scripts/SaveSystem/GameDataSaver.gd"
|
||||||
|
|
||||||
|
[display]
|
||||||
|
|
||||||
|
window/size/viewport_width=1280
|
||||||
|
window/size/viewport_height=720
|
||||||
|
window/stretch/mode="viewport"
|
||||||
|
window/stretch/aspect="expand"
|
||||||
|
|
||||||
[dotnet]
|
[dotnet]
|
||||||
|
|
||||||
project/assembly_name="HoppyEaster"
|
project/assembly_name="HoppyEaster"
|
||||||
|
|
||||||
|
[gui]
|
||||||
|
|
||||||
|
theme/custom="res://Assets/UI_Theme.tres"
|
||||||
|
|
||||||
[input]
|
[input]
|
||||||
|
|
||||||
|
ui_left={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":4194319,"echo":false,"script":null)
|
||||||
|
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":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":65,"key_label":0,"unicode":97,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
ui_right={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":4194321,"echo":false,"script":null)
|
||||||
|
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":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":68,"key_label":0,"unicode":100,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
ui_up={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":4194320,"echo":false,"script":null)
|
||||||
|
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":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,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
ui_down={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":4194322,"echo":false,"script":null)
|
||||||
|
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":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":83,"key_label":0,"unicode":115,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
move_left={
|
move_left={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null)
|
||||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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,"echo":false,"script":null)
|
|
||||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
|
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
|
||||||
|
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
move_right={
|
move_right={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null)
|
||||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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,"echo":false,"script":null)
|
|
||||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
|
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
|
||||||
|
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
move_up={
|
move_up={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null)
|
||||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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,"echo":false,"script":null)
|
|
||||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null)
|
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"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,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
move_down={
|
move_down={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null)
|
||||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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,"echo":false,"script":null)
|
|
||||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
|
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"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,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
attack={
|
attack={
|
||||||
|
@ -59,13 +107,15 @@ attack={
|
||||||
[layer_names]
|
[layer_names]
|
||||||
|
|
||||||
2d_physics/layer_1="Map"
|
2d_physics/layer_1="Map"
|
||||||
|
2d_navigation/layer_1="Map"
|
||||||
2d_physics/layer_2="Player"
|
2d_physics/layer_2="Player"
|
||||||
2d_physics/layer_3="Bunny"
|
2d_physics/layer_3="Bunny"
|
||||||
2d_physics/layer_4="Projectile"
|
2d_physics/layer_4="Projectile"
|
||||||
2d_physics/layer_5="Layer 5"
|
2d_physics/layer_5="Layer 5"
|
||||||
|
2d_physics/layer_7="bunny_check"
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
textures/canvas_textures/default_texture_filter=0
|
||||||
renderer/rendering_method="gl_compatibility"
|
renderer/rendering_method="gl_compatibility"
|
||||||
renderer/rendering_method.mobile="gl_compatibility"
|
renderer/rendering_method.mobile="gl_compatibility"
|
||||||
textures/canvas_textures/default_texture_filter=0
|
|
||||||
|
|