Compare commits

..

4 Commits

Author SHA1 Message Date
66a71067cc fixed a few issues and also tuto triggers
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 21s
Create tag and build when new code gets to main / Test (push) Successful in 7m20s
Create tag and build when new code gets to main / Export (push) Successful in 9m42s
2026-02-05 17:26:20 +01:00
7a938b245e refresh level selection
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 18s
Create tag and build when new code gets to main / Test (push) Successful in 6m11s
Create tag and build when new code gets to main / Export (push) Successful in 7m35s
2026-02-05 17:06:32 +01:00
52ebc68a02 put the player back in its place
Some checks failed
Create tag and build when new code gets to main / BumpTag (push) Successful in 21s
Create tag and build when new code gets to main / Test (push) Has been cancelled
Create tag and build when new code gets to main / Export (push) Has been cancelled
2026-02-05 17:04:45 +01:00
2a604fb06a tutorial levels with enemies
Some checks failed
Create tag and build when new code gets to main / BumpTag (push) Successful in 20s
Create tag and build when new code gets to main / Test (push) Successful in 8m35s
Create tag and build when new code gets to main / Export (push) Has been cancelled
2026-02-05 16:52:53 +01:00
20 changed files with 622 additions and 50 deletions

View File

@@ -3,19 +3,21 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://by682i537c1qg" uid="uid://by682i537c1qg"
path="res://.godot/imported/xbox_button_a_outline.png-45ac6b087c5e9a82a5a0b446c63f4da4.ctex" path.s3tc="res://.godot/imported/xbox_button_a_outline.png-45ac6b087c5e9a82a5a0b446c63f4da4.s3tc.ctex"
path.etc2="res://.godot/imported/xbox_button_a_outline.png-45ac6b087c5e9a82a5a0b446c63f4da4.etc2.ctex"
metadata={ metadata={
"vram_texture": false "imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
} }
[deps] [deps]
source_file="res://assets/ui/input-prompts/Xbox Series/Default/xbox_button_a_outline.png" source_file="res://assets/ui/input-prompts/Xbox Series/Default/xbox_button_a_outline.png"
dest_files=["res://.godot/imported/xbox_button_a_outline.png-45ac6b087c5e9a82a5a0b446c63f4da4.ctex"] dest_files=["res://.godot/imported/xbox_button_a_outline.png-45ac6b087c5e9a82a5a0b446c63f4da4.s3tc.ctex", "res://.godot/imported/xbox_button_a_outline.png-45ac6b087c5e9a82a5a0b446c63f4da4.etc2.ctex"]
[params] [params]
compress/mode=0 compress/mode=2
compress/high_quality=false compress/high_quality=false
compress/lossy_quality=0.7 compress/lossy_quality=0.7
compress/uastc_level=0 compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=0

View File

@@ -3,19 +3,21 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dl73t0kxkaxp0" uid="uid://dl73t0kxkaxp0"
path="res://.godot/imported/xbox_button_a_outline.svg-e0a03a1d1c96455de9e4ad067974d23b.ctex" path.s3tc="res://.godot/imported/xbox_button_a_outline.svg-e0a03a1d1c96455de9e4ad067974d23b.s3tc.ctex"
path.etc2="res://.godot/imported/xbox_button_a_outline.svg-e0a03a1d1c96455de9e4ad067974d23b.etc2.ctex"
metadata={ metadata={
"vram_texture": false "imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
} }
[deps] [deps]
source_file="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_a_outline.svg" source_file="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_a_outline.svg"
dest_files=["res://.godot/imported/xbox_button_a_outline.svg-e0a03a1d1c96455de9e4ad067974d23b.ctex"] dest_files=["res://.godot/imported/xbox_button_a_outline.svg-e0a03a1d1c96455de9e4ad067974d23b.s3tc.ctex", "res://.godot/imported/xbox_button_a_outline.svg-e0a03a1d1c96455de9e4ad067974d23b.etc2.ctex"]
[params] [params]
compress/mode=0 compress/mode=2
compress/high_quality=false compress/high_quality=false
compress/lossy_quality=0.7 compress/lossy_quality=0.7
compress/uastc_level=0 compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@@ -37,7 +39,7 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0
editor/scale_with_editor_scale=false editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false editor/convert_colors_with_editor_theme=false

View File

@@ -3,19 +3,21 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cjh5cnvdbq5ku" uid="uid://cjh5cnvdbq5ku"
path="res://.godot/imported/xbox_button_b_outline.svg-3f51fcd4202da59d6f8184f7aaff1e2b.ctex" path.s3tc="res://.godot/imported/xbox_button_b_outline.svg-3f51fcd4202da59d6f8184f7aaff1e2b.s3tc.ctex"
path.etc2="res://.godot/imported/xbox_button_b_outline.svg-3f51fcd4202da59d6f8184f7aaff1e2b.etc2.ctex"
metadata={ metadata={
"vram_texture": false "imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
} }
[deps] [deps]
source_file="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_b_outline.svg" source_file="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_b_outline.svg"
dest_files=["res://.godot/imported/xbox_button_b_outline.svg-3f51fcd4202da59d6f8184f7aaff1e2b.ctex"] dest_files=["res://.godot/imported/xbox_button_b_outline.svg-3f51fcd4202da59d6f8184f7aaff1e2b.s3tc.ctex", "res://.godot/imported/xbox_button_b_outline.svg-3f51fcd4202da59d6f8184f7aaff1e2b.etc2.ctex"]
[params] [params]
compress/mode=0 compress/mode=2
compress/high_quality=false compress/high_quality=false
compress/lossy_quality=0.7 compress/lossy_quality=0.7
compress/uastc_level=0 compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@@ -37,7 +39,7 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0
editor/scale_with_editor_scale=false editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false editor/convert_colors_with_editor_theme=false

View File

