Compare commits

...

2 Commits

Author SHA1 Message Date
0e412c2a42 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
2026-02-03 16:31:37 +01:00
8a3faff7d0 small refacto of dash actions 2026-02-03 15:10:22 +01:00
54 changed files with 1149 additions and 69 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
class_name LevelSelectMenu
## Loads a simple ItemList node within a margin container. SceneLister updates
## 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)
func _on_level_buttons_container_item_activated(index: int) -> void:
GameState.set_current_level(index)
level_selected.emit()
var level_to_load = scene_lister.files.get(index)
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]
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"])
directory = "res://menus/scenes/game_scene/levels"
files = Array[String](["res://maps/level1.tscn", "res://maps/city.tscn", "res://maps/GYMs/metrics.tscn"])
directory = "res://maps"
[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
@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:
get_tree().create_timer(1).timeout.connect(player.Kill)
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"
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
theme_override_constants/margin_top = 16
theme_override_constants/margin_bottom = 16
[node name="MenuButtons" type="BoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSection" unique_id=469432036]
unique_name_in_owner = true
[node name="PlayerSection" type="BoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin" unique_id=469432036]
custom_minimum_size = Vector2(128, 0)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 3
theme_override_constants/separation = 16
alignment = 1
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
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
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"
[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

@@ -61,7 +61,7 @@ metadata/_custom_type_script = "uid://jitubgv6judn"
[sub_resource type="Resource" id="Resource_abfq8"]
script = ExtResource("3_cb2lu")
Modifier = 10.0
Modifier = 20.0
metadata/_custom_type_script = "uid://b44cse62qru7j"
[sub_resource type="Resource" id="Resource_ue7xq"]

View File

@@ -354,6 +354,13 @@ public partial class PlayerController : CharacterBody3D,
public float CurrentHealth { get; set; }
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 ShapeCast3D _closeEnemyDetector;
@@ -1438,7 +1445,7 @@ public partial class PlayerController : CharacterBody3D,
SetupSlideCollision();
SlidingEnemyDetector.Monitoring = true;
_isInvincible = true;
IsInvincible = true;
}
public bool CanStandUpFromSlide()
@@ -1565,7 +1572,7 @@ public partial class PlayerController : CharacterBody3D,
public void SlideEnded()
{
SlidingEnemyDetector.Monitoring = false;
_isInvincible = false;
IsInvincible = false;
SetupStandingCollision();
_audioStream!.SwitchToClipByName("footsteps");
@@ -2002,7 +2009,7 @@ public partial class PlayerController : CharacterBody3D,
public DamageRecord TakeDamage(DamageRecord damageRecord)
{
if (_isInvincible)
if (IsInvincible)
return damageRecord with { Damage = new RDamage(0, damageRecord.Damage.DamageType) };
var finalDamage = CDamageable.TakeDamage(damageRecord);
@@ -2023,7 +2030,7 @@ public partial class PlayerController : CharacterBody3D,
public void OnHitInvincibility()
{
_isInvincible = true;
IsInvincible = true;
_invincibilityTimer.Start();
}
@@ -2041,16 +2048,15 @@ public partial class PlayerController : CharacterBody3D,
_audioStream!.SwitchToClipByName("parry");
}
// TODO: fix repeated code and improve parry knockback
private PhysicsDirectSpaceState3D _spaceState;
public void OnDashAttackStarted()
private PhysicsDirectSpaceState3D _spaceState;
public void StartDashAction(bool isParry)
{
_audioStream!.SwitchToClipByName("attacks");
_isInvincible = true;
var streamName = isParry ? "parry" : "attacks";
_audioStream!.SwitchToClipByName(streamName);
IsInvincible = true;
var plannedDashLocation = _targetLocation + Vector3.Down*HeadSystem.Position.Y;
var query = PhysicsRayQueryParameters3D.Create(HeadSystem.GlobalPosition, plannedDashLocation, DashSystem.DashCast3D.CollisionMask);
var result = _spaceState.IntersectRay(query);
if (result.Count > 0)
@@ -2058,67 +2064,48 @@ public partial class PlayerController : CharacterBody3D,
plannedDashLocation = (Vector3) result["position"];
}
var travel = plannedDashLocation - GlobalPosition;
var travel = plannedDashLocation - (GlobalPosition + Vector3.Up*_playerHeight/2);
_preDashVelocity = Velocity;
_dashDirection = travel.Normalized();
var dashTween = CreatePositionTween(plannedDashLocation, AimedDashTime);
dashTween.Finished += OnDashAttackEnded;
if (isParry) dashTween.Finished += OnDashParryEnded;
else dashTween.Finished += OnDashAttackEnded;
}
public void OnDashAttackStarted()
{
StartDashAction(isParry: false);
}
public void OnDashParryStarted()
{
_audioStream!.SwitchToClipByName("parry");
_isInvincible = true;
var plannedDashLocation = _targetLocation + Vector3.Down*HeadSystem.Position.Y;
var query = PhysicsRayQueryParameters3D.Create(HeadSystem.GlobalPosition, plannedDashLocation, DashSystem.DashCast3D.CollisionMask);
var result = _spaceState.IntersectRay(query);
if (result.Count > 0)
StartDashAction(isParry: true);
}
public void StopDashAction()
{
if (_targetObject is IDamageable damageable)
{
plannedDashLocation = (Vector3) result["position"];
_hitEnemies.Add(damageable);
TriggerDamage();
}
var travel = plannedDashLocation - GlobalPosition;
_preDashVelocity = Velocity;
_dashDirection = travel.Normalized();
var dashTween = CreatePositionTween(plannedDashLocation, AimedDashTime);
dashTween.Finished += OnDashParryEnded;
if (_targetObject is IStunnable stunnable)
{
stunnable.Stun();
}
IsInvincible = false;
_playerState.SendEvent("attack_finished");
}
public void OnDashAttackEnded()
{
if (_targetObject is IDamageable damageable)
{
_hitEnemies.Add(damageable);
TriggerDamage();
}
if (_targetObject is IStunnable stunnable)
{
stunnable.Stun();
}
StopDashAction();
GlobalPosition = ComputePositionAfterTargetedDash(_targetLocation, _targetHitLocation);
var postDashVelocity = _preDashVelocity.Length() > PostDashSpeed ? _preDashVelocity.Length() : PostDashSpeed;
Velocity = _dashDirection * postDashVelocity;
_isInvincible = false;
_playerState.SendEvent("attack_finished");
}
public void OnDashParryEnded()
{
if (_targetObject is IDamageable damageable)
{
_hitEnemies.Add(damageable);
TriggerDamage();
}
if (_targetObject is IStunnable stunnable)
{
stunnable.Stun();
}
StopDashAction();
Velocity = -_dashDirection*RKnockback.Modifier;
_isInvincible = false;
_playerState.SendEvent("attack_finished");
}
public static Vector3 ComputePositionAfterTargetedDash(Vector3 targetLocation, Vector3 targetHitLocation)
@@ -2138,7 +2125,6 @@ public partial class PlayerController : CharacterBody3D,
DashToFlyingWeapon();
return;
}
if (WeaponSystem.PlantedState.Active)
{
DashToPlantedWeapon();
@@ -2225,9 +2211,10 @@ public partial class PlayerController : CharacterBody3D,
public void ResetInvincibility()
{
_isInvincible = false;
IsInvincible = false;
}
// Sound
public void OnFootStepped()
{