Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 77d405687c | |||
| 4c1831762b | |||
| 6d967bf2bf | |||
| e87a228dd2 | |||
| e8ff01e097 | |||
| 66a71067cc | |||
| 7a938b245e |
@@ -97,8 +97,8 @@ func load_scene(scene_path : String, in_background : bool = false) -> void:
|
|||||||
if not _background_loading:
|
if not _background_loading:
|
||||||
change_scene_to_resource()
|
change_scene_to_resource()
|
||||||
return
|
return
|
||||||
ResourceLoader.load_threaded_request(_scene_path)
|
|
||||||
set_process(true)
|
set_process(true)
|
||||||
|
ResourceLoader.load_threaded_request(_scene_path)
|
||||||
if _check_loading_screen() and not _background_loading:
|
if _check_loading_screen() and not _background_loading:
|
||||||
change_scene_to_loading_screen()
|
change_scene_to_loading_screen()
|
||||||
|
|
||||||
@@ -108,6 +108,7 @@ func _unhandled_key_input(event : InputEvent) -> void:
|
|||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
process_mode = Node.PROCESS_MODE_ALWAYS
|
||||||
set_process(false)
|
set_process(false)
|
||||||
|
|
||||||
func _process(_delta) -> void:
|
func _process(_delta) -> void:
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ extends OverlaidMenu
|
|||||||
@export_file("*.tscn") var main_menu_scene : String
|
@export_file("*.tscn") var main_menu_scene : String
|
||||||
|
|
||||||
var popup_open : Node
|
var popup_open : Node
|
||||||
|
|
||||||
var is_listening_to_inputs = true
|
var is_listening_to_inputs = true
|
||||||
|
|
||||||
func close_popup() -> void:
|
func close_popup() -> void:
|
||||||
|
|||||||
@@ -12,11 +12,3 @@ extends OverlaidMenu
|
|||||||
if menu_scene:
|
if menu_scene:
|
||||||
var _instance = menu_scene.instantiate()
|
var _instance = menu_scene.instantiate()
|
||||||
%MenuContainer.add_child(_instance)
|
%MenuContainer.add_child(_instance)
|
||||||
|
|
||||||
func blocking_close() -> void:
|
|
||||||
get_viewport().set_input_as_handled()
|
|
||||||
super.close()
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
back_action.triggered.connect(blocking_close)
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
[ext_resource type="Script" uid="uid://rvttn472ix6v" path="res://addons/guide/inputs/guide_input_joy_button.gd" id="4_q6ncx"]
|
[ext_resource type="Script" uid="uid://rvttn472ix6v" path="res://addons/guide/inputs/guide_input_joy_button.gd" id="4_q6ncx"]
|
||||||
[ext_resource type="Script" uid="uid://bl8rjl4oaldje" path="res://addons/guide/modifiers/guide_modifier.gd" id="5_vnf02"]
|
[ext_resource type="Script" uid="uid://bl8rjl4oaldje" path="res://addons/guide/modifiers/guide_modifier.gd" id="5_vnf02"]
|
||||||
[ext_resource type="Script" uid="uid://x74mnwgr08a7" path="res://addons/guide/triggers/guide_trigger.gd" id="6_c647i"]
|
[ext_resource type="Script" uid="uid://x74mnwgr08a7" path="res://addons/guide/triggers/guide_trigger.gd" id="6_c647i"]
|
||||||
|
[ext_resource type="Script" uid="uid://biiggjw6tv4uq" path="res://addons/guide/triggers/guide_trigger_released.gd" id="7_725x1"]
|
||||||
[ext_resource type="Script" uid="uid://b52rqq28tuqpg" path="res://addons/guide/triggers/guide_trigger_pressed.gd" id="7_m88dc"]
|
[ext_resource type="Script" uid="uid://b52rqq28tuqpg" path="res://addons/guide/triggers/guide_trigger_pressed.gd" id="7_m88dc"]
|
||||||
[ext_resource type="Script" uid="uid://cw71o87tvdx3q" path="res://addons/guide/inputs/guide_input_key.gd" id="8_yfqfy"]
|
[ext_resource type="Script" uid="uid://cw71o87tvdx3q" path="res://addons/guide/inputs/guide_input_key.gd" id="8_yfqfy"]
|
||||||
[ext_resource type="Resource" uid="uid://ds8quw8a7uh2u" path="res://inputs/menu_mode/select.tres" id="9_dsdj3"]
|
[ext_resource type="Resource" uid="uid://ds8quw8a7uh2u" path="res://inputs/menu_mode/select.tres" id="9_dsdj3"]
|
||||||
@@ -21,25 +22,26 @@
|
|||||||
script = ExtResource("4_q6ncx")
|
script = ExtResource("4_q6ncx")
|
||||||
button = 1
|
button = 1
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_lvbl0"]
|
[sub_resource type="Resource" id="Resource_bo8kw"]
|
||||||
script = ExtResource("7_m88dc")
|
script = ExtResource("7_725x1")
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_2ux44"]
|
[sub_resource type="Resource" id="Resource_2ux44"]
|
||||||
script = ExtResource("3_scydb")
|
script = ExtResource("3_scydb")
|
||||||
input = SubResource("Resource_tp5dr")
|
input = SubResource("Resource_tp5dr")
|
||||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_lvbl0")])
|
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_bo8kw")])
|
||||||
|
metadata/_guide_modifiers_collapsed = false
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_6sfub"]
|
[sub_resource type="Resource" id="Resource_6sfub"]
|
||||||
script = ExtResource("8_yfqfy")
|
script = ExtResource("8_yfqfy")
|
||||||
key = 4194305
|
key = 4194305
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_17mt7"]
|
[sub_resource type="Resource" id="Resource_86dd0"]
|
||||||
script = ExtResource("7_m88dc")
|
script = ExtResource("7_725x1")
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_23hmj"]
|
[sub_resource type="Resource" id="Resource_23hmj"]
|
||||||
script = ExtResource("3_scydb")
|
script = ExtResource("3_scydb")
|
||||||
input = SubResource("Resource_6sfub")
|
input = SubResource("Resource_6sfub")
|
||||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_17mt7")])
|
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_86dd0")])
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_len71"]
|
[sub_resource type="Resource" id="Resource_len71"]
|
||||||
script = ExtResource("1_xno0b")
|
script = ExtResource("1_xno0b")
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ use_collision = true
|
|||||||
size = Vector3(1, 17.5, 9.5)
|
size = Vector3(1, 17.5, 9.5)
|
||||||
material = ExtResource("3_1qo78")
|
material = ExtResource("3_1qo78")
|
||||||
|
|
||||||
|
[node name="Player" parent="." index="7" unique_id=1309399929]
|
||||||
|
transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, 3, 0, 0)
|
||||||
|
|
||||||
[node name="GroundedSpawner" parent="." index="8" unique_id=580981173 node_paths=PackedStringArray("Target") instance=ExtResource("4_jaqjx")]
|
[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)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 1, -42.5)
|
||||||
EnemyToSpawn = ExtResource("5_iq67o")
|
EnemyToSpawn = ExtResource("5_iq67o")
|
||||||
|
|||||||
@@ -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(10, 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")]
|
||||||
|
|
||||||
@@ -737,118 +762,235 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, 22.5, -51.5)
|
|||||||
|
|
||||||
[node name="OmniLight3D" type="OmniLight3D" parent="Lights" index="0" unique_id=1759925856]
|
[node name="OmniLight3D" type="OmniLight3D" parent="Lights" index="0" unique_id=1759925856]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 2, -12)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 2, -12)
|
||||||
omni_range = 6.0
|
light_energy = 2.249
|
||||||
|
omni_range = 9.0
|
||||||
|
|
||||||
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights" index="1" unique_id=458028986]
|
[node name="OmniLight3D28" type="OmniLight3D" parent="Lights" index="1" unique_id=1996817466]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 4, -3)
|
||||||
|
light_energy = 2.825
|
||||||
|
omni_range = 9.0
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights" index="2" unique_id=458028986]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.5, 2.5, -18)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.5, 2.5, -18)
|
||||||
omni_range = 6.0
|
light_energy = 2.405
|
||||||
|
omni_range = 10.0
|
||||||
|
|
||||||
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights" index="2" unique_id=735245103]
|
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights" index="3" unique_id=735245103]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 7, -39.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 7, -39.5)
|
||||||
|
light_energy = 3.966
|
||||||
omni_range = 9.5
|
omni_range = 9.5
|
||||||
|
|
||||||
[node name="OmniLight3D31" type="OmniLight3D" parent="Lights" index="3" unique_id=829009277]
|
[node name="OmniLight3D31" type="OmniLight3D" parent="Lights" index="4" unique_id=829009277]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 4.5, -24.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 4.5, -24.5)
|
||||||
|
light_energy = 2.405
|
||||||
omni_range = 9.5
|
omni_range = 9.5
|
||||||
|
|
||||||
[node name="OmniLight3D4" type="OmniLight3D" parent="Lights" index="4" unique_id=92911518]
|
[node name="OmniLight3D4" type="OmniLight3D" parent="Lights" index="5" unique_id=92911518]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 5.5, -38.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 5.5, -38.5)
|
||||||
omni_range = 5.5
|
omni_range = 5.5
|
||||||
|
|
||||||
[node name="OmniLight3D30" type="OmniLight3D" parent="Lights" index="5" unique_id=697077536]
|
[node name="OmniLight3D30" type="OmniLight3D" parent="Lights" index="6" unique_id=697077536]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 3, -38.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 3, -38.5)
|
||||||
|
|
||||||
[node name="OmniLight3D5" type="OmniLight3D" parent="Lights" index="6" unique_id=1550409099]
|
[node name="OmniLight3D5" type="OmniLight3D" parent="Lights" index="7" unique_id=1550409099]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.5, 9.5, -39)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.5, 9.5, -39)
|
||||||
|
omni_range = 10.5
|
||||||
|
|
||||||
|
[node name="OmniLight3D32" type="OmniLight3D" parent="Lights" index="8" unique_id=283937628]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 9.5, -39)
|
||||||
|
light_energy = 1.695
|
||||||
omni_range = 6.5
|
omni_range = 6.5
|
||||||
|
|
||||||
[node name="OmniLight3D6" type="OmniLight3D" parent="Lights" index="7" unique_id=342293346]
|
[node name="OmniLight3D6" type="OmniLight3D" parent="Lights" index="9" unique_id=342293346]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 10.5, -32)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 10.5, -32)
|
||||||
omni_range = 3.5
|
omni_range = 3.5
|
||||||
|
|
||||||
[node name="OmniLight3D7" type="OmniLight3D" parent="Lights" index="8" unique_id=1443833930]
|
[node name="OmniLight3D7" type="OmniLight3D" parent="Lights" index="10" unique_id=1443833930]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 19.5, -32)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 19.5, -32)
|
||||||
omni_range = 8.0
|
light_energy = 3.576
|
||||||
|
omni_range = 10.0
|
||||||
|
|
||||||
[node name="OmniLight3D8" type="OmniLight3D" parent="Lights" index="9" unique_id=260674221]
|
[node name="OmniLight3D8" type="OmniLight3D" parent="Lights" index="11" unique_id=260674221]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 20, -15)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 20, -15)
|
||||||
omni_range = 4.0
|
omni_range = 4.0
|
||||||
|
|
||||||
[node name="OmniLight3D9" type="OmniLight3D" parent="Lights" index="10" unique_id=1269832640]
|
[node name="OmniLight3D9" type="OmniLight3D" parent="Lights" index="12" unique_id=1269832640]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 20, 3.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 20, 3.5)
|
||||||
omni_range = 4.0
|
omni_range = 4.0
|
||||||
|
|
||||||
[node name="OmniLight3D10" type="OmniLight3D" parent="Lights" index="11" unique_id=21886206]
|
[node name="OmniLight3D10" type="OmniLight3D" parent="Lights" index="13" unique_id=21886206]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 17.5, -6.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 17.5, -6.5)
|
||||||
omni_range = 7.5
|
omni_range = 7.5
|
||||||
|
|
||||||
[node name="OmniLight3D11" type="OmniLight3D" parent="Lights" index="12" unique_id=1631281854]
|
[node name="OmniLight3D11" type="OmniLight3D" parent="Lights" index="14" unique_id=1631281854]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 17.5, 11.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 17.5, 11.5)
|
||||||
omni_range = 7.5
|
omni_range = 7.5
|
||||||
|
|
||||||
[node name="OmniLight3D12" type="OmniLight3D" parent="Lights" index="13" unique_id=1292223180]
|
[node name="OmniLight3D12" type="OmniLight3D" parent="Lights" index="15" unique_id=1292223180]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 19, 17.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 19, 17.5)
|
||||||
omni_range = 4.5
|
omni_range = 4.5
|
||||||
|
|
||||||
[node name="OmniLight3D15" type="OmniLight3D" parent="Lights" index="14" unique_id=895379786]
|
[node name="OmniLight3D15" type="OmniLight3D" parent="Lights" index="16" unique_id=895379786]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5, 21, 22.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5, 21, 22.5)
|
||||||
omni_range = 3.5
|
omni_range = 3.5
|
||||||
|
|
||||||
[node name="OmniLight3D18" type="OmniLight3D" parent="Lights" index="15" unique_id=277657948]
|
[node name="OmniLight3D18" type="OmniLight3D" parent="Lights" index="17" unique_id=277657948]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.5, 24.5, 17.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.5, 24.5, 17.5)
|
||||||
|
light_energy = 5.293
|
||||||
omni_range = 15.5
|
omni_range = 15.5
|
||||||
|
|
||||||
[node name="OmniLight3D13" type="OmniLight3D" parent="Lights" index="16" unique_id=305122268]
|
[node name="OmniLight3D13" type="OmniLight3D" parent="Lights" index="18" unique_id=305122268]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 22.5, 20.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 22.5, 20.5)
|
||||||
omni_range = 7.0
|
light_energy = 2.015
|
||||||
|
|
||||||
[node name="OmniLight3D14" type="OmniLight3D" parent="Lights" index="17" unique_id=915168140]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 22.5, 17.5)
|
|
||||||
omni_range = 10.0
|
omni_range = 10.0
|
||||||
|
|
||||||
[node name="OmniLight3D16" type="OmniLight3D" parent="Lights" index="18" unique_id=1080888977]
|
[node name="OmniLight3D33" type="OmniLight3D" parent="Lights" index="19" unique_id=333614135]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 22.5, 15)
|
||||||
|
light_energy = 2.02
|
||||||
|
omni_range = 10.0
|
||||||
|
|
||||||
|
[node name="OmniLight3D14" type="OmniLight3D" parent="Lights" index="20" unique_id=915168140]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 22.5, 17.5)
|
||||||
|
light_energy = 4.278
|
||||||
|
omni_range = 10.0
|
||||||
|
|
||||||
|
[node name="OmniLight3D16" type="OmniLight3D" parent="Lights" index="21" unique_id=1080888977]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35.5, 25.5, 22)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35.5, 25.5, 22)
|
||||||
omni_range = 7.0
|
omni_range = 7.0
|
||||||
|
|
||||||
[node name="OmniLight3D17" type="OmniLight3D" parent="Lights" index="19" unique_id=922282838]
|
[node name="OmniLight3D17" type="OmniLight3D" parent="Lights" index="22" unique_id=922282838]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -36.5, 25.5, 10.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -36.5, 25.5, 10.5)
|
||||||
|
light_energy = 1.775
|
||||||
omni_range = 7.0
|
omni_range = 7.0
|
||||||
|
|
||||||
[node name="OmniLight3D19" type="OmniLight3D" parent="Lights" index="20" unique_id=1959866895]
|
[node name="OmniLight3D19" type="OmniLight3D" parent="Lights" index="23" unique_id=1959866895]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25.5, -5.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25.5, -5.5)
|
||||||
|
light_energy = 8.571
|
||||||
omni_range = 7.0
|
omni_range = 7.0
|
||||||
|
|
||||||
[node name="OmniLight3D29" type="OmniLight3D" parent="Lights" index="21" unique_id=2143811783]
|
[node name="OmniLight3D29" type="OmniLight3D" parent="Lights" index="24" unique_id=2143811783]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25.5, -16.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25.5, -16.5)
|
||||||
|
light_energy = 4.004
|
||||||
omni_range = 7.0
|
omni_range = 7.0
|
||||||
|
|
||||||
[node name="OmniLight3D20" type="OmniLight3D" parent="Lights" index="22" unique_id=1665621589]
|
[node name="OmniLight3D20" type="OmniLight3D" parent="Lights" index="25" unique_id=1665621589]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -29)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -29)
|
||||||
omni_range = 7.0
|
omni_range = 7.0
|
||||||
|
|
||||||
[node name="OmniLight3D21" type="OmniLight3D" parent="Lights" index="23" unique_id=1870279999]
|
[node name="OmniLight3D21" type="OmniLight3D" parent="Lights" index="26" unique_id=1870279999]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -29)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -29)
|
||||||
|
light_energy = 3.654
|
||||||
omni_range = 7.0
|
omni_range = 7.0
|
||||||
|
|
||||||
[node name="OmniLight3D22" type="OmniLight3D" parent="Lights" index="24" unique_id=1284564847]
|
[node name="OmniLight3D22" type="OmniLight3D" parent="Lights" index="27" unique_id=1284564847]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -39.5)
|
||||||
|
light_energy = 1.825
|
||||||
|
omni_range = 7.0
|
||||||
|
|
||||||
|
[node name="OmniLight3D23" type="OmniLight3D" parent="Lights" index="28" unique_id=1612575478]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -39.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -39.5)
|
||||||
omni_range = 7.0
|
omni_range = 7.0
|
||||||
|
|
||||||
[node name="OmniLight3D23" type="OmniLight3D" parent="Lights" index="25" unique_id=1612575478]
|
[node name="OmniLight3D24" type="OmniLight3D" parent="Lights" index="29" unique_id=1748145610]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -39.5)
|
|
||||||
omni_range = 7.0
|
|
||||||
|
|
||||||
[node name="OmniLight3D24" type="OmniLight3D" parent="Lights" index="26" unique_id=1748145610]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -33.5, 24.5, -47)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -33.5, 24.5, -47)
|
||||||
|
light_energy = 2.725
|
||||||
omni_range = 10.0
|
omni_range = 10.0
|
||||||
|
|
||||||
[node name="OmniLight3D25" type="OmniLight3D" parent="Lights" index="27" unique_id=727558952]
|
[node name="OmniLight3D25" type="OmniLight3D" parent="Lights" index="30" unique_id=727558952]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -28, 24.5, -51)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -28, 24.5, -51)
|
||||||
|
|
||||||
[node name="OmniLight3D26" type="OmniLight3D" parent="Lights" index="28" unique_id=1646376304]
|
[node name="OmniLight3D26" type="OmniLight3D" parent="Lights" index="31" unique_id=1646376304]
|
||||||
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 = 7.0
|
omni_range = 7.0
|
||||||
|
|
||||||
[node name="OmniLight3D27" type="OmniLight3D" parent="Lights" index="29" unique_id=1849438050]
|
[node name="OmniLight3D27" type="OmniLight3D" parent="Lights" index="32" 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 = "double tap during mantle"
|
||||||
|
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, 3.5, 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 during mantle"
|
||||||
|
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")
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 35.5, 30.5, -42.5)
|
|||||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 26, 30.5, -42.5)
|
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")]
|
[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)
|
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 10.5, 5.5, -9)
|
||||||
|
|
||||||
[node name="FixedDashthroughTarget6" parent="Targets" index="5" unique_id=437890277 instance=ExtResource("4_invhv")]
|
[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)
|
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 8, 6, -30.5)
|
||||||
@@ -236,37 +236,43 @@ Target = NodePath("../../Player")
|
|||||||
RHealth = SubResource("Resource_xy0m1")
|
RHealth = SubResource("Resource_xy0m1")
|
||||||
RMovement = SubResource("Resource_nwk5u")
|
RMovement = SubResource("Resource_nwk5u")
|
||||||
|
|
||||||
[node name="Enemy7" parent="GroundedEnemies" index="18" unique_id=1389063523 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[node name="Enemy27" parent="GroundedEnemies" index="18" unique_id=883912991 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
||||||
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 13.5, 0, 1.1631908)
|
||||||
|
Target = NodePath("../../Player")
|
||||||
|
RHealth = SubResource("Resource_xy0m1")
|
||||||
|
RMovement = SubResource("Resource_nwk5u")
|
||||||
|
|
||||||
|
[node name="Enemy7" parent="GroundedEnemies" index="19" 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)
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 25.5, 4, -27.33681)
|
||||||
Target = NodePath("../../Player")
|
Target = NodePath("../../Player")
|
||||||
RHealth = SubResource("Resource_xy0m1")
|
RHealth = SubResource("Resource_xy0m1")
|
||||||
RMovement = SubResource("Resource_nwk5u")
|
RMovement = SubResource("Resource_nwk5u")
|
||||||
|
|
||||||
[node name="Enemy10" parent="GroundedEnemies" index="19" unique_id=836898496 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[node name="Enemy10" parent="GroundedEnemies" index="20" 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)
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.5, 11, -33.336807)
|
||||||
Target = NodePath("../../Player")
|
Target = NodePath("../../Player")
|
||||||
RHealth = SubResource("Resource_xy0m1")
|
RHealth = SubResource("Resource_xy0m1")
|
||||||
RMovement = SubResource("Resource_nwk5u")
|
RMovement = SubResource("Resource_nwk5u")
|
||||||
|
|
||||||
[node name="Enemy8" parent="GroundedEnemies" index="20" unique_id=1015624071 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[node name="Enemy8" parent="GroundedEnemies" index="21" 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)
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 34.5, 1.5, -27.33681)
|
||||||
Target = NodePath("../../Player")
|
Target = NodePath("../../Player")
|
||||||
RHealth = SubResource("Resource_xy0m1")
|
RHealth = SubResource("Resource_xy0m1")
|
||||||
RMovement = SubResource("Resource_nwk5u")
|
RMovement = SubResource("Resource_nwk5u")
|
||||||
|
|
||||||
[node name="Enemy9" parent="GroundedEnemies" index="21" unique_id=827865590 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[node name="Enemy9" parent="GroundedEnemies" index="22" 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)
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 46.5, 0, -27.33681)
|
||||||
Target = NodePath("../../Player")
|
Target = NodePath("../../Player")
|
||||||
RHealth = SubResource("Resource_xy0m1")
|
RHealth = SubResource("Resource_xy0m1")
|
||||||
RMovement = SubResource("Resource_nwk5u")
|
RMovement = SubResource("Resource_nwk5u")
|
||||||
|
|
||||||
[node name="Enemy5" parent="GroundedEnemies" index="22" unique_id=1267116862 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[node name="Enemy5" parent="GroundedEnemies" index="23" 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)
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4, 0, -18.33681)
|
||||||
Target = NodePath("../../Player")
|
Target = NodePath("../../Player")
|
||||||
RHealth = SubResource("Resource_xy0m1")
|
RHealth = SubResource("Resource_xy0m1")
|
||||||
RMovement = SubResource("Resource_nwk5u")
|
RMovement = SubResource("Resource_nwk5u")
|
||||||
|
|
||||||
[node name="Enemy6" parent="GroundedEnemies" index="23" unique_id=1147823180 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[node name="Enemy6" parent="GroundedEnemies" index="24" 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)
|
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 16.5, 7, -17.33681)
|
||||||
Target = NodePath("../../Player")
|
Target = NodePath("../../Player")
|
||||||
RHealth = SubResource("Resource_xy0m1")
|
RHealth = SubResource("Resource_xy0m1")
|
||||||
|
|||||||
@@ -34,4 +34,5 @@ func add_levels_to_container() -> void:
|
|||||||
|
|
||||||
func _on_level_buttons_container_item_activated(index: int) -> void:
|
func _on_level_buttons_container_item_activated(index: int) -> void:
|
||||||
var level_to_load = scene_lister.files.get(index)
|
var level_to_load = scene_lister.files.get(index)
|
||||||
|
level_selected.emit()
|
||||||
SceneLoader.load_scene(level_to_load)
|
SceneLoader.load_scene(level_to_load)
|
||||||
|
|||||||
@@ -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"]
|
||||||
|
|||||||
@@ -397,6 +397,7 @@ text = "Start"
|
|||||||
|
|
||||||
[node name="ContinueGameButton" type="Button" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="1" unique_id=861746608]
|
[node name="ContinueGameButton" type="Button" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="1" unique_id=861746608]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Continue"
|
text = "Continue"
|
||||||
|
|
||||||
|
|||||||
@@ -26,12 +26,16 @@ func _on_player_invicible_toggled(toggled_on: bool) -> void:
|
|||||||
|
|
||||||
func _on_restart_current_level_pressed() -> void:
|
func _on_restart_current_level_pressed() -> void:
|
||||||
SceneLoader.reload_current_scene()
|
SceneLoader.reload_current_scene()
|
||||||
|
close()
|
||||||
|
|
||||||
|
|
||||||
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()
|
||||||
|
menu.level_selected.connect(_on_level_selected)
|
||||||
add_child(menu)
|
add_child(menu)
|
||||||
|
|
||||||
|
func _on_level_selected() -> void:
|
||||||
|
close()
|
||||||
|
|
||||||
func _on_player_health_changed(value: float) -> void:
|
func _on_player_health_changed(value: float) -> void:
|
||||||
player.SetPlayerHealthOverride(value)
|
player.SetPlayerHealthOverride(value)
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ emission_enabled = true
|
|||||||
emission = Color(0, 0.68968636, 0.7473501, 1)
|
emission = Color(0, 0.68968636, 0.7473501, 1)
|
||||||
|
|
||||||
[node name="FixedDashthroughTarget" type="AnimatableBody3D" unique_id=1291663508]
|
[node name="FixedDashthroughTarget" type="AnimatableBody3D" unique_id=1291663508]
|
||||||
collision_layer = 288
|
collision_layer = 32
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
script = ExtResource("1_r0j7a")
|
script = ExtResource("1_r0j7a")
|
||||||
|
|
||||||
|
|||||||
@@ -50,6 +50,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://bnwj7ltdfximr" path="res://icon.svg" id="30_h23go"]
|
[ext_resource type="Texture2D" uid="uid://bnwj7ltdfximr" path="res://icon.svg" id="30_h23go"]
|
||||||
[ext_resource type="Texture2D" uid="uid://chvt6g0xn5c2m" path="res://scenes/player_controller/components/dash/light-ring.jpg" id="32_lgpc8"]
|
[ext_resource type="Texture2D" uid="uid://chvt6g0xn5c2m" path="res://scenes/player_controller/components/dash/light-ring.jpg" id="32_lgpc8"]
|
||||||
[ext_resource type="Script" uid="uid://b4dwolbvt8our" path="res://addons/godot_state_charts/history_state.gd" id="41_ruloh"]
|
[ext_resource type="Script" uid="uid://b4dwolbvt8our" path="res://addons/godot_state_charts/history_state.gd" id="41_ruloh"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c40orhfdgsim" path="res://assets/ui/IconGodotNode/white/icon_circle.png" id="45_u8rdp"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cyw8p0p6a78tl" path="res://scenes/ui/healthbar/healthbar.tscn" id="47_76kmc"]
|
[ext_resource type="PackedScene" uid="uid://cyw8p0p6a78tl" path="res://scenes/ui/healthbar/healthbar.tscn" id="47_76kmc"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_cb2lu"]
|
[sub_resource type="Resource" id="Resource_cb2lu"]
|
||||||
@@ -105,9 +106,6 @@ radius = 1.5
|
|||||||
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_2q0ik"]
|
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_2q0ik"]
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
|
||||||
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_ue7xq"]
|
|
||||||
load_path = "res://.godot/imported/fireball.svg-da8480a7a8e47ac511e0971f6fa164bd.ctex"
|
|
||||||
|
|
||||||
[node name="Player" type="CharacterBody3D" unique_id=709076448]
|
[node name="Player" type="CharacterBody3D" unique_id=709076448]
|
||||||
collision_mask = 272
|
collision_mask = 272
|
||||||
script = ExtResource("1_poq2x")
|
script = ExtResource("1_poq2x")
|
||||||
@@ -153,6 +151,8 @@ AirGlideJumpSpeedFactor = 0.05
|
|||||||
WallHugGravityLesseningFactor = 15.0
|
WallHugGravityLesseningFactor = 15.0
|
||||||
WallHugDownwardMaxSpeed = 4.0
|
WallHugDownwardMaxSpeed = 4.0
|
||||||
WallHugHorizontalDeceleration = 1.0
|
WallHugHorizontalDeceleration = 1.0
|
||||||
|
WallRunUpwardVelocityFactor = 0.5
|
||||||
|
MinimumWallRunUpwardVelocity = 3.0
|
||||||
|
|
||||||
[node name="CHealth" parent="." unique_id=1244478698 instance=ExtResource("3_q7bng")]
|
[node name="CHealth" parent="." unique_id=1244478698 instance=ExtResource("3_q7bng")]
|
||||||
RHealth = ExtResource("4_m8gvy")
|
RHealth = ExtResource("4_m8gvy")
|
||||||
@@ -507,7 +507,7 @@ offset_right = 20.0
|
|||||||
offset_bottom = 20.0
|
offset_bottom = 20.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
texture = SubResource("CompressedTexture2D_ue7xq")
|
texture = ExtResource("45_u8rdp")
|
||||||
expand_mode = 1
|
expand_mode = 1
|
||||||
|
|
||||||
[node name="Healthbar" parent="UI" unique_id=1462180337 instance=ExtResource("47_76kmc")]
|
[node name="Healthbar" parent="UI" unique_id=1462180337 instance=ExtResource("47_76kmc")]
|
||||||
@@ -971,12 +971,6 @@ initial_state = NodePath("CoyoteEnabled")
|
|||||||
script = ExtResource("41_ruloh")
|
script = ExtResource("41_ruloh")
|
||||||
default_state = NodePath("../CoyoteEnabled")
|
default_state = NodePath("../CoyoteEnabled")
|
||||||
|
|
||||||
[node name="OnWallRun" type="Node" parent="StateChart/Root/Movement/Airborne" unique_id=1722464777]
|
|
||||||
script = ExtResource("28_n7qhm")
|
|
||||||
to = NodePath("../../OnWall/Running")
|
|
||||||
event = &"wall_run"
|
|
||||||
delay_in_seconds = "0.0"
|
|
||||||
|
|
||||||
[node name="OnDash" type="Node" parent="StateChart/Root/Movement/Airborne" unique_id=30865998]
|
[node name="OnDash" type="Node" parent="StateChart/Root/Movement/Airborne" unique_id=30865998]
|
||||||
script = ExtResource("28_n7qhm")
|
script = ExtResource("28_n7qhm")
|
||||||
to = NodePath("../../Dashing/Dash")
|
to = NodePath("../../Dashing/Dash")
|
||||||
@@ -1019,6 +1013,12 @@ delay_in_seconds = "0.0"
|
|||||||
[node name="DoubleJumpEnabled" type="Node" parent="StateChart/Root/Movement/Airborne" unique_id=1494014836]
|
[node name="DoubleJumpEnabled" type="Node" parent="StateChart/Root/Movement/Airborne" unique_id=1494014836]
|
||||||
script = ExtResource("27_34snm")
|
script = ExtResource("27_34snm")
|
||||||
|
|
||||||
|
[node name="OnWallRun" type="Node" parent="StateChart/Root/Movement/Airborne/DoubleJumpEnabled" unique_id=1722464777]
|
||||||
|
script = ExtResource("28_n7qhm")
|
||||||
|
to = NodePath("../../../OnWall/Running")
|
||||||
|
event = &"wall_run"
|
||||||
|
delay_in_seconds = "0.0"
|
||||||
|
|
||||||
[node name="OnSlide" type="Node" parent="StateChart/Root/Movement/Airborne/DoubleJumpEnabled" unique_id=1782099655]
|
[node name="OnSlide" type="Node" parent="StateChart/Root/Movement/Airborne/DoubleJumpEnabled" unique_id=1782099655]
|
||||||
script = ExtResource("28_n7qhm")
|
script = ExtResource("28_n7qhm")
|
||||||
to = NodePath("../../../Sliding/AirGlideDoubleJumpEnabled")
|
to = NodePath("../../../Sliding/AirGlideDoubleJumpEnabled")
|
||||||
@@ -1040,6 +1040,12 @@ delay_in_seconds = "0.0"
|
|||||||
[node name="Falling" type="Node" parent="StateChart/Root/Movement/Airborne" unique_id=298940416]
|
[node name="Falling" type="Node" parent="StateChart/Root/Movement/Airborne" unique_id=298940416]
|
||||||
script = ExtResource("27_34snm")
|
script = ExtResource("27_34snm")
|
||||||
|
|
||||||
|
[node name="OnWallRun" type="Node" parent="StateChart/Root/Movement/Airborne/Falling" unique_id=2118960256]
|
||||||
|
script = ExtResource("28_n7qhm")
|
||||||
|
to = NodePath("../../../OnWall/Running")
|
||||||
|
event = &"wall_run"
|
||||||
|
delay_in_seconds = "0.0"
|
||||||
|
|
||||||
[node name="OnSlide" type="Node" parent="StateChart/Root/Movement/Airborne/Falling" unique_id=1416873064]
|
[node name="OnSlide" type="Node" parent="StateChart/Root/Movement/Airborne/Falling" unique_id=1416873064]
|
||||||
script = ExtResource("28_n7qhm")
|
script = ExtResource("28_n7qhm")
|
||||||
to = NodePath("../../../Sliding/AirGlide")
|
to = NodePath("../../../Sliding/AirGlide")
|
||||||
@@ -1092,6 +1098,12 @@ to = NodePath("../../Jump/SimpleJump")
|
|||||||
event = &"jump"
|
event = &"jump"
|
||||||
delay_in_seconds = "0.0"
|
delay_in_seconds = "0.0"
|
||||||
|
|
||||||
|
[node name="OnDash" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=43147957]
|
||||||
|
script = ExtResource("28_n7qhm")
|
||||||
|
to = NodePath("../../Dashing/Dash")
|
||||||
|
event = &"dash"
|
||||||
|
delay_in_seconds = "0.0"
|
||||||
|
|
||||||
[node name="Hugging" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=162057636]
|
[node name="Hugging" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=162057636]
|
||||||
script = ExtResource("27_34snm")
|
script = ExtResource("27_34snm")
|
||||||
|
|
||||||
@@ -1101,21 +1113,9 @@ to = NodePath("../../Running")
|
|||||||
event = &"wall_run"
|
event = &"wall_run"
|
||||||
delay_in_seconds = "0.0"
|
delay_in_seconds = "0.0"
|
||||||
|
|
||||||
[node name="OnDash" type="Node" parent="StateChart/Root/Movement/OnWall/Hugging" unique_id=43147957]
|
|
||||||
script = ExtResource("28_n7qhm")
|
|
||||||
to = NodePath("../../../Dashing/Dash")
|
|
||||||
event = &"dash"
|
|
||||||
delay_in_seconds = "0.0"
|
|
||||||
|
|
||||||
[node name="Hanging" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=1208015492]
|
[node name="Hanging" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=1208015492]
|
||||||
script = ExtResource("27_34snm")
|
script = ExtResource("27_34snm")
|
||||||
|
|
||||||
[node name="OnDash" type="Node" parent="StateChart/Root/Movement/OnWall/Hanging" unique_id=1302363848]
|
|
||||||
script = ExtResource("28_n7qhm")
|
|
||||||
to = NodePath("../../../Dashing/Dash")
|
|
||||||
event = &"dash"
|
|
||||||
delay_in_seconds = "0.0"
|
|
||||||
|
|
||||||
[node name="Running" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=766545186]
|
[node name="Running" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=766545186]
|
||||||
script = ExtResource("27_34snm")
|
script = ExtResource("27_34snm")
|
||||||
|
|
||||||
@@ -1125,6 +1125,12 @@ to = NodePath("../../../Airborne/CoyoteEnabled")
|
|||||||
event = &"start_falling"
|
event = &"start_falling"
|
||||||
delay_in_seconds = "0.0"
|
delay_in_seconds = "0.0"
|
||||||
|
|
||||||
|
[node name="OnNotEnoughSpeed" type="Node" parent="StateChart/Root/Movement/OnWall/Running" unique_id=539896633]
|
||||||
|
script = ExtResource("28_n7qhm")
|
||||||
|
to = NodePath("../../Hugging")
|
||||||
|
event = &"wall_hug"
|
||||||
|
delay_in_seconds = "0.0"
|
||||||
|
|
||||||
[connection signal="input_aim_down" from="InputController" to="." method="OnInputAimDown"]
|
[connection signal="input_aim_down" from="InputController" to="." method="OnInputAimDown"]
|
||||||
[connection signal="input_aim_pressed" from="InputController" to="." method="OnInputAimPressed"]
|
[connection signal="input_aim_pressed" from="InputController" to="." method="OnInputAimPressed"]
|
||||||
[connection signal="input_aim_released" from="InputController" to="." method="OnInputAimReleased"]
|
[connection signal="input_aim_released" from="InputController" to="." method="OnInputAimReleased"]
|
||||||
|
|||||||
@@ -98,6 +98,9 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
|
|
||||||
// Movement stuff
|
// Movement stuff
|
||||||
[ExportCategory("Movement")]
|
[ExportCategory("Movement")]
|
||||||
|
[ExportGroup("General")]
|
||||||
|
[Export(PropertyHint.Range, "10,200,0.1,or_greater")]
|
||||||
|
public float AbsoluteMaxSpeed { get; set; } = 100f;
|
||||||
[ExportGroup("Ground")]
|
[ExportGroup("Ground")]
|
||||||
[Export(PropertyHint.Range, "0,20,0.1,or_greater")]
|
[Export(PropertyHint.Range, "0,20,0.1,or_greater")]
|
||||||
public float WalkSpeed { get; set; } = 7.0f;
|
public float WalkSpeed { get; set; } = 7.0f;
|
||||||
@@ -226,8 +229,10 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
|
|
||||||
// Wall run
|
// Wall run
|
||||||
[ExportGroup("Wall run")]
|
[ExportGroup("Wall run")]
|
||||||
[Export(PropertyHint.Range, "1,20,0.1,or_greater")]
|
[Export(PropertyHint.Range, "0,2,0.01,or_greater")]
|
||||||
public float WallRunUpwardVelocity { get; set; } = 10f;
|
public float WallRunUpwardVelocityFactor { get; set; } = 0.05f;
|
||||||
|
[Export(PropertyHint.Range, "0,10,0.1,or_greater")]
|
||||||
|
public float MinimumWallRunUpwardVelocity { get; set; } = 2f;
|
||||||
[Export(PropertyHint.Range, "1,20,0.1,or_greater")]
|
[Export(PropertyHint.Range, "1,20,0.1,or_greater")]
|
||||||
public float WallRunAltitudeLossSpeed { get; set; } = 10f;
|
public float WallRunAltitudeLossSpeed { get; set; } = 10f;
|
||||||
|
|
||||||
@@ -281,6 +286,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
private float _playerHeight;
|
private float _playerHeight;
|
||||||
private float _playerRadius;
|
private float _playerRadius;
|
||||||
private Vector3 _dashDirection = Vector3.Zero;
|
private Vector3 _dashDirection = Vector3.Zero;
|
||||||
|
private Vector3 _postDashThroughPosition = Vector3.Zero;
|
||||||
private Vector3 _preDashVelocity = Vector3.Zero;
|
private Vector3 _preDashVelocity = Vector3.Zero;
|
||||||
private int _empoweredActionsLeft;
|
private int _empoweredActionsLeft;
|
||||||
public int EmpoweredActionsLeft
|
public int EmpoweredActionsLeft
|
||||||
@@ -847,7 +853,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
// Should we start a wall run
|
// Should we start a wall run
|
||||||
if (ShouldStartWallRun())
|
if (ShouldStartWallRun())
|
||||||
{
|
{
|
||||||
SetVerticalVelocity(WallRunUpwardVelocity);
|
SetVerticalVelocity(GetWallRunStartVerticalVelocity());
|
||||||
_playerState.SendEvent("wall_run");
|
_playerState.SendEvent("wall_run");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -860,19 +866,6 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool ShouldStartWallRun()
|
|
||||||
{
|
|
||||||
var wallNormal = WallHugSystem.WallHugNormal.UnwrapOr(Vector3.Zero);
|
|
||||||
var isIndeedWall = wallNormal.Y < 0.1;
|
|
||||||
var hvel = new Vector3(Velocity.X, 0, Velocity.Z);
|
|
||||||
var hvelProjected = hvel.Slide(_wallHugStartNormal);
|
|
||||||
var haveEnoughSpeed = hvelProjected.Length() > WallRunSpeedThreshold;
|
|
||||||
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 shouldStart = haveEnoughSpeed && isCoplanarEnough && !isGoingDownwards && isIndeedWall;
|
|
||||||
return shouldStart;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float ComputeVerticalSpeedGravity(float delta)
|
public float ComputeVerticalSpeedGravity(float delta)
|
||||||
{
|
{
|
||||||
return Velocity.Y - CalculateGravityForce() * delta;
|
return Velocity.Y - CalculateGravityForce() * delta;
|
||||||
@@ -1164,7 +1157,8 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
WallHug(delta);
|
WallHug(delta);
|
||||||
if (ShouldStartWallRun())
|
if (ShouldStartWallRun())
|
||||||
{
|
{
|
||||||
SetVerticalVelocity(WallRunUpwardVelocity);
|
var verticalVelocity = GetWallRunStartVerticalVelocity();
|
||||||
|
SetVerticalVelocity(verticalVelocity);
|
||||||
_playerState.SendEvent("wall_run");
|
_playerState.SendEvent("wall_run");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1179,8 +1173,8 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
}
|
}
|
||||||
public void HandleWallRunning(float delta)
|
public void HandleWallRunning(float delta)
|
||||||
{
|
{
|
||||||
_canDash = false;
|
// _canDash = false;
|
||||||
_canDashAirborne = false;
|
// _canDashAirborne = false;
|
||||||
|
|
||||||
// Find horizontal velocity projected on the current wall
|
// Find horizontal velocity projected on the current wall
|
||||||
var hvel = new Vector3(Velocity.X, 0, Velocity.Z);
|
var hvel = new Vector3(Velocity.X, 0, Velocity.Z);
|
||||||
@@ -1192,7 +1186,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
// Adapt vertical speed
|
// Adapt vertical speed
|
||||||
var verticalSpeed = Velocity.Y - WallRunAltitudeLossSpeed * delta;
|
var verticalSpeed = Velocity.Y - WallRunAltitudeLossSpeed * delta;
|
||||||
Velocity = finalHVel + Vector3.Up*verticalSpeed;
|
Velocity = finalHVel + Vector3.Up*verticalSpeed;
|
||||||
Velocity *= 0.999f;
|
// Velocity *= 0.999f;
|
||||||
|
|
||||||
_currentWallContactPoint = WallHugSystem.WallHugLocation.UnwrapOr(Vector3.Zero);
|
_currentWallContactPoint = WallHugSystem.WallHugLocation.UnwrapOr(Vector3.Zero);
|
||||||
|
|
||||||
@@ -1200,7 +1194,42 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
_playerState.SendEvent("grounded");
|
_playerState.SendEvent("grounded");
|
||||||
if (!WallHugSystem.IsWallHugging())
|
if (!WallHugSystem.IsWallHugging())
|
||||||
_playerState.SendEvent("start_falling");
|
_playerState.SendEvent("start_falling");
|
||||||
|
if (Velocity.Length() < WallRunSpeedThreshold / 2f)
|
||||||
|
_playerState.SendEvent("wall_hug");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float GetWallRunStartVerticalVelocity()
|
||||||
|
{
|
||||||
|
var hvel = new Vector3(Velocity.X, 0, Velocity.Z);
|
||||||
|
var hvelProjected = hvel.Slide(_wallHugStartNormal);
|
||||||
|
return Mathf.Max(hvelProjected.Length() * WallRunUpwardVelocityFactor, MinimumWallRunUpwardVelocity);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool ShouldStartWallRun()
|
||||||
|
{
|
||||||
|
var wallNormal = WallHugSystem.WallHugNormal.UnwrapOr(Vector3.Zero);
|
||||||
|
var isIndeedWall = wallNormal.Y < 0.1;
|
||||||
|
var hvel = new Vector3(Velocity.X, 0, Velocity.Z);
|
||||||
|
var hvelProjected = hvel.Slide(_wallHugStartNormal);
|
||||||
|
var haveEnoughSpeed = Velocity.Length() > WallRunSpeedThreshold;
|
||||||
|
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 isLookingInDirectionOfRun = hvelProjected.AngleTo(-HeadSystem.GetForwardHorizontalVector()) < Math.PI/2;
|
||||||
|
var shouldStart = haveEnoughSpeed && isCoplanarEnough && !isGoingDownwards && isIndeedWall && isLookingInDirectionOfRun;
|
||||||
|
|
||||||
|
var debugText = "--------------\n";
|
||||||
|
debugText += shouldStart ? "WALL RUN STARTED\n" : "NO WALL RUN\n";
|
||||||
|
debugText += $"Enough speed? {haveEnoughSpeed}\n";
|
||||||
|
debugText += $"Coplanar enough? {isCoplanarEnough}\n";
|
||||||
|
debugText += $"Going downwards? {isGoingDownwards} with angle {Velocity.AngleTo(Vector3.Down)}\n";
|
||||||
|
debugText += $"Is looking in direction of run? {isLookingInDirectionOfRun} with angle {hvelProjected.AngleTo(-HeadSystem.GetForwardHorizontalVector())}\n";
|
||||||
|
debugText += $"HVelocity on wall: {hvelProjected} - Forward H Vector: {-HeadSystem.GetForwardHorizontalVector()}\n";
|
||||||
|
debugText += "--------------\n";
|
||||||
|
//GD.Print(debugText);
|
||||||
|
|
||||||
|
return shouldStart;
|
||||||
|
}
|
||||||
|
|
||||||
public void WallHug(float delta)
|
public void WallHug(float delta)
|
||||||
{
|
{
|
||||||
var hvel = ComputeHVelocity(delta, WallHugHorizontalDeceleration, WallHugHorizontalDeceleration);
|
var hvel = ComputeHVelocity(delta, WallHugHorizontalDeceleration, WallHugHorizontalDeceleration);
|
||||||
@@ -1781,20 +1810,32 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
// feet of the capsule
|
// feet of the capsule
|
||||||
var correction = DashSystem.CollisionNormal == Vector3.Down ? _playerHeight : DashSystem.DashCastRadius;
|
var correction = DashSystem.CollisionNormal == Vector3.Down ? _playerHeight : DashSystem.DashCastRadius;
|
||||||
var correctedLocation = DashSystem.PlannedLocation + Vector3.Down * correction;
|
var correctedLocation = DashSystem.PlannedLocation + Vector3.Down * correction;
|
||||||
|
var travel = correctedLocation - GlobalPosition;
|
||||||
|
_dashDirection = travel.Normalized();
|
||||||
|
|
||||||
|
var shouldRebound = false;
|
||||||
if (DashSystem.CanDashThroughTarget && DashSystem.CollidedObject is ITargetable targetable)
|
if (DashSystem.CanDashThroughTarget && DashSystem.CollidedObject is ITargetable targetable)
|
||||||
correctedLocation = ComputePositionAfterTargetedDash(targetable.GetTargetGlobalPosition(), DashSystem.CollisionPoint);
|
{
|
||||||
|
var plannedDashLocation = targetable.GetTargetGlobalPosition() + Vector3.Down*_playerHeight/2;
|
||||||
|
travel = plannedDashLocation - GlobalPosition;
|
||||||
|
_dashDirection = travel.Normalized();
|
||||||
|
var postDashLocation = plannedDashLocation + 2*_dashDirection;
|
||||||
|
var wallBehindQuery = PhysicsRayQueryParameters3D.Create(GlobalPosition + Vector3.Up*HeadSystem.Position.Y, postDashLocation, GroundDetector.CollisionMask);
|
||||||
|
var wallBehindResult = _spaceState.IntersectRay(wallBehindQuery);
|
||||||
|
shouldRebound = wallBehindResult.Count > 0;
|
||||||
|
correctedLocation = shouldRebound ? plannedDashLocation : postDashLocation;
|
||||||
|
}
|
||||||
|
|
||||||
// Start invincibility timer for the duration of the dash and a bit more afterwards
|
// Start invincibility timer for the duration of the dash and a bit more afterwards
|
||||||
OnHitInvincibility();
|
OnHitInvincibility();
|
||||||
|
|
||||||
_preDashVelocity = Velocity;
|
_preDashVelocity = Velocity;
|
||||||
_dashDirection = (correctedLocation - GlobalPosition).Normalized();
|
|
||||||
SetupDashDamageDetector(correctedLocation);
|
SetupDashDamageDetector(correctedLocation);
|
||||||
|
|
||||||
var dashTween = CreatePositionTween(correctedLocation, AimedDashTime);
|
var dashTween = CreatePositionTween(correctedLocation, AimedDashTime);
|
||||||
// dashTween.TweenMethod(Callable.From<float>(AimedDashTweenOngoing), 0.0f, 1.0f, AimedDashTime);
|
// dashTween.TweenMethod(Callable.From<float>(AimedDashTweenOngoing), 0.0f, 1.0f, AimedDashTime);
|
||||||
dashTween.Finished += AimedDashTweenEnded;
|
dashTween.Finished += AimedDashTweenEnded;
|
||||||
|
if (shouldRebound) dashTween.Finished += ManualKnockback;
|
||||||
|
|
||||||
_customMantle = DashSystem.ShouldMantle;
|
_customMantle = DashSystem.ShouldMantle;
|
||||||
_customMantleCurve = DashSystem.MantleSystem.MantleCurve;
|
_customMantleCurve = DashSystem.MantleSystem.MantleCurve;
|
||||||
@@ -1972,6 +2013,10 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
|
|
||||||
if (_currentInputBufferFrames > 0) _currentInputBufferFrames -= 1;
|
if (_currentInputBufferFrames > 0) _currentInputBufferFrames -= 1;
|
||||||
|
|
||||||
|
// Limit maximum speed
|
||||||
|
if (Velocity.Length() > AbsoluteMaxSpeed)
|
||||||
|
Velocity = Velocity.Normalized() * AbsoluteMaxSpeed;
|
||||||
|
|
||||||
// Manage head and camera movement
|
// Manage head and camera movement
|
||||||
LookAround(delta);
|
LookAround(delta);
|
||||||
|
|
||||||
@@ -2093,28 +2138,35 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private PhysicsDirectSpaceState3D _spaceState;
|
private PhysicsDirectSpaceState3D _spaceState;
|
||||||
|
|
||||||
public void StartDashAction(bool isParry)
|
public void StartDashAction(bool isParry)
|
||||||
{
|
{
|
||||||
var streamName = isParry ? "parry" : "attacks";
|
var streamName = isParry ? "parry" : "attacks";
|
||||||
_audioStream!.SwitchToClipByName(streamName);
|
_audioStream!.SwitchToClipByName(streamName);
|
||||||
IsInvincible = true;
|
IsInvincible = true;
|
||||||
|
|
||||||
var plannedDashLocation = _targetLocation + Vector3.Down*HeadSystem.Position.Y;
|
var plannedDashLocation = _targetLocation + Vector3.Down*_playerHeight/2;
|
||||||
var query = PhysicsRayQueryParameters3D.Create(HeadSystem.GlobalPosition, plannedDashLocation, DashSystem.DashCast3D.CollisionMask);
|
// var enemySurfaceQuery = PhysicsRayQueryParameters3D.Create(HeadSystem.GlobalPosition, plannedDashLocation, DashSystem.DashCast3D.CollisionMask);
|
||||||
var result = _spaceState.IntersectRay(query);
|
// var enemySurfaceResult = _spaceState.IntersectRay(enemySurfaceQuery);
|
||||||
if (result.Count > 0)
|
// if (enemySurfaceResult.Count > 0)
|
||||||
{
|
// {
|
||||||
plannedDashLocation = (Vector3) result["position"];
|
// plannedDashLocation = (Vector3) enemySurfaceResult["position"];
|
||||||
}
|
// }
|
||||||
|
|
||||||
var travel = plannedDashLocation - (GlobalPosition + Vector3.Up*_playerHeight/2);
|
|
||||||
_preDashVelocity = Velocity;
|
_preDashVelocity = Velocity;
|
||||||
|
var travel = plannedDashLocation - GlobalPosition;
|
||||||
_dashDirection = travel.Normalized();
|
_dashDirection = travel.Normalized();
|
||||||
|
|
||||||
|
var postDashLocation = plannedDashLocation + 2*_dashDirection;
|
||||||
|
var wallBehindQuery = PhysicsRayQueryParameters3D.Create(GlobalPosition + Vector3.Up*HeadSystem.Position.Y, postDashLocation, GroundDetector.CollisionMask);
|
||||||
|
var wallBehindResult = _spaceState.IntersectRay(wallBehindQuery);
|
||||||
|
var shouldRebound = wallBehindResult.Count > 0;
|
||||||
|
if (!shouldRebound) _postDashThroughPosition = postDashLocation;
|
||||||
|
|
||||||
var dashTween = CreatePositionTween(plannedDashLocation, AimedDashTime);
|
var dashTween = CreatePositionTween(plannedDashLocation, AimedDashTime);
|
||||||
if (isParry) dashTween.Finished += OnDashParryEnded;
|
if (isParry || shouldRebound) dashTween.Finished += OnDashParryEnded;
|
||||||
else dashTween.Finished += OnDashAttackEnded;
|
else dashTween.Finished += OnDashAttackEnded;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnDashAttackStarted()
|
public void OnDashAttackStarted()
|
||||||
{
|
{
|
||||||
StartDashAction(isParry: false);
|
StartDashAction(isParry: false);
|
||||||
@@ -2142,13 +2194,18 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
public void OnDashAttackEnded()
|
public void OnDashAttackEnded()
|
||||||
{
|
{
|
||||||
StopDashAction();
|
StopDashAction();
|
||||||
GlobalPosition = ComputePositionAfterTargetedDash(_targetLocation, _targetHitLocation);
|
GlobalPosition = _postDashThroughPosition;
|
||||||
var postDashVelocity = _preDashVelocity.Length() > PostDashSpeed ? _preDashVelocity.Length() : PostDashSpeed;
|
var postDashVelocity = _preDashVelocity.Length() > PostDashSpeed ? _preDashVelocity.Length() : PostDashSpeed;
|
||||||
Velocity = _dashDirection * postDashVelocity;
|
Velocity = _dashDirection * postDashVelocity;
|
||||||
}
|
}
|
||||||
public void OnDashParryEnded()
|
public void OnDashParryEnded()
|
||||||
{
|
{
|
||||||
StopDashAction();
|
StopDashAction();
|
||||||
|
ManualKnockback();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ManualKnockback()
|
||||||
|
{
|
||||||
Velocity = -_dashDirection*RKnockback.Modifier;
|
Velocity = -_dashDirection*RKnockback.Modifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user