@@ -3,19 +3,21 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bfkj4neu0m0rm" uid="uid://bfkj4neu0m0rm"
path="res://.godot/imported/xbox_rt_outline.svg-ccfca5331455b64f1729ac9257bae6c9.ctex" path.s3tc="res://.godot/imported/xbox_rt_outline.svg-ccfca5331455b64f1729ac9257bae6c9.s3tc.ctex"
path.etc2="res://.godot/imported/xbox_rt_outline.svg-ccfca5331455b64f1729ac9257bae6c9.etc2.ctex"
metadata={ metadata={
"vram_texture": false "imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
} }
[deps] [deps]
source_file="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_rt_outline.svg" source_file="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_rt_outline.svg"
dest_files=["res://.godot/imported/xbox_rt_outline.svg-ccfca5331455b64f1729ac9257bae6c9.ctex"] dest_files=["res://.godot/imported/xbox_rt_outline.svg-ccfca5331455b64f1729ac9257bae6c9.s3tc.ctex", "res://.godot/imported/xbox_rt_outline.svg-ccfca5331455b64f1729ac9257bae6c9.etc2.ctex"]
[params] [params]
compress/mode=0 compress/mode=2
compress/high_quality=false compress/high_quality=false
compress/lossy_quality=0.7 compress/lossy_quality=0.7
compress/uastc_level=0 compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@@ -37,7 +39,7 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0
editor/scale_with_editor_scale=false editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false editor/convert_colors_with_editor_theme=false

View File

@@ -80,9 +80,9 @@ size = Vector3(1, 5.5, 1)
material = ExtResource("1_xmksr") material = ExtResource("1_xmksr")
[node name="CSGBox3D192" type="CSGBox3D" parent="." unique_id=1221030369] [node name="CSGBox3D192" type="CSGBox3D" parent="." unique_id=1221030369]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 49, 14.25, -30) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 49, 12.25, -30)
use_collision = true use_collision = true
size = Vector3(1, 5.5, 1) size = Vector3(1, 9.5, 1)
material = ExtResource("1_xmksr") material = ExtResource("1_xmksr")
[node name="CSGBox3D151" type="CSGBox3D" parent="." unique_id=1968876706] [node name="CSGBox3D151" type="CSGBox3D" parent="." unique_id=1968876706]
@@ -145,6 +145,12 @@ use_collision = true
size = Vector3(22, 1, 1) size = Vector3(22, 1, 1)
material = ExtResource("1_xmksr") material = ExtResource("1_xmksr")
[node name="CSGBox3D193" type="CSGBox3D" parent="." unique_id=39987925]
transform = Transform3D(0.9659258, 0.25881904, 0, -0.25881904, 0.9659258, 0, 0, 0, 1, 29.417656, -0.020204067, -27.5)
use_collision = true
size = Vector3(22, 5.5, 4)
material = ExtResource("1_xmksr")
[node name="CSGBox3D179" type="CSGBox3D" parent="." unique_id=263184352] [node name="CSGBox3D179" type="CSGBox3D" parent="." unique_id=263184352]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 46.5, 11.5, -30) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 46.5, 11.5, -30)
use_collision = true use_collision = true
@@ -434,9 +440,9 @@ size = Vector3(1, 11, 1)
material = ExtResource("1_xmksr") material = ExtResource("1_xmksr")
[node name="CSGBox3D175" type="CSGBox3D" parent="." unique_id=361118992] [node name="CSGBox3D175" type="CSGBox3D" parent="." unique_id=361118992]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 49, 5.5, -30) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 49, 3.75, -26)
use_collision = true use_collision = true
size = Vector3(1, 11, 1) size = Vector3(1, 7.5, 9)
material = ExtResource("1_xmksr") material = ExtResource("1_xmksr")
[node name="CSGBox3D176" type="CSGBox3D" parent="." unique_id=653049886] [node name="CSGBox3D176" type="CSGBox3D" parent="." unique_id=653049886]

View File

