fixed level loading and starting to setup proper gyms, zoos and playtest levels
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 23s
Create tag and build when new code gets to main / Test (push) Successful in 8m23s
Create tag and build when new code gets to main / Export (push) Successful in 10m40s

This commit is contained in:
2026-02-03 16:31:37 +01:00
parent 8a3faff7d0
commit 0e412c2a42
53 changed files with 1122 additions and 22 deletions

BIN
assets/greybox/greybox_blue_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c4si5cetpfjsx"
path="res://.godot/imported/greybox_blue_grid.png-8cd3756907b9465009fdef23590a7e10.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/greybox_blue_grid.png"
dest_files=["res://.godot/imported/greybox_blue_grid.png-8cd3756907b9465009fdef23590a7e10.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/greybox/greybox_blue_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cubdmqt7mvofh"
path="res://.godot/imported/greybox_blue_solid.png-73fd2109ac26d63d4b465f9fdbf39c1d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/greybox_blue_solid.png"
dest_files=["res://.godot/imported/greybox_blue_solid.png-73fd2109ac26d63d4b465f9fdbf39c1d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/greybox/greybox_dark_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cv3b5gjslenlr"
path="res://.godot/imported/greybox_dark_grid.png-650326b02ce8de7b619b333b97451c9e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/greybox_dark_grid.png"
dest_files=["res://.godot/imported/greybox_dark_grid.png-650326b02ce8de7b619b333b97451c9e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/greybox/greybox_dark_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_green_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_green_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_grey_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bqqs6jweml03w"
path="res://.godot/imported/greybox_grey_grid.png-26095c1a41956f620b18195e2bc90091.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/greybox_grey_grid.png"
dest_files=["res://.godot/imported/greybox_grey_grid.png-26095c1a41956f620b18195e2bc90091.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/greybox/greybox_grey_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d35wx32padgp1"
path="res://.godot/imported/greybox_grey_solid.png-65bbc21ac3c6d5cf6c0ccf4750ce8a08.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/greybox_grey_solid.png"
dest_files=["res://.godot/imported/greybox_grey_solid.png-65bbc21ac3c6d5cf6c0ccf4750ce8a08.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/greybox/greybox_grey_solid_2.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_light_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_light_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_lime_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c74sh3woly0qb"
path="res://.godot/imported/greybox_lime_grid.png-73007e8b635010f9a4394691d1604216.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/greybox_lime_grid.png"
dest_files=["res://.godot/imported/greybox_lime_grid.png-73007e8b635010f9a4394691d1604216.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/greybox/greybox_lime_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_orange_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_orange_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_purple_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://des0wknntv107"
path="res://.godot/imported/greybox_purple_grid.png-699ec8cec24b371f6d191fb0403f1413.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/greybox_purple_grid.png"
dest_files=["res://.godot/imported/greybox_purple_grid.png-699ec8cec24b371f6d191fb0403f1413.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/greybox/greybox_purple_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c3sh7e12tuphh"
path="res://.godot/imported/greybox_purple_solid.png-2834bf5e93ffb097572663d0b6711ab0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/greybox_purple_solid.png"
dest_files=["res://.godot/imported/greybox_purple_solid.png-2834bf5e93ffb097572663d0b6711ab0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/greybox/greybox_red_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxdr0oajba7d2"
path="res://.godot/imported/greybox_red_grid.png-354bd18621a1d081151863b3288fac86.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/greybox_red_grid.png"
dest_files=["res://.godot/imported/greybox_red_grid.png-354bd18621a1d081151863b3288fac86.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/greybox/greybox_red_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_teal_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_teal_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/greybox_yellow_grid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c0kfbwkede8q"
path="res://.godot/imported/greybox_yellow_grid.png-415f899edf065d8a8b02962f77950d93.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/greybox_yellow_grid.png"
dest_files=["res://.godot/imported/greybox_yellow_grid.png-415f899edf065d8a8b02962f77950d93.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/greybox/greybox_yellow_solid.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
assets/greybox/placeholder.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b305rs4ouva73"
path="res://.godot/imported/placeholder.png-3548d9618c59656d22cf299003541677.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/greybox/placeholder.png"
dest_files=["res://.godot/imported/placeholder.png-3548d9618c59656d22cf299003541677.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -1,4 +1,5 @@
extends Control extends Control
class_name LevelSelectMenu
## Loads a simple ItemList node within a margin container. SceneLister updates ## Loads a simple ItemList node within a margin container. SceneLister updates
## the available scenes in the directory provided. Activating a level will update ## the available scenes in the directory provided. Activating a level will update
@@ -29,5 +30,5 @@ func add_levels_to_container() -> void:
level_buttons_container.add_item(button_name) level_buttons_container.add_item(button_name)
func _on_level_buttons_container_item_activated(index: int) -> void: func _on_level_buttons_container_item_activated(index: int) -> void:
GameState.set_current_level(index) var level_to_load = scene_lister.files.get(index)
level_selected.emit() SceneLoader.load_scene(level_to_load)

View File

@@ -43,7 +43,7 @@ item_0/text = "1 - ExampleLevel"
[node name="SceneLister" type="Node" parent="." unique_id=149935027] [node name="SceneLister" type="Node" parent="." unique_id=149935027]
script = ExtResource("3_stdqw") script = ExtResource("3_stdqw")
files = Array[String](["res://maps/level1.tscn", "res://maps/city.tscn", "res://maps/GYMs/enemies.tscn", "res://maps/GYMs/metrics.tscn"]) files = Array[String](["res://maps/level1.tscn", "res://maps/city.tscn", "res://maps/GYMs/metrics.tscn"])
directory = "res://menus/scenes/game_scene/levels" directory = "res://maps"
[connection signal="item_activated" from="Control/LevelButtonsContainer" to="." method="_on_level_buttons_container_item_activated"] [connection signal="item_activated" from="Control/LevelButtonsContainer" to="." method="_on_level_buttons_container_item_activated"]

View File

@@ -4,7 +4,27 @@ class_name Toolbox
extends OverlaidMenu extends OverlaidMenu
@export var player: PlayerController @export var player: PlayerController
@export var level_selection_menu: PackedScene = preload("uid://fybssggvts5q")
@onready var player_invicible_toggle: CheckButton = %PlayerInvicibleToggle
func _ready() -> void:
player_invicible_toggle.button_pressed = player.IsInvincibleOverride
func _on_kill_player_button_pressed() -> void: func _on_kill_player_button_pressed() -> void:
get_tree().create_timer(1).timeout.connect(player.Kill) get_tree().create_timer(1).timeout.connect(player.Kill)
close() close()
func _on_player_invicible_toggled(toggled_on: bool) -> void:
player.IsInvincibleOverride = toggled_on
print(player.IsInvincible)
func _on_restart_current_level_pressed() -> void:
SceneLoader.reload_current_scene()
func _on_select_level_pressed() -> void:
var menu: LevelSelectMenu = level_selection_menu.instantiate()
add_child(menu)

View File

@@ -50,29 +50,69 @@ theme_override_font_sizes/font_size = 24
text = "Toolbox" text = "Toolbox"
horizontal_alignment = 1 horizontal_alignment = 1
[node name="PlayerSection" type="MarginContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer" unique_id=461792371] [node name="PlayerSectionMargin" type="MarginContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer" unique_id=461792371]
layout_mode = 2 layout_mode = 2
theme_override_constants/margin_top = 16 theme_override_constants/margin_top = 16
theme_override_constants/margin_bottom = 16 theme_override_constants/margin_bottom = 16
[node name="MenuButtons" type="BoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSection" unique_id=469432036] [node name="PlayerSection" type="BoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin" unique_id=469432036]
unique_name_in_owner = true
custom_minimum_size = Vector2(128, 0) custom_minimum_size = Vector2(128, 0)
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_constants/separation = 16 theme_override_constants/separation = 16
alignment = 1
vertical = true vertical = true
script = ExtResource("2_6ax4q")
[node name="PlayerSectionLabel" type="Label" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSection/MenuButtons" unique_id=1100827847] [node name="PlayerSectionLabel" type="Label" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection" unique_id=1100827847]
layout_mode = 2 layout_mode = 2
text = "Player" text = "Player"
[node name="KillPlayerButton" type="Button" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSection/MenuButtons" unique_id=472828424] [node name="PlayerUtilsContainer" type="HBoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection" unique_id=993608648]
layout_mode = 2
size_flags_horizontal = 4
theme_override_constants/separation = 8
[node name="PlayerInvicibleToggle" type="CheckButton" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerUtilsContainer" unique_id=960956060]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
text = "Invincible"
script = ExtResource("2_6ax4q")
[node name="KillPlayerButton" type="Button" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerUtilsContainer" unique_id=472828424]
layout_mode = 2
text = "Kill in 1s" text = "Kill in 1s"
[connection signal="pressed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSection/MenuButtons/KillPlayerButton" to="." method="_on_kill_player_button_pressed"] [node name="LevelSelectionMargin" type="MarginContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer" unique_id=517648431]
layout_mode = 2
theme_override_constants/margin_top = 16
theme_override_constants/margin_bottom = 16
[node name="LevelSelectionSection" type="BoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin" unique_id=2038380087]
custom_minimum_size = Vector2(128, 0)
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 16
vertical = true
[node name="LevelSelectionLabel" type="Label" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection" unique_id=950442689]
layout_mode = 2
text = "Levels"
[node name="LevelSelectionContainer" type="HBoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection" unique_id=1674253271]
layout_mode = 2
size_flags_horizontal = 4
theme_override_constants/separation = 8
[node name="RestartCurrentButton" type="Button" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection/LevelSelectionContainer" unique_id=1059727667]
layout_mode = 2
text = "Restart current
"
[node name="SelectLevel" type="Button" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection/LevelSelectionContainer" unique_id=2015444126]
layout_mode = 2
text = "Select levet
"
[connection signal="toggled" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerUtilsContainer/PlayerInvicibleToggle" to="." method="_on_player_invicible_toggled"]
[connection signal="pressed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerUtilsContainer/KillPlayerButton" to="." method="_on_kill_player_button_pressed"]
[connection signal="pressed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection/LevelSelectionContainer/RestartCurrentButton" to="." method="_on_restart_current_level_pressed"]
[connection signal="pressed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection/LevelSelectionContainer/SelectLevel" to="." method="_on_select_level_pressed"]

View File

@@ -354,6 +354,13 @@ public partial class PlayerController : CharacterBody3D,
public float CurrentHealth { get; set; } public float CurrentHealth { get; set; }
private bool _isInvincible; private bool _isInvincible;
public bool IsInvincibleOverride { get; set; }
public bool IsInvincible
{
get => _isInvincible || IsInvincibleOverride;
set => _isInvincible = value;
}
private readonly List<IDamageable> _hitEnemies = new List<IDamageable>(); private readonly List<IDamageable> _hitEnemies = new List<IDamageable>();
private ShapeCast3D _closeEnemyDetector; private ShapeCast3D _closeEnemyDetector;
@@ -1438,7 +1445,7 @@ public partial class PlayerController : CharacterBody3D,
SetupSlideCollision(); SetupSlideCollision();
SlidingEnemyDetector.Monitoring = true; SlidingEnemyDetector.Monitoring = true;
_isInvincible = true; IsInvincible = true;
} }
public bool CanStandUpFromSlide() public bool CanStandUpFromSlide()
@@ -1565,7 +1572,7 @@ public partial class PlayerController : CharacterBody3D,
public void SlideEnded() public void SlideEnded()
{ {
SlidingEnemyDetector.Monitoring = false; SlidingEnemyDetector.Monitoring = false;
_isInvincible = false; IsInvincible = false;
SetupStandingCollision(); SetupStandingCollision();
_audioStream!.SwitchToClipByName("footsteps"); _audioStream!.SwitchToClipByName("footsteps");
@@ -2002,7 +2009,7 @@ public partial class PlayerController : CharacterBody3D,
public DamageRecord TakeDamage(DamageRecord damageRecord) public DamageRecord TakeDamage(DamageRecord damageRecord)
{ {
if (_isInvincible) if (IsInvincible)
return damageRecord with { Damage = new RDamage(0, damageRecord.Damage.DamageType) }; return damageRecord with { Damage = new RDamage(0, damageRecord.Damage.DamageType) };
var finalDamage = CDamageable.TakeDamage(damageRecord); var finalDamage = CDamageable.TakeDamage(damageRecord);
@@ -2023,7 +2030,7 @@ public partial class PlayerController : CharacterBody3D,
public void OnHitInvincibility() public void OnHitInvincibility()
{ {
_isInvincible = true; IsInvincible = true;
_invincibilityTimer.Start(); _invincibilityTimer.Start();
} }
@@ -2041,14 +2048,13 @@ public partial class PlayerController : CharacterBody3D,
_audioStream!.SwitchToClipByName("parry"); _audioStream!.SwitchToClipByName("parry");
} }
// TODO: fix repeated code and improve parry knockback
private PhysicsDirectSpaceState3D _spaceState; private PhysicsDirectSpaceState3D _spaceState;
public void StartDashAction(bool isParry) public void StartDashAction(bool isParry)
{ {
var streamName = isParry ? "parry" : "attacks"; var streamName = isParry ? "parry" : "attacks";
_audioStream!.SwitchToClipByName(streamName); _audioStream!.SwitchToClipByName(streamName);
_isInvincible = true; IsInvincible = true;
var plannedDashLocation = _targetLocation + Vector3.Down*HeadSystem.Position.Y; var plannedDashLocation = _targetLocation + Vector3.Down*HeadSystem.Position.Y;
var query = PhysicsRayQueryParameters3D.Create(HeadSystem.GlobalPosition, plannedDashLocation, DashSystem.DashCast3D.CollisionMask); var query = PhysicsRayQueryParameters3D.Create(HeadSystem.GlobalPosition, plannedDashLocation, DashSystem.DashCast3D.CollisionMask);
@@ -2058,7 +2064,7 @@ public partial class PlayerController : CharacterBody3D,
plannedDashLocation = (Vector3) result["position"]; plannedDashLocation = (Vector3) result["position"];
} }
var travel = plannedDashLocation - (GlobalPosition + Vector3.Up*_playerHeight); var travel = plannedDashLocation - (GlobalPosition + Vector3.Up*_playerHeight/2);
_preDashVelocity = Velocity; _preDashVelocity = Velocity;
_dashDirection = travel.Normalized(); _dashDirection = travel.Normalized();
var dashTween = CreatePositionTween(plannedDashLocation, AimedDashTime); var dashTween = CreatePositionTween(plannedDashLocation, AimedDashTime);
@@ -2085,7 +2091,7 @@ public partial class PlayerController : CharacterBody3D,
{ {
stunnable.Stun(); stunnable.Stun();
} }
_isInvincible = false; IsInvincible = false;
_playerState.SendEvent("attack_finished"); _playerState.SendEvent("attack_finished");
} }
@@ -2205,9 +2211,10 @@ public partial class PlayerController : CharacterBody3D,
public void ResetInvincibility() public void ResetInvincibility()
{ {
_isInvincible = false; IsInvincible = false;
} }
// Sound // Sound
public void OnFootStepped() public void OnFootStepped()
{ {