diff --git a/inputs/input_system.gd b/inputs/input_system.gd index 21a1f201..c33fd3d0 100644 --- a/inputs/input_system.gd +++ b/inputs/input_system.gd @@ -31,7 +31,7 @@ class_name InputController @export var slam:GUIDEAction signal input_device_changed(is_gamepad: bool) -var _using_gamepad = false +var current_input_method = GlobalHelpers.GamepadDetectionEvent.GAMEPAD signal input_move(value: Vector3) signal input_rotate_y(value: float) @@ -104,19 +104,15 @@ func on_input_slide_ended(): input_slide_ended.emit() func _input(event: InputEvent) -> void: - if event is InputEventKey: - if _using_gamepad: - _using_gamepad = false - input_device_changed.emit(_using_gamepad) - elif event is InputEventJoypadMotion: - if !_using_gamepad: - if abs(event.axis_value) > 0.5: - _using_gamepad = true - input_device_changed.emit(_using_gamepad) - elif event is InputEventJoypadButton: - if !_using_gamepad: - _using_gamepad = true - input_device_changed.emit(_using_gamepad) + var event_gamepad = GlobalHelpers.is_event_gamepad(event) + if event_gamepad == GlobalHelpers.GamepadDetectionEvent.IRRELEVANT: + return + + if current_input_method == event_gamepad: + return + + current_input_method = event_gamepad + input_device_changed.emit(current_input_method == GlobalHelpers.GamepadDetectionEvent.GAMEPAD) func _process(_delta: float) -> void: var value_horizontal = -move_left.value_axis_1d + move_right.value_axis_1d diff --git a/maps/levels/tuto_sword_parry.tscn b/maps/levels/tuto_sword_parry.tscn index a36ee767..468a7f68 100644 --- a/maps/levels/tuto_sword_parry.tscn +++ b/maps/levels/tuto_sword_parry.tscn @@ -10,10 +10,6 @@ [ext_resource type="PackedScene" uid="uid://cmlud1hwkd6sv" path="res://scenes/enemies/flying_enemy/flying_enemy.tscn" id="8_dkfm7"] [ext_resource type="Script" uid="uid://jitubgv6judn" path="res://scenes/components/damage/RDamage.cs" id="9_ofbe2"] [ext_resource type="PackedScene" uid="uid://b8aet6m4m2i83" path="res://scenes/tuto_trigger/TutoTrigger.tscn" id="10_dkfm7"] -[ext_resource type="Texture2D" uid="uid://nrhxjdpuje3f" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_lt_outline.svg" id="11_nwk5u"] -[ext_resource type="Texture2D" uid="uid://cjh5cnvdbq5ku" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_b_outline.svg" id="12_xy0m1"] -[ext_resource type="Texture2D" uid="uid://dyjvbsvbriii4" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_rb_outline.svg" id="13_nwk5u"] -[ext_resource type="Texture2D" uid="uid://db6uqhcmcfs5t" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_lb_outline.svg" id="14_xy0m1"] [sub_resource type="Resource" id="Resource_nwk5u"] script = ExtResource("6_cgfmf") @@ -361,8 +357,6 @@ RMovement = SubResource("Resource_nwk5u") [node name="TutoTrigger5" parent="Tutorial/Triggers" index="0" unique_id=840713937 instance=ExtResource("10_dkfm7")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 23.25, -24.25) -first_input_texture = ExtResource("11_nwk5u") -second_input_texture = ExtResource("12_xy0m1") tuto_text = "Dash through target" [node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger5" index="1" unique_id=1895232009] @@ -371,8 +365,6 @@ shape = SubResource("BoxShape3D_xy0m1") [node name="TutoTrigger" parent="Tutorial/Triggers" index="1" unique_id=1215265305 instance=ExtResource("10_dkfm7")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 0, -4.5) -first_input_texture = ExtResource("11_nwk5u") -second_input_texture = ExtResource("12_xy0m1") tuto_text = "Aimed dash" [node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger" index="1" unique_id=1774867326] @@ -381,8 +373,6 @@ shape = SubResource("BoxShape3D_05lnh") [node name="TutoTrigger2" parent="Tutorial/Triggers" index="2" unique_id=386301715 instance=ExtResource("10_dkfm7")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.75, 0, -34.25) -first_input_texture = ExtResource("11_nwk5u") -complex_input_text = "blue target" tuto_text = "mantle after dash" [node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger2" index="1" unique_id=525906537] @@ -391,8 +381,6 @@ shape = SubResource("BoxShape3D_t5o40") [node name="TutoTrigger3" parent="Tutorial/Triggers" index="3" unique_id=460767120 instance=ExtResource("10_dkfm7")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.75, 7, -49) -first_input_texture = ExtResource("11_nwk5u") -complex_input_text = "in air" tuto_text = "slows down time" [node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger3" index="1" unique_id=768845413] @@ -401,8 +389,6 @@ shape = SubResource("BoxShape3D_dkfm7") [node name="TutoTrigger4" parent="Tutorial/Triggers" index="4" unique_id=321542244 instance=ExtResource("10_dkfm7")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.5, 17.75, -27.5) -first_input_texture = ExtResource("13_nwk5u") -complex_input_text = "at target" tuto_text = "dash through" [node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger4" index="1" unique_id=1601250256] @@ -411,8 +397,6 @@ shape = SubResource("BoxShape3D_nwk5u") [node name="TutoTrigger6" parent="Tutorial/Triggers" index="5" unique_id=26112457 instance=ExtResource("10_dkfm7")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.75, 22.75, 11.25) -first_input_texture = ExtResource("13_nwk5u") -complex_input_text = "at enemy" tuto_text = "dash through" [node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger6" index="1" unique_id=1214410006] @@ -421,8 +405,6 @@ shape = SubResource("BoxShape3D_prjj8") [node name="TutoTrigger7" parent="Tutorial/Triggers" index="6" unique_id=271532103 instance=ExtResource("10_dkfm7")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 22.75, 30.25) -first_input_texture = ExtResource("11_nwk5u") -second_input_texture = ExtResource("13_nwk5u") tuto_text = "throw weapon" [node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger7" index="1" unique_id=1932556219] @@ -431,8 +413,6 @@ shape = SubResource("BoxShape3D_prjj8") [node name="TutoTrigger8" parent="Tutorial/Triggers" index="7" unique_id=36196488 instance=ExtResource("10_dkfm7")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 21.75, 28.25) -first_input_texture = ExtResource("14_xy0m1") -complex_input_text = "at enemy" tuto_text = "knockback" [node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger8" index="1" unique_id=929676345] diff --git a/maps/levels/tuto_sword_parry.tscn39615044470.tmp b/maps/levels/tuto_sword_parry.tscn39615044470.tmp new file mode 100644 index 00000000..1595fa14 --- /dev/null +++ b/maps/levels/tuto_sword_parry.tscn39615044470.tmp @@ -0,0 +1,739 @@ +[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"] +[ext_resource type="Script" uid="uid://jitubgv6judn" path="res://scenes/components/damage/RDamage.cs" id="9_ofbe2"] +[ext_resource type="PackedScene" uid="uid://b8aet6m4m2i83" path="res://scenes/tuto_trigger/TutoTrigger.tscn" id="10_dkfm7"] +[ext_resource type="Resource" uid="uid://c3e0ivgaxrsyb" path="res://inputs/base_mode/aim_down.tres" id="11_dkfm7"] +[ext_resource type="Resource" uid="uid://d2r0ur8k3cuu3" path="res://inputs/base_mode/dash.tres" id="12_nwk5u"] + +[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" + +[sub_resource type="Resource" id="Resource_invhv"] +script = ExtResource("7_hr4qv") +StartingHealth = 1.0 +metadata/_custom_type_script = "uid://baiapod3csndf" + +[sub_resource type="Resource" id="Resource_cgfmf"] +script = ExtResource("9_ofbe2") +DamageType = 2 +metadata/_custom_type_script = "uid://jitubgv6judn" + +[sub_resource type="Resource" id="Resource_05lnh"] +script = ExtResource("7_hr4qv") +StartingHealth = 100.0 +metadata/_custom_type_script = "uid://baiapod3csndf" + +[sub_resource type="Resource" id="Resource_t5o40"] +script = ExtResource("7_hr4qv") +StartingHealth = 100.0 +metadata/_custom_type_script = "uid://baiapod3csndf" + +[sub_resource type="BoxShape3D" id="BoxShape3D_xy0m1"] +size = Vector3(3, 3.75, 3) + +[sub_resource type="BoxShape3D" id="BoxShape3D_05lnh"] +size = Vector3(9, 11, 19) + +[sub_resource type="BoxShape3D" id="BoxShape3D_t5o40"] +size = Vector3(9, 2.25, 5) + +[sub_resource type="BoxShape3D" id="BoxShape3D_dkfm7"] +size = Vector3(5, 2.25, 3.75) + +[sub_resource type="BoxShape3D" id="BoxShape3D_nwk5u"] +size = Vector3(5.5, 4.5, 2) + +[sub_resource type="BoxShape3D" id="BoxShape3D_prjj8"] +size = Vector3(2, 3.25, 5.25) + +[sub_resource type="BoxShape3D" id="BoxShape3D_1opdv"] +size = Vector3(8.25, 3.25, 2.75) + +[node name="Main" unique_id=955321579 instance=ExtResource("1_8n6bu")] + +[node name="Player" parent="." index="7" unique_id=1309399929] +transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, -0.5, 0, -2.5) + +[node name="PlayerFellRespawn" parent="." index="8" unique_id=479136076] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 1.5, 0) + +[node name="Playground" type="Node3D" parent="." index="11" unique_id=2099606598] +transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -8.25, 13, 58.5) + +[node name="PlaytestArena" parent="Playground" index="0" unique_id=664535670 instance=ExtResource("2_wsc2c")] + +[node name="CSGBox3D108" type="CSGBox3D" parent="Playground/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="Playground" index="1" unique_id=1727473773] + +[node name="FixedDashthroughTarget" parent="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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, 5.5, -9) + +[node name="FixedDashthroughTarget6" parent="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground" index="2" unique_id=1518759273] + +[node name="FlyingEnemy" parent="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground" index="3" unique_id=1101330520] + +[node name="Enemy3" parent="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Playground/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="Enemy27" parent="Playground/GroundedEnemies" index="19" unique_id=854456486 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 20, 0, -44.836807) +Target = NodePath("../../../Player") +RHealth = SubResource("Resource_xy0m1") +RMovement = SubResource("Resource_nwk5u") + +[node name="Enemy10" parent="Playground/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) +Target = NodePath("../../../Player") +RHealth = SubResource("Resource_xy0m1") +RMovement = SubResource("Resource_nwk5u") + +[node name="Enemy8" parent="Playground/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) +Target = NodePath("../../../Player") +RHealth = SubResource("Resource_xy0m1") +RMovement = SubResource("Resource_nwk5u") + +[node name="Enemy9" parent="Playground/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) +Target = NodePath("../../../Player") +RHealth = SubResource("Resource_xy0m1") +RMovement = SubResource("Resource_nwk5u") + +[node name="Enemy5" parent="Playground/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) +Target = NodePath("../../../Player") +RHealth = SubResource("Resource_xy0m1") +RMovement = SubResource("Resource_nwk5u") + +[node name="Enemy6" parent="Playground/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) +Target = NodePath("../../../Player") +RHealth = SubResource("Resource_xy0m1") +RMovement = SubResource("Resource_nwk5u") + +[node name="Tutorial" type="CSGCombiner3D" parent="." index="12" unique_id=1168290062] +use_collision = true +collision_layer = 256 +collision_mask = 65553 + +[node name="FixedDashthroughTarget11" parent="Tutorial" index="0" unique_id=2053952229 instance=ExtResource("4_invhv")] +transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, -7.25, 20.5, -27.5) + +[node name="FixedDashthroughTarget13" parent="Tutorial" index="1" unique_id=1470128508 instance=ExtResource("4_invhv")] +transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 1.3647223, 23.75, -13.75) + +[node name="Enemy28" parent="Tutorial" index="2" unique_id=1765389924 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -5, 22, 16.5) +Target = NodePath("../../Player") +RHealth = SubResource("Resource_invhv") +RDamage = SubResource("Resource_cgfmf") +RMovement = SubResource("Resource_nwk5u") + +[node name="Enemy29" parent="Tutorial" index="3" unique_id=1071267369 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -10, 22, 28.75) +Target = NodePath("../../Player") +RHealth = SubResource("Resource_05lnh") +RDamage = SubResource("Resource_cgfmf") +RMovement = SubResource("Resource_nwk5u") + +[node name="Enemy30" parent="Tutorial" index="4" unique_id=1982933011 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0.25, 22, 28.75) +Target = NodePath("../../Player") +RHealth = SubResource("Resource_t5o40") +RDamage = SubResource("Resource_cgfmf") +RMovement = SubResource("Resource_nwk5u") + +[node name="Triggers" type="Node3D" parent="Tutorial" index="5" unique_id=1531131828] + +[node name="TutoTrigger5" parent="Tutorial/Triggers" index="0" unique_id=840713937 instance=ExtResource("10_dkfm7")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 23.25, -24.25) +input = ExtResource("11_dkfm7") +second_input = ExtResource("12_nwk5u") +tuto_text = "Dash to target" + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger5" index="1" unique_id=1895232009] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.75, 0.625, 1.75) +shape = SubResource("BoxShape3D_xy0m1") + +[node name="TutoTrigger" parent="Tutorial/Triggers" index="1" unique_id=1215265305 instance=ExtResource("10_dkfm7")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 0, -4.5) +tuto_text = "Aimed dash" + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger" index="1" unique_id=1774867326] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, -3.75, -6.75) +shape = SubResource("BoxShape3D_05lnh") + +[node name="TutoTrigger2" parent="Tutorial/Triggers" index="2" unique_id=386301715 instance=ExtResource("10_dkfm7")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.75, 0, -34.25) +tuto_text = "mantle after dash" + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger2" index="1" unique_id=525906537] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, 0.625, 1.25) +shape = SubResource("BoxShape3D_t5o40") + +[node name="TutoTrigger3" parent="Tutorial/Triggers" index="3" unique_id=460767120 instance=ExtResource("10_dkfm7")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.75, 7, -49) +tuto_text = "slows down time" + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger3" index="1" unique_id=768845413] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, 0.625, 0.875) +shape = SubResource("BoxShape3D_dkfm7") + +[node name="TutoTrigger4" parent="Tutorial/Triggers" index="4" unique_id=321542244 instance=ExtResource("10_dkfm7")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.5, 17.75, -27.5) +tuto_text = "dash through" + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger4" index="1" unique_id=1601250256] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 1.75, 0) +shape = SubResource("BoxShape3D_nwk5u") + +[node name="TutoTrigger6" parent="Tutorial/Triggers" index="5" unique_id=26112457 instance=ExtResource("10_dkfm7")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.75, 22.75, 11.25) +tuto_text = "dash through" + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger6" index="1" unique_id=1214410006] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.625, 1.75, -0.75) +shape = SubResource("BoxShape3D_prjj8") + +[node name="TutoTrigger7" parent="Tutorial/Triggers" index="6" unique_id=271532103 instance=ExtResource("10_dkfm7")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 22.75, 30.25) +tuto_text = "throw weapon" + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger7" index="1" unique_id=1932556219] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.875, 4) +shape = SubResource("BoxShape3D_prjj8") + +[node name="TutoTrigger8" parent="Tutorial/Triggers" index="7" unique_id=36196488 instance=ExtResource("10_dkfm7")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 21.75, 28.25) +tuto_text = "knockback" + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger8" index="1" unique_id=929676345] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.125, 1.875, 0.375) +shape = SubResource("BoxShape3D_1opdv") + +[node name="DashWithMantle" type="CSGCombiner3D" parent="Tutorial" index="6" unique_id=128667834] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0, -36.5) + +[node name="CSGBox3D109" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="0" unique_id=531736596] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -4.75, 4) +use_collision = true +size = Vector3(9, 8.5, 6) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D112" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="1" unique_id=565292599] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -6.25, 0) +use_collision = true +size = Vector3(9, 5.5, 2) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D113" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="2" unique_id=28433553] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -7.75, -2) +use_collision = true +size = Vector3(9, 2.5, 2) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D110" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="3" unique_id=731833071] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 6, -12.125) +use_collision = true +size = Vector3(5, 1, 4.75) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D115" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="4" unique_id=173458015] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 5.625, -14) +use_collision = true +size = Vector3(9, 29.25, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D116" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="5" unique_id=1750512788] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 7, -12.125) +use_collision = true +size = Vector3(1, 1, 4.75) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D117" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="6" unique_id=391729778] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, 7, -12.125) +use_collision = true +size = Vector3(1, 1, 4.75) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D134" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="7" unique_id=1136091363] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 21.5, 46.125) +use_collision = true +size = Vector3(5, 1, 4.75) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D135" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="8" unique_id=748140231] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 22.5, 46.125) +use_collision = true +size = Vector3(1, 1, 4.75) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D136" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="9" unique_id=436209430] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 22.5, 46.125) +use_collision = true +size = Vector3(1, 1, 4.75) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D137" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="10" unique_id=1930091014] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 22.5, 58) +use_collision = true +size = Vector3(1, 1, 11) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D138" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="11" unique_id=1299444131] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 22.5, 58) +use_collision = true +size = Vector3(1, 1, 11) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D139" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="12" unique_id=1708119368] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 22.5, 68.625) +use_collision = true +size = Vector3(1, 1, 3.25) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D140" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="13" unique_id=762102441] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 22.5, 68.625) +use_collision = true +size = Vector3(1, 1, 3.25) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D120" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="14" unique_id=1446497915] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 17, 6.75) +use_collision = true +size = Vector3(1, 2, 6.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D127" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="15" unique_id=1731176595] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 17, 10.5) +use_collision = true +size = Vector3(4, 2, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D119" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="16" unique_id=1284139577] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5, 0.625, 10.375) +use_collision = true +size = Vector3(3, 2.25, 6.75) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D114" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="17" unique_id=1204742131] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 16.5, 4.75) +use_collision = true +size = Vector3(12, 1, 2.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D118" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="18" unique_id=1985192046] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 23.125, 6.5) +use_collision = true +size = Vector3(18, 12.25, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D130" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="19" unique_id=1502907002] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.25, 23.125, 44) +use_collision = true +size = Vector3(7.5, 12.25, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D131" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="20" unique_id=632272709] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.25, 23.125, 43) +use_collision = true +size = Vector3(7.5, 12.25, 3) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D123" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="21" unique_id=696789507] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.375, 23.125, 10.5) +use_collision = true +size = Vector3(7.25, 12.25, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D125" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="22" unique_id=1937274848] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.375, 23.125, 7.5) +use_collision = true +size = Vector3(7.25, 12.25, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D132" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="23" unique_id=249644458] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 29.625, 25.25) +use_collision = true +size = Vector3(18, 0.75, 38.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D126" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="24" unique_id=1606556480] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.125, 18.25, 9) +use_collision = true +size = Vector3(7.75, 2.5, 4) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D128" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="25" unique_id=1927103381] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.375, 25.375, 9) +use_collision = true +size = Vector3(7.25, 7.75, 2) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D124" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="26" unique_id=1068505352] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 19.487345, 11.25) +use_collision = true +size = Vector3(3, 5, 8.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D129" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="27" unique_id=302301078] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.25, 19.487345, 38.625) +use_collision = true +size = Vector3(9.5, 5, 11.75) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D133" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="28" unique_id=672467040] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 21.487345, 58) +use_collision = true +size = Vector3(5, 1, 11) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D141" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="29" unique_id=1207463075] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 21.487345, 70.125) +use_collision = true +size = Vector3(5, 1, 6.25) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D121" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="30" unique_id=302433684] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.875, 23.125, 26.25) +use_collision = true +size = Vector3(13.75, 12.25, 30.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D122" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="31" unique_id=1125662345] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, 23.125, 25.25) +use_collision = true +size = Vector3(1, 12.25, 36.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D111" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="32" unique_id=923535141] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -11.125, -3.75) +use_collision = true +size = Vector3(9, 4.25, 21.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D142" type="CSGBox3D" parent="Tutorial" index="7" unique_id=886061699] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 22, 34) +use_collision = true +size = Vector3(2, 2, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D145" type="CSGBox3D" parent="Tutorial" index="8" unique_id=1440927327] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 12.25, 34) +use_collision = true +size = Vector3(12, 17.5, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D139" type="CSGBox3D" parent="Tutorial" index="9" unique_id=1561729125] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 21.5, 28.75) +use_collision = true +size = Vector3(12, 1, 3.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D146" type="CSGBox3D" parent="Tutorial" index="10" unique_id=1614862969] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.75, 23, 55.75) +use_collision = true +size = Vector3(19.5, 1, 3.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D147" type="CSGBox3D" parent="Tutorial" index="11" unique_id=1320459108] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.875, 23, 67.25) +use_collision = true +size = Vector3(3.25, 1, 19.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D140" type="CSGBox3D" parent="Tutorial" index="12" unique_id=124463390] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 25.125, 34) +use_collision = true +size = Vector3(5, 8.25, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D141" type="CSGBox3D" parent="Tutorial" index="13" unique_id=164888540] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 25.125, 34) +use_collision = true +size = Vector3(5, 8.25, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D114" type="CSGBox3D" parent="Tutorial" index="14" unique_id=1217279859] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -4.75, 0) +use_collision = true +size = Vector3(9, 8.5, 14) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D116" type="CSGBox3D" parent="Tutorial" index="15" unique_id=720911926] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 9.375, -11.75) +use_collision = true +size = Vector3(18, 15.25, 37.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D115" type="CSGBox3D" parent="Tutorial" index="16" unique_id=995233474] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, -1, -26.125) +use_collision = true +size = Vector3(18, 1, 6.75) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D119" type="CSGBox3D" parent="Tutorial" index="17" unique_id=1412582714] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.875, -3.75, -30) +use_collision = true +size = Vector3(11.75, 11, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D121" type="CSGBox3D" parent="Tutorial" index="18" unique_id=697302898] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, 0.125, -30) +use_collision = true +size = Vector3(3, 3.25, 1) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D117" type="CSGBox3D" parent="Tutorial" index="19" unique_id=603171965] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -6.25, -8) +use_collision = true +size = Vector3(9, 5.5, 2) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D123" type="CSGBox3D" parent="Tutorial" index="20" unique_id=765166179] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 0.625, 6) +use_collision = true +size = Vector3(9, 2.25, 2) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D118" type="CSGBox3D" parent="Tutorial" index="21" unique_id=1950738925] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -7.75, -10) +use_collision = true +size = Vector3(9, 2.5, 2) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D120" type="CSGBox3D" parent="Tutorial" index="22" unique_id=1024529143] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -21.75, -11.75) +use_collision = true +size = Vector3(9, 25.5, 37.5) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D122" type="CSGBox3D" parent="Tutorial" index="23" unique_id=1261455320] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.5, 16.5, -28.5) +use_collision = true +size = Vector3(3, 1, 4) +material = ExtResource("3_wsc2c") + +[node name="CSGBox3D143" type="CSGBox3D" parent="Tutorial" index="24" unique_id=1090375546] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 27.625, 34) +use_collision = true +size = Vector3(2, 3.25, 1) +material = ExtResource("3_wsc2c") diff --git a/project.godot b/project.godot index c2c6c7e0..50e56ae6 100644 --- a/project.godot +++ b/project.godot @@ -28,7 +28,8 @@ ProjectMusicController="*uid://r5t485lr3p7t" ProjectUISoundController="*uid://cc37235kj4384" Shaker="*uid://c7flmumgr5w3u" CsgToolkitAutoload="*uid://w8ad8q4lneis" -"Forge Bootstrap"="uid://ba8fquhtwu5mu" +"Forge Bootstrap"="*uid://ba8fquhtwu5mu" +GlobalHelpers="*uid://dqcm83o8e66a2" [display] diff --git a/scenes/player_controller/components/head/head_system.tscn b/scenes/player_controller/components/head/head_system.tscn index 7acdf3e4..6b2ccc44 100644 --- a/scenes/player_controller/components/head/head_system.tscn +++ b/scenes/player_controller/components/head/head_system.tscn @@ -372,7 +372,7 @@ tracks/3/keys = { } tracks/4/type = "method" tracks/4/imported = false -tracks/4/enabled = true +tracks/4/enabled = false tracks/4/path = NodePath("../..") tracks/4/interp = 1 tracks/4/loop_wrap = true @@ -579,7 +579,7 @@ tracks/3/keys = { } tracks/4/type = "method" tracks/4/imported = false -tracks/4/enabled = true +tracks/4/enabled = false tracks/4/path = NodePath("../..") tracks/4/interp = 1 tracks/4/loop_wrap = true diff --git a/scenes/player_controller/scripts/PlayerController.cs b/scenes/player_controller/scripts/PlayerController.cs index 5cac2901..740dd899 100644 --- a/scenes/player_controller/scripts/PlayerController.cs +++ b/scenes/player_controller/scripts/PlayerController.cs @@ -2322,6 +2322,9 @@ public partial class PlayerController : CharacterBody3D, private PhysicsDirectSpaceState3D _spaceState; public void StartDashAction(bool isParry) { + if (isParry) HeadSystem.OnParry(); + else HeadSystem.OnHit(); + var streamName = isParry ? "parry" : "attacks"; _audioStream!.SwitchToClipByName(streamName); IsInvincible = true; diff --git a/scenes/tuto_trigger/TutoTrigger.tscn b/scenes/tuto_trigger/TutoTrigger.tscn index c2323f7e..4d907ab8 100644 --- a/scenes/tuto_trigger/TutoTrigger.tscn +++ b/scenes/tuto_trigger/TutoTrigger.tscn @@ -1,6 +1,7 @@ [gd_scene format=3 uid="uid://b8aet6m4m2i83"] [ext_resource type="Script" uid="uid://bnqhh6b5iusam" path="res://scenes/tuto_trigger/tuto_trigger.gd" id="1_w8mpv"] +[ext_resource type="Texture2D" uid="uid://dl73t0kxkaxp0" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_a_outline.svg" id="2_w8mpv"] [sub_resource type="LabelSettings" id="LabelSettings_4vbx1"] font_size = 30 @@ -11,9 +12,9 @@ font_size = 30 [node name="TutoTrigger" type="Area3D" unique_id=840713937] collision_layer = 0 script = ExtResource("1_w8mpv") +tuto_text = null [node name="Control" type="Control" parent="." unique_id=1871566632] -visible = false layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -44,16 +45,19 @@ theme_override_constants/separation = 20 [node name="MultipleInputsContainer" type="HBoxContainer" parent="Control/PanelContainer/MarginContainer/HBoxContainer" unique_id=487996484] unique_name_in_owner = true +visible = false layout_mode = 2 theme_override_constants/separation = 0 [node name="FirstInput" type="TextureRect" parent="Control/PanelContainer/MarginContainer/HBoxContainer/MultipleInputsContainer" unique_id=490808492] unique_name_in_owner = true layout_mode = 2 +texture = ExtResource("2_w8mpv") [node name="ComplexInputLabel" type="Label" parent="Control/PanelContainer/MarginContainer/HBoxContainer/MultipleInputsContainer" unique_id=103193503] unique_name_in_owner = true layout_mode = 2 +text = "while airborne" label_settings = SubResource("LabelSettings_4vbx1") [node name="SecondInput" type="TextureRect" parent="Control/PanelContainer/MarginContainer/HBoxContainer/MultipleInputsContainer" unique_id=523697392] @@ -65,5 +69,14 @@ unique_name_in_owner = true layout_mode = 2 label_settings = SubResource("LabelSettings_g04tr") +[node name="InputPrompt" type="RichTextLabel" parent="Control/PanelContainer/MarginContainer/HBoxContainer" unique_id=683811955] +unique_name_in_owner = true +custom_minimum_size = Vector2(256, 0) +layout_mode = 2 +text = "hello there" +fit_content = true +horizontal_alignment = 1 +vertical_alignment = 1 + [connection signal="body_entered" from="." to="." method="_on_body_entered"] [connection signal="body_exited" from="." to="." method="_on_body_exited"] diff --git a/scenes/tuto_trigger/tuto_trigger.gd b/scenes/tuto_trigger/tuto_trigger.gd index a9f9d664..f1909408 100644 --- a/scenes/tuto_trigger/tuto_trigger.gd +++ b/scenes/tuto_trigger/tuto_trigger.gd @@ -1,38 +1,35 @@ extends Area3D class_name TutoTrigger -@onready var control: Control = $Control - -@onready var multiple_inputs_container: HBoxContainer = %MultipleInputsContainer -@onready var first_input: TextureRect = %FirstInput -@onready var complex_input_label: Label = %ComplexInputLabel -@onready var second_input: TextureRect = %SecondInput -@onready var tuto_label: Label = %TutoText - - -@export var first_input_texture: CompressedTexture2D -@export var second_input_texture: CompressedTexture2D -@export var complex_input_text: String +@export var input: GUIDEAction +@export var second_input: GUIDEAction = null @export var tuto_text: String +@onready var input_prompt: RichTextLabel = %InputPrompt +@onready var control: Control = $Control + +var current_input_method = GlobalHelpers.GamepadDetectionEvent.GAMEPAD func _ready() -> void: - tuto_label.text = tuto_text - first_input.texture = first_input_texture - second_input.texture = second_input_texture - complex_input_label.text = complex_input_text + control.visible = false + _on_input_mappings_changed() - if second_input_texture != null: - complex_input_label.text = "+" - - if second_input_texture == null and complex_input_text.is_empty(): - complex_input_label.visible = false - second_input.visible = false +func _input(event: InputEvent) -> void: + var event_gamepad = GlobalHelpers.is_event_gamepad(event) + if event_gamepad == GlobalHelpers.GamepadDetectionEvent.IRRELEVANT: + return + if current_input_method == event_gamepad: + return + + current_input_method = event_gamepad + _on_input_mappings_changed() + +func _on_input_mappings_changed(): + pass func _on_body_entered(body: Node3D) -> void: control.visible = true - func _on_body_exited(body: Node3D) -> void: control.visible = false diff --git a/tools/global_helpers.gd b/tools/global_helpers.gd new file mode 100644 index 00000000..7afa4c12 --- /dev/null +++ b/tools/global_helpers.gd @@ -0,0 +1,17 @@ +extends Node + +enum GamepadDetectionEvent { + GAMEPAD, + KEYBOARD, + IRRELEVANT +} + +static func is_event_gamepad(event: InputEvent) -> GamepadDetectionEvent: + if event is InputEventKey || event is InputEventMouseButton: + return GamepadDetectionEvent.KEYBOARD + elif event is InputEventJoypadMotion: + if abs(event.axis_value) > 0.5: + return GamepadDetectionEvent.GAMEPAD + elif event is InputEventJoypadButton: + return GamepadDetectionEvent.GAMEPAD + return GamepadDetectionEvent.IRRELEVANT diff --git a/tools/global_helpers.gd.uid b/tools/global_helpers.gd.uid new file mode 100644 index 00000000..cde00df1 --- /dev/null +++ b/tools/global_helpers.gd.uid @@ -0,0 +1 @@ +uid://dqcm83o8e66a2