@@ -0,0 +1,102 @@
[gd_scene format=3 uid="uid://ndnor8g7kq07"]
[ext_resource type="PackedScene" uid="uid://55wehh6xombr" path="res://maps/_templates/main_scene_template.tscn" id="1_k7f42"]
[ext_resource type="PackedScene" uid="uid://y77cdg7gg3y7" path="res://maps/levels/_arenas/playtest_1.tscn" id="2_kutfq"]
[ext_resource type="Material" uid="uid://31aulub2nqov" path="res://assets/materials/greybox/m_greybox.tres" id="3_1qo78"]
[ext_resource type="PackedScene" uid="uid://c305mfrtumcyq" path="res://scenes/spawners/spawner.tscn" id="4_jaqjx"]
[ext_resource type="PackedScene" uid="uid://dxt0e2ugmttqq" path="res://scenes/enemies/grounded_enemy/grounded_enemy.tscn" id="5_iq67o"]
[ext_resource type="Resource" uid="uid://bqq6uukbdfysr" path="res://scenes/enemies/grounded_enemy/grounded_enemy_movement.tres" id="6_l44fp"]
[ext_resource type="Resource" uid="uid://bohbojc68j7y1" path="res://scenes/enemies/grounded_enemy/grounded_enemy_health.tres" id="7_ucbss"]
[ext_resource type="Resource" uid="uid://otfc2snh8umc" path="res://scenes/enemies/grounded_enemy/grounded_enemy_damage.tres" id="8_2brdd"]
[ext_resource type="PackedScene" uid="uid://cmlud1hwkd6sv" path="res://scenes/enemies/flying_enemy/flying_enemy.tscn" id="9_4vdsh"]
[ext_resource type="Resource" uid="uid://bwqjaom4k7rc3" path="res://scenes/enemies/flying_enemy/flying_enemy_movement.tres" id="10_levmk"]
[ext_resource type="Resource" uid="uid://dg1xbjhyhgnnk" path="res://scenes/enemies/flying_enemy/flying_enemy_health.tres" id="11_5jlg7"]
[ext_resource type="Resource" uid="uid://dgo65k2ceqfvy" path="res://scenes/enemies/flying_enemy/flying_enemy_damage.tres" id="12_pjgox"]
[ext_resource type="PackedScene" uid="uid://qup00a7x2sji" path="res://scenes/fixed_dash_target/fixed_dashthrough_target.tscn" id="13_iq67o"]
[node name="Main" unique_id=955321579 instance=ExtResource("1_k7f42")]
[node name="PlaytestArena" parent="." index="6" unique_id=664535670 instance=ExtResource("2_kutfq")]
[node name="CSGBox3D108" type="CSGBox3D" parent="PlaytestArena" index="89" unique_id=1366898901]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 8.75, 2.25)
use_collision = true
size = Vector3(1, 17.5, 9.5)
material = ExtResource("3_1qo78")
[node name="GroundedSpawner" parent="." index="8" unique_id=580981173 node_paths=PackedStringArray("Target") instance=ExtResource("4_jaqjx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 1, -42.5)
EnemyToSpawn = ExtResource("5_iq67o")
MovementInputs = ExtResource("6_l44fp")
HealthInputs = ExtResource("7_ucbss")
DamageInputs = ExtResource("8_2brdd")
Target = NodePath("../Player")
SpawnInterval = 5.0
[node name="GroundedSpawner2" parent="." index="9" unique_id=1026317919 node_paths=PackedStringArray("Target") instance=ExtResource("4_jaqjx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 46.5, 11.5, -34.5)
EnemyToSpawn = ExtResource("5_iq67o")
MovementInputs = ExtResource("6_l44fp")
HealthInputs = ExtResource("7_ucbss")
DamageInputs = ExtResource("8_2brdd")
Target = NodePath("../Player")
SpawnInterval = 5.0
[node name="GroundedSpawner3" parent="." index="10" unique_id=241829575 node_paths=PackedStringArray("Target") instance=ExtResource("4_jaqjx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 44.5, 0, -3)
EnemyToSpawn = ExtResource("5_iq67o")
MovementInputs = ExtResource("6_l44fp")
HealthInputs = ExtResource("7_ucbss")
DamageInputs = ExtResource("8_2brdd")
Target = NodePath("../Player")
SpawnInterval = 5.0
[node name="FlyingSpawner" parent="." index="11" unique_id=962840208 node_paths=PackedStringArray("Target") instance=ExtResource("4_jaqjx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.5, 19, -19.5)
EnemyToSpawn = ExtResource("9_4vdsh")
MovementInputs = ExtResource("10_levmk")
HealthInputs = ExtResource("11_5jlg7")
DamageInputs = ExtResource("12_pjgox")
Target = NodePath("../Player")
SpawnInterval = 5.0
[node name="FlyingSpawner2" parent="." index="12" unique_id=365997644 node_paths=PackedStringArray("Target") instance=ExtResource("4_jaqjx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45.5, 25.5, -42.5)
EnemyToSpawn = ExtResource("9_4vdsh")
MovementInputs = ExtResource("10_levmk")
HealthInputs = ExtResource("11_5jlg7")
DamageInputs = ExtResource("12_pjgox")
Target = NodePath("../Player")
SpawnInterval = 5.0
[node name="Targets" type="Node3D" parent="." index="13" unique_id=1620747784]
[node name="FixedDashthroughTarget" parent="Targets" index="0" unique_id=1291663508 instance=ExtResource("13_iq67o")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 17, 13.5, -9)
[node name="FixedDashthroughTarget8" parent="Targets" index="1" unique_id=854008187 instance=ExtResource("13_iq67o")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 17, 23, -34)
[node name="FixedDashthroughTarget9" parent="Targets" index="2" unique_id=529476368 instance=ExtResource("13_iq67o")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 35.5, 30.5, -42.5)
[node name="FixedDashthroughTarget10" parent="Targets" index="3" unique_id=401660770 instance=ExtResource("13_iq67o")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 26, 30.5, -42.5)
[node name="FixedDashthroughTarget7" parent="Targets" index="4" unique_id=644136386 instance=ExtResource("13_iq67o")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 10.5, 3.5, -9)
[node name="FixedDashthroughTarget6" parent="Targets" index="5" unique_id=1685514688 instance=ExtResource("13_iq67o")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 8, 6, -30.5)
[node name="FixedDashthroughTarget4" parent="Targets" index="6" unique_id=2114541126 instance=ExtResource("13_iq67o")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 30.5, 5, -33.5)
[node name="FixedDashthroughTarget5" parent="Targets" index="7" unique_id=1443410340 instance=ExtResource("13_iq67o")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 26.5, 9.5, -44)
[node name="FixedDashthroughTarget2" parent="Targets" index="8" unique_id=1611967884 instance=ExtResource("13_iq67o")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 27, 13.5, -9)
[node name="FixedDashthroughTarget3" parent="Targets" index="9" unique_id=1106453232 instance=ExtResource("13_iq67o")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 43, 6, -8.5)

View File

@@ -6,6 +6,31 @@
[ext_resource type="Material" uid="uid://bm5f7jraqm8n0" path="res://assets/materials/greybox/m_greybox_secondary.tres" id="5_r26ni"] [ext_resource type="Material" uid="uid://bm5f7jraqm8n0" path="res://assets/materials/greybox/m_greybox_secondary.tres" id="5_r26ni"]
[ext_resource type="Material" uid="uid://cqha1a2h1dg86" path="res://assets/materials/greybox/m_greybox_medium.tres" id="5_u8sr4"] [ext_resource type="Material" uid="uid://cqha1a2h1dg86" path="res://assets/materials/greybox/m_greybox_medium.tres" id="5_u8sr4"]
[ext_resource type="PackedScene" uid="uid://y77cdg7gg3y7" path="res://maps/levels/_arenas/playtest_1.tscn" id="6_qd7a7"] [ext_resource type="PackedScene" uid="uid://y77cdg7gg3y7" path="res://maps/levels/_arenas/playtest_1.tscn" id="6_qd7a7"]
[ext_resource type="PackedScene" uid="uid://b8aet6m4m2i83" path="res://scenes/tuto_trigger/TutoTrigger.tscn" id="7_r26ni"]
[ext_resource type="Texture2D" uid="uid://dl73t0kxkaxp0" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_a_outline.svg" id="8_6c6r2"]
[ext_resource type="Texture2D" uid="uid://bfkj4neu0m0rm" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_rt_outline.svg" id="9_v7818"]
[ext_resource type="Texture2D" uid="uid://cjh5cnvdbq5ku" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_b_outline.svg" id="10_hocby"]
[sub_resource type="BoxShape3D" id="BoxShape3D_6c6r2"]
size = Vector3(6.5, 9, 7.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_v7818"]
size = Vector3(10.5, 12.5, 7.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_hocby"]
size = Vector3(3, 12.5, 7.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_ovxxa"]
size = Vector3(3, 12.5, 6)
[sub_resource type="BoxShape3D" id="BoxShape3D_5ibpd"]
size = Vector3(3.5, 7, 10.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_6rkcg"]
size = Vector3(5.5, 6.5, 3)
[sub_resource type="BoxShape3D" id="BoxShape3D_p8dgc"]
size = Vector3(3, 6.5, 5.5)
[node name="Main" unique_id=955321579 instance=ExtResource("1_jyq54")] [node name="Main" unique_id=955321579 instance=ExtResource("1_jyq54")]
@@ -13,9 +38,7 @@
transform = Transform3D(-0.1772511, 0.44628847, 0.87715954, 0.49540228, -0.72966087, 0.4713508, 0.85038733, 0.51809436, -0.09175911, 0, 0, 0) transform = Transform3D(-0.1772511, 0.44628847, 0.87715954, 0.49540228, -0.72966087, 0.4713508, 0.85038733, 0.51809436, -0.09175911, 0, 0, 0)
[node name="Player" parent="." index="6" unique_id=1309399929] [node name="Player" parent="." index="6" unique_id=1309399929]
transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, -16, 22.91025, -51.458496) transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, -0.5, 0.4102497, 0.5415039)
HasSword = false
HasParry = false
[node name="Greybox" type="CSGCombiner3D" parent="." index="7" unique_id=2082385716] [node name="Greybox" type="CSGCombiner3D" parent="." index="7" unique_id=2082385716]
use_collision = true use_collision = true
@@ -852,3 +875,91 @@ omni_range = 7.0
[node name="OmniLight3D27" type="OmniLight3D" parent="Lights" index="29" unique_id=1849438050] [node name="OmniLight3D27" type="OmniLight3D" parent="Lights" index="29" unique_id=1849438050]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 24.5, -51.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 24.5, -51.5)
omni_range = 4.5 omni_range = 4.5
[node name="Tutorials" type="Node3D" parent="." index="10" unique_id=955125222]
[node name="TutoTrigger" parent="Tutorials" index="0" unique_id=840713937 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.5, 1, -20)
first_input_texture = ExtResource("8_6c6r2")
tuto_text = "Mantle"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger" index="1" unique_id=518998736]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, 3.5, -1.75)
shape = SubResource("BoxShape3D_6c6r2")
[node name="TutoTrigger2" parent="Tutorials" index="1" unique_id=878603028 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 2.5, -37.5)
first_input_texture = ExtResource("8_6c6r2")
tuto_text = "Jump"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger2" index="1" unique_id=1454863883]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.75, 3.25, -1.75)
shape = SubResource("BoxShape3D_v7818")
[node name="TutoTrigger3" parent="Tutorials" index="2" unique_id=1537320837 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 2.5, -37.5)
first_input_texture = ExtResource("8_6c6r2")
second_input_texture = ExtResource("8_6c6r2")
tuto_text = "Double jump"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger3" index="1" unique_id=216496744]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.25, -1.75)
shape = SubResource("BoxShape3D_hocby")
[node name="TutoTrigger4" parent="Tutorials" index="3" unique_id=903897281 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 7.5, -30.5)
first_input_texture = ExtResource("8_6c6r2")
complex_input_text = "against wall"
tuto_text = "Wall jump"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger4" index="1" unique_id=1224334781]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.25, -1)
shape = SubResource("BoxShape3D_ovxxa")
[node name="TutoTrigger5" parent="Tutorials" index="4" unique_id=1703929757 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.5, 18.5, -30.5)
first_input_texture = ExtResource("9_v7818")
complex_input_text = "with speed"
tuto_text = "Slide"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger5" index="1" unique_id=614350904]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.75, 0.5, 12.25)
shape = SubResource("BoxShape3D_5ibpd")
[node name="TutoTrigger6" parent="Tutorials" index="5" unique_id=1739438130 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 19, 19)
first_input_texture = ExtResource("8_6c6r2")
complex_input_text = "while mantling"
tuto_text = "Improved jump"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger6" index="1" unique_id=821335302]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.25, 0.25, -1.5)
shape = SubResource("BoxShape3D_6rkcg")
[node name="TutoTrigger7" parent="Tutorials" index="6" unique_id=1993844947 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, 21, 24)
first_input_texture = ExtResource("8_6c6r2")
complex_input_text = "double tap"
tuto_text = "Try to wall run"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger7" index="1" unique_id=1194306224]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.25, 0.25, -1.5)
shape = SubResource("BoxShape3D_6rkcg")
[node name="TutoTrigger8" parent="Tutorials" index="7" unique_id=540710346 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25, 10)
first_input_texture = ExtResource("10_hocby")
tuto_text = "dash"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger8" index="1" unique_id=1793181148]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, -3.75)
shape = SubResource("BoxShape3D_p8dgc")
[node name="TutoTrigger9" parent="Tutorials" index="8" unique_id=2062889854 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25, -6)
first_input_texture = ExtResource("10_hocby")
tuto_text = "dash"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger9" index="1" unique_id=192598019]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, -3.75)
shape = SubResource("BoxShape3D_p8dgc")

View File

@@ -0,0 +1,273 @@
[gd_scene format=3 uid="uid://e81wsmpen58r"]
[ext_resource type="PackedScene" uid="uid://55wehh6xombr" path="res://maps/_templates/main_scene_template.tscn" id="1_8n6bu"]
[ext_resource type="PackedScene" uid="uid://y77cdg7gg3y7" path="res://maps/levels/_arenas/playtest_1.tscn" id="2_wsc2c"]
[ext_resource type="Material" uid="uid://31aulub2nqov" path="res://assets/materials/greybox/m_greybox.tres" id="3_wsc2c"]
[ext_resource type="PackedScene" uid="uid://qup00a7x2sji" path="res://scenes/fixed_dash_target/fixed_dashthrough_target.tscn" id="4_invhv"]
[ext_resource type="PackedScene" uid="uid://dxt0e2ugmttqq" path="res://scenes/enemies/grounded_enemy/grounded_enemy.tscn" id="5_ofbe2"]
[ext_resource type="Script" uid="uid://dtpxijlnb2c5" path="res://scenes/components/movement/RMovement.cs" id="6_cgfmf"]
[ext_resource type="Script" uid="uid://baiapod3csndf" path="res://scenes/components/health/RHealth.cs" id="7_hr4qv"]
[ext_resource type="PackedScene" uid="uid://cmlud1hwkd6sv" path="res://scenes/enemies/flying_enemy/flying_enemy.tscn" id="8_dkfm7"]
[sub_resource type="Resource" id="Resource_nwk5u"]
script = ExtResource("6_cgfmf")
GravityModifier = 5.0
metadata/_custom_type_script = "uid://dtpxijlnb2c5"
[sub_resource type="Resource" id="Resource_xy0m1"]
script = ExtResource("7_hr4qv")
StartingHealth = 100.0
metadata/_custom_type_script = "uid://baiapod3csndf"
[node name="Main" unique_id=955321579 instance=ExtResource("1_8n6bu")]
[node name="Player" parent="." index="6" unique_id=1309399929]
transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, 3, 0, -1.5)
[node name="PlaytestArena" parent="." index="7" unique_id=664535670 instance=ExtResource("2_wsc2c")]
[node name="CSGBox3D108" type="CSGBox3D" parent="PlaytestArena" index="88" unique_id=47922109]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 8.75, 2.25)
use_collision = true
size = Vector3(1, 17.5, 9.5)
material = ExtResource("3_wsc2c")
[node name="Targets" type="Node3D" parent="." index="8" unique_id=1727473773]
[node name="FixedDashthroughTarget" parent="Targets" index="0" unique_id=1291663508 instance=ExtResource("4_invhv")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 17, 13.5, -9)
[node name="FixedDashthroughTarget8" parent="Targets" index="1" unique_id=475406577 instance=ExtResource("4_invhv")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 17, 23, -34)
[node name="FixedDashthroughTarget9" parent="Targets" index="2" unique_id=168635463 instance=ExtResource("4_invhv")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 35.5, 30.5, -42.5)
[node name="FixedDashthroughTarget10" parent="Targets" index="3" unique_id=119396227 instance=ExtResource("4_invhv")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 26, 30.5, -42.5)
[node name="FixedDashthroughTarget7" parent="Targets" index="4" unique_id=282429016 instance=ExtResource("4_invhv")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 10.5, 3.5, -9)
[node name="FixedDashthroughTarget6" parent="Targets" index="5" unique_id=437890277 instance=ExtResource("4_invhv")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 8, 6, -30.5)
[node name="FixedDashthroughTarget4" parent="Targets" index="6" unique_id=1484691271 instance=ExtResource("4_invhv")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 30.5, 5, -33.5)
[node name="FixedDashthroughTarget5" parent="Targets" index="7" unique_id=434257222 instance=ExtResource("4_invhv")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 26.5, 9.5, -44)
[node name="FixedDashthroughTarget2" parent="Targets" index="8" unique_id=272400108 instance=ExtResource("4_invhv")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 27, 13.5, -9)
[node name="FixedDashthroughTarget3" parent="Targets" index="9" unique_id=1008201593 instance=ExtResource("4_invhv")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 43, 6, -8.5)
[node name="FlyingEnemies" type="Node3D" parent="." index="9" unique_id=1518759273]
[node name="FlyingEnemy" parent="FlyingEnemies" index="0" unique_id=2090203407 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.5, 7, -9)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy10" parent="FlyingEnemies" index="1" unique_id=1610354388 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 32.5, 7, 0.5)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy11" parent="FlyingEnemies" index="2" unique_id=1671862122 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 28, 7, 1.5)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy4" parent="FlyingEnemies" index="3" unique_id=665537400 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 33, 6, -12)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy5" parent="FlyingEnemies" index="4" unique_id=1592183094 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 6, -12)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy9" parent="FlyingEnemies" index="5" unique_id=842890582 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 6, -1.5)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy2" parent="FlyingEnemies" index="6" unique_id=188061312 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 11, -24)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy12" parent="FlyingEnemies" index="7" unique_id=821624940 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 8.5, -24)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy3" parent="FlyingEnemies" index="8" unique_id=412581083 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 14, -32.5)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy6" parent="FlyingEnemies" index="9" unique_id=779578466 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26, 23.5, -23)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy7" parent="FlyingEnemies" index="10" unique_id=1163439326 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 23.5, -23)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="FlyingEnemy8" parent="FlyingEnemies" index="11" unique_id=1979706254 node_paths=PackedStringArray("Target") instance=ExtResource("8_dkfm7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 43, 23.5, -23)
Target = NodePath("../../Player")
RMovement = SubResource("Resource_nwk5u")
[node name="GroundedEnemies" type="Node3D" parent="." index="10" unique_id=1101330520]
[node name="Enemy3" parent="GroundedEnemies" index="0" unique_id=1159989424 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 25, 0, -8.336809)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy11" parent="GroundedEnemies" index="1" unique_id=1747444936 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 17, 8, 3.6631908)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy12" parent="GroundedEnemies" index="2" unique_id=283117081 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 36.5, 11, -4.836809)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy13" parent="GroundedEnemies" index="3" unique_id=970022638 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 36.5, 12, -19.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy18" parent="GroundedEnemies" index="4" unique_id=2077088475 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.5, 12, -19.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy19" parent="GroundedEnemies" index="5" unique_id=2023773341 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 36.5, 7.5, -19.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy25" parent="GroundedEnemies" index="6" unique_id=1101329723 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 46, 7.5, -19.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy26" parent="GroundedEnemies" index="7" unique_id=855220553 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 46, 12, -35.336807)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy20" parent="GroundedEnemies" index="8" unique_id=1255215986 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.5, 7.5, -19.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy21" parent="GroundedEnemies" index="9" unique_id=2098915426 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 36.5, 0.5, -19.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy22" parent="GroundedEnemies" index="10" unique_id=246912749 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.5, 0.5, -19.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy14" parent="GroundedEnemies" index="11" unique_id=211015190 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 41, 17.5, -33.336807)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy15" parent="GroundedEnemies" index="12" unique_id=1164179421 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 31, 17.5, -33.336807)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy16" parent="GroundedEnemies" index="13" unique_id=1169725422 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 24.5, 17.5, -33.336807)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy17" parent="GroundedEnemies" index="14" unique_id=1951666189 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 17.5, 17.5, -22.836807)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy23" parent="GroundedEnemies" index="15" unique_id=1348057502 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 17.5, 24.5, -43.336807)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy24" parent="GroundedEnemies" index="16" unique_id=2068813971 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 45, 24.5, -43.336807)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy4" parent="GroundedEnemies" index="17" unique_id=366059658 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 10.5, 0, -18.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy7" parent="GroundedEnemies" index="18" unique_id=1389063523 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 25.5, 4, -27.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy10" parent="GroundedEnemies" index="19" unique_id=836898496 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.5, 11, -33.336807)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy8" parent="GroundedEnemies" index="20" unique_id=1015624071 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 34.5, 1.5, -27.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy9" parent="GroundedEnemies" index="21" unique_id=827865590 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 46.5, 0, -27.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy5" parent="GroundedEnemies" index="22" unique_id=1267116862 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4, 0, -18.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")
[node name="Enemy6" parent="GroundedEnemies" index="23" unique_id=1147823180 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 16.5, 7, -17.33681)
Target = NodePath("../../Player")
RHealth = SubResource("Resource_xy0m1")
RMovement = SubResource("Resource_nwk5u")

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/gyms/metrics.tscn", "res://maps/zoos/grounded_flying_ennemies.tscn"]) files = Array[String](["res://maps/gyms/metrics.tscn", "res://maps/levels/tuto_enemies.tscn", "res://maps/levels/tuto_movement.tscn", "res://maps/levels/tuto_sword_parry.tscn", "res://maps/zoos/grounded_flying_ennemies.tscn"])
directory = "res://maps" 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

@@ -354,7 +354,7 @@ graph_offset = Vector2(-180.277, 49)
[node name="MainMenu" unique_id=766584506 instance=ExtResource("1_my8ii")] [node name="MainMenu" unique_id=766584506 instance=ExtResource("1_my8ii")]
script = ExtResource("2_nyjay") script = ExtResource("2_nyjay")
level_select_packed_scene = ExtResource("3_8i6b8") level_select_packed_scene = ExtResource("3_8i6b8")
game_scene_path = "uid://bx3cd2hoaok3k" game_scene_path = "uid://bd0d7gvinx35c"
menu_context = ExtResource("3_ytpwg") menu_context = ExtResource("3_ytpwg")
back_action = ExtResource("4_8i6b8") back_action = ExtResource("4_8i6b8")

View File

@@ -7,9 +7,13 @@ extends OverlaidMenu
@export var level_selection_menu: PackedScene = preload("uid://fybssggvts5q") @export var level_selection_menu: PackedScene = preload("uid://fybssggvts5q")
@onready var player_invicible_toggle: CheckButton = %PlayerInvicibleToggle @onready var player_invicible_toggle: CheckButton = %PlayerInvicibleToggle
@onready var player_health_spin_box: SpinBox = %PlayerHealthSpinBox
@onready var player_damage_spin_box: SpinBox = %PlayerDamageSpinBox
func _ready() -> void: func _ready() -> void:
player_invicible_toggle.button_pressed = player.IsInvincibleOverride player_invicible_toggle.button_pressed = player.IsInvincibleOverride
player_health_spin_box.value = player.RHealth.StartingHealth
player_damage_spin_box.value = player.RDamage.DamageDealt
func _on_kill_player_button_pressed() -> void: func _on_kill_player_button_pressed() -> void:
@@ -18,7 +22,6 @@ func _on_kill_player_button_pressed() -> void:
func _on_player_invicible_toggled(toggled_on: bool) -> void: func _on_player_invicible_toggled(toggled_on: bool) -> void:
player.IsInvincibleOverride = toggled_on player.IsInvincibleOverride = toggled_on
print(player.IsInvincible)
func _on_restart_current_level_pressed() -> void: func _on_restart_current_level_pressed() -> void:
@@ -28,3 +31,11 @@ func _on_restart_current_level_pressed() -> void:
func _on_select_level_pressed() -> void: func _on_select_level_pressed() -> void:
var menu: LevelSelectMenu = level_selection_menu.instantiate() var menu: LevelSelectMenu = level_selection_menu.instantiate()
add_child(menu) add_child(menu)
func _on_player_health_changed(value: float) -> void:
player.SetPlayerHealthOverride(value)
func _on_player_damage_changed(value: float) -> void:
player.SetPlayerDamageOverride(value)

View File

@@ -13,6 +13,7 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("1_licsr") script = ExtResource("1_licsr")
pauses_game = true
[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1581374847] [node name="MarginContainer" type="MarginContainer" parent="." unique_id=1581374847]
layout_mode = 1 layout_mode = 1
@@ -81,6 +82,48 @@ script = ExtResource("2_6ax4q")
layout_mode = 2 layout_mode = 2
text = "Kill in 1s" text = "Kill in 1s"
[node name="PlayerStatsContainer" type="VBoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection" unique_id=201095522]
layout_mode = 2
size_flags_horizontal = 4
theme_override_constants/separation = 8
[node name="PlayerHealth" type="HBoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerStatsContainer" unique_id=823599662]
layout_mode = 2
size_flags_horizontal = 4
theme_override_constants/separation = 8
[node name="Label" type="Label" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerStatsContainer/PlayerHealth" unique_id=159028563]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Player base health"
[node name="PlayerHealthSpinBox" type="SpinBox" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerStatsContainer/PlayerHealth" unique_id=211258886]
unique_name_in_owner = true
layout_mode = 2
min_value = 1.0
max_value = 1000.0
value = 1.0
rounded = true
allow_greater = true
[node name="PlayerDamage" type="HBoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerStatsContainer" unique_id=560862269]
layout_mode = 2
size_flags_horizontal = 4
[node name="Label" type="Label" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerStatsContainer/PlayerDamage" unique_id=16098677]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Player damage"
[node name="PlayerDamageSpinBox" type="SpinBox" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerStatsContainer/PlayerDamage" unique_id=223936754]
unique_name_in_owner = true
layout_mode = 2
min_value = 1.0
max_value = 1000.0
value = 1.0
rounded = true
allow_greater = true
[node name="LevelSelectionMargin" type="MarginContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer" unique_id=517648431] [node name="LevelSelectionMargin" type="MarginContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer" unique_id=517648431]
layout_mode = 2 layout_mode = 2
theme_override_constants/margin_top = 16 theme_override_constants/margin_top = 16
@@ -114,5 +157,7 @@ text = "Select level
[connection signal="toggled" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerUtilsContainer/PlayerInvicibleToggle" to="." method="_on_player_invicible_toggled"] [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/PlayerSectionMargin/PlayerSection/PlayerUtilsContainer/KillPlayerButton" to="." method="_on_kill_player_button_pressed"]
[connection signal="value_changed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerStatsContainer/PlayerHealth/PlayerHealthSpinBox" to="." method="_on_player_health_changed"]
[connection signal="value_changed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerStatsContainer/PlayerDamage/PlayerDamageSpinBox" to="." method="_on_player_damage_changed"]
[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/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"] [connection signal="pressed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection/LevelSelectionContainer/SelectLevel" to="." method="_on_select_level_pressed"]

View File

@@ -4,5 +4,5 @@
[resource] [resource]
script = ExtResource("1_h6law") script = ExtResource("1_h6law")
DamageType = 3 DamageDealt = 1.0
metadata/_custom_type_script = "uid://jitubgv6judn" metadata/_custom_type_script = "uid://jitubgv6judn"

View File

@@ -4,5 +4,5 @@
[resource] [resource]
script = ExtResource("1_jht15") script = ExtResource("1_jht15")
StartingHealth = 10.0 StartingHealth = 5.0
metadata/_custom_type_script = "uid://baiapod3csndf" metadata/_custom_type_script = "uid://baiapod3csndf"

View File

@@ -4,5 +4,5 @@
[resource] [resource]
script = ExtResource("1_h6jgd") script = ExtResource("1_h6jgd")
StartingHealth = 10.0 StartingHealth = 20.0
metadata/_custom_type_script = "uid://baiapod3csndf" metadata/_custom_type_script = "uid://baiapod3csndf"

View File

@@ -5,7 +5,7 @@
[sub_resource type="Resource" id="Resource_ffdh3"] [sub_resource type="Resource" id="Resource_ffdh3"]
script = ExtResource("2_hys74") script = ExtResource("2_hys74")
DamageDealt = 5.0 DamageDealt = 10.0
DamageType = 3 DamageType = 3
metadata/_custom_type_script = "uid://jitubgv6judn" metadata/_custom_type_script = "uid://jitubgv6judn"

View File

@@ -54,7 +54,7 @@
[sub_resource type="Resource" id="Resource_cb2lu"] [sub_resource type="Resource" id="Resource_cb2lu"]
script = ExtResource("2_x835q") script = ExtResource("2_x835q")
DamageDealt = 30.0 DamageDealt = 10.0
metadata/_custom_type_script = "uid://jitubgv6judn" metadata/_custom_type_script = "uid://jitubgv6judn"
[sub_resource type="Resource" id="Resource_abfq8"] [sub_resource type="Resource" id="Resource_abfq8"]
@@ -399,6 +399,7 @@ offset_left = 1524.0
offset_top = 1.0 offset_top = 1.0
offset_right = -8.0 offset_right = -8.0
offset_bottom = 1.0 offset_bottom = 1.0
enabled = false
initial_node_to_watch = NodePath("../StateChart") initial_node_to_watch = NodePath("../StateChart")
[node name="UI" type="Control" parent="." unique_id=856532641] [node name="UI" type="Control" parent="." unique_id=856532641]

View File

@@ -43,12 +43,12 @@ animation = &"jump_start"
animation = &"mantle" animation = &"mantle"
[resource] [resource]
graph_offset = Vector2(-363.5551, -25.864124) graph_offset = Vector2(-123.69464, -78.97101)
nodes/output/position = Vector2(2020, -40) nodes/output/position = Vector2(2020, -40)
nodes/AnimationNodeStateMachine/node = ExtResource("1_knaxl") nodes/AnimationNodeStateMachine/node = ExtResource("1_knaxl")
nodes/AnimationNodeStateMachine/position = Vector2(-560, 180) nodes/AnimationNodeStateMachine/position = Vector2(-560, 180)
nodes/Idle/node = SubResource("AnimationNodeAnimation_knaxl") nodes/Idle/node = SubResource("AnimationNodeAnimation_knaxl")
nodes/Idle/position = Vector2(-100, -20) nodes/Idle/position = Vector2(-220, -40)
nodes/OnHit/node = SubResource("AnimationNodeOneShot_1hkum") nodes/OnHit/node = SubResource("AnimationNodeOneShot_1hkum")
nodes/OnHit/position = Vector2(1240, -60) nodes/OnHit/position = Vector2(1240, -60)
nodes/hit1/node = SubResource("AnimationNodeAnimation_23rmc") nodes/hit1/node = SubResource("AnimationNodeAnimation_23rmc")

View File

@@ -160,7 +160,7 @@ tracks/6/keys = {
} }
tracks/7/type = "value" tracks/7/type = "value"
tracks/7/imported = false tracks/7/imported = false
tracks/7/enabled = false tracks/7/enabled = true
tracks/7/path = NodePath("../../FPRig/Parry:visible") tracks/7/path = NodePath("../../FPRig/Parry:visible")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
@@ -671,7 +671,6 @@ mesh = ExtResource("2_c5qep")
[node name="Parry" type="Node3D" parent="FPRig" unique_id=1218775403] [node name="Parry" type="Node3D" parent="FPRig" unique_id=1218775403]
transform = Transform3D(0.43521196, -1.1178209, 0.03266725, -0.65402746, -0.2828554, -0.96552634, 0.9071047, 0.33236945, -0.711823, -0.22145952, -0.19867475, -1.3653086) transform = Transform3D(0.43521196, -1.1178209, 0.03266725, -0.65402746, -0.2828554, -0.96552634, 0.9071047, 0.33236945, -0.711823, -0.22145952, -0.19867475, -1.3653086)
visible = false
[node name="ParryMesh" type="MeshInstance3D" parent="FPRig/Parry" unique_id=1993291456] [node name="ParryMesh" type="MeshInstance3D" parent="FPRig/Parry" unique_id=1993291456]
mesh = ExtResource("3_1ay6d") mesh = ExtResource("3_1ay6d")

View File

@@ -667,6 +667,21 @@ public partial class PlayerController : CharacterBody3D,
WeaponSystem.CallDeferred(WeaponSystem.MethodName.PlaceWeaponForTutorial, TutorialWeaponTarget.GlobalPosition); WeaponSystem.CallDeferred(WeaponSystem.MethodName.PlaceWeaponForTutorial, TutorialWeaponTarget.GlobalPosition);
} }
///////////////////////////
// Toolbox Utils //
///////////////////////////
public void SetPlayerHealthOverride(float newHealthValue)
{
RHealth.StartingHealth = newHealthValue;
CHealth.CurrentHealth = newHealthValue;
PlayerUi.Initialize(CHealth.CurrentHealth);
}
public void SetPlayerDamageOverride(float newDamageValue)
{
RDamage.DamageDealt = newDamageValue;
}
/////////////////////////// ///////////////////////////
// Grounded management // // Grounded management //
/////////////////////////// ///////////////////////////
@@ -854,7 +869,8 @@ public partial class PlayerController : CharacterBody3D,
var haveEnoughSpeed = hvelProjected.Length() > WallRunSpeedThreshold; var haveEnoughSpeed = hvelProjected.Length() > WallRunSpeedThreshold;
var isCoplanarEnough = Velocity.AngleTo(wallNormal) > Math.PI/4 && Velocity.AngleTo(wallNormal) < 3*Math.PI/4; var isCoplanarEnough = Velocity.AngleTo(wallNormal) > Math.PI/4 && Velocity.AngleTo(wallNormal) < 3*Math.PI/4;
var isGoingDownwards = Velocity.AngleTo(Vector3.Down) < Math.PI/4; var isGoingDownwards = Velocity.AngleTo(Vector3.Down) < Math.PI/4;
return haveEnoughSpeed && isCoplanarEnough && !isGoingDownwards && isIndeedWall && !_coyoteEnabled.Active; var shouldStart = haveEnoughSpeed && isCoplanarEnough && !isGoingDownwards && isIndeedWall;
return shouldStart;
} }
public float ComputeVerticalSpeedGravity(float delta) public float ComputeVerticalSpeedGravity(float delta)
@@ -1285,12 +1301,12 @@ public partial class PlayerController : CharacterBody3D,
{ {
if (IsTryingToMantle()) _playerState.SendEvent("mantle"); if (IsTryingToMantle()) _playerState.SendEvent("mantle");
if (ShouldStartWallRun() && Velocity.Y < WallRunUpwardVelocity) // if (ShouldStartWallRun() && Velocity.Y < WallRunUpwardVelocity)
{ // {
SetVerticalVelocity(WallRunUpwardVelocity); // SetVerticalVelocity(WallRunUpwardVelocity);
_playerState.SendEvent("wall_run"); // _playerState.SendEvent("wall_run");
return; // return;
} // }
// Update horizontal velocity // Update horizontal velocity
var horizontalVelocity = ComputeHVelocityAir(delta); var horizontalVelocity = ComputeHVelocityAir(delta);