Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| aaa9b102c1 | |||
| cb348667f5 | |||
| 8d23a95c68 | |||
| a9809abc27 | |||
| db65c02e75 |
@@ -22,7 +22,7 @@ metadata/_custom_type_script = "uid://baiapod3csndf"
|
|||||||
[node name="Main" unique_id=955321579 instance=ExtResource("1_8n6bu")]
|
[node name="Main" unique_id=955321579 instance=ExtResource("1_8n6bu")]
|
||||||
|
|
||||||
[node name="Player" parent="." index="6" unique_id=1309399929]
|
[node name="Player" parent="." index="6" unique_id=1309399929]
|
||||||
transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, 59.5, 0, 0)
|
transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, -0.5, 0, 0)
|
||||||
|
|
||||||
[node name="Playground" type="Node3D" parent="." index="7" unique_id=2099606598]
|
[node name="Playground" type="Node3D" parent="." index="7" unique_id=2099606598]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.5, 0, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.5, 0, 0)
|
||||||
@@ -245,31 +245,37 @@ Target = NodePath("../../../Player")
|
|||||||
RHealth = SubResource("Resource_xy0m1")
|
RHealth = SubResource("Resource_xy0m1")
|
||||||
RMovement = SubResource("Resource_nwk5u")
|
RMovement = SubResource("Resource_nwk5u")
|
||||||
|
|
||||||
[node name="Enemy10" parent="Playground/GroundedEnemies" index="19" unique_id=836898496 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[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)
|
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="Playground/GroundedEnemies" index="20" unique_id=1015624071 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[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)
|
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="Playground/GroundedEnemies" index="21" unique_id=827865590 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[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)
|
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="Playground/GroundedEnemies" index="22" unique_id=1267116862 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[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)
|
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="Playground/GroundedEnemies" index="23" unique_id=1147823180 node_paths=PackedStringArray("Target") instance=ExtResource("5_ofbe2")]
|
[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)
|
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")
|
||||||
@@ -280,20 +286,119 @@ use_collision = true
|
|||||||
collision_layer = 256
|
collision_layer = 256
|
||||||
collision_mask = 65553
|
collision_mask = 65553
|
||||||
|
|
||||||
[node name="CSGBox3D109" type="CSGBox3D" parent="Tutorial" index="0" unique_id=531736596]
|
[node name="DashWithMantle" type="CSGCombiner3D" parent="Tutorial" index="0" unique_id=128667834]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4.75, -2.25)
|
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
|
use_collision = true
|
||||||
size = Vector3(19.5, 8.5, 14)
|
size = Vector3(9, 8.5, 6)
|
||||||
material = ExtResource("3_wsc2c")
|
material = ExtResource("3_wsc2c")
|
||||||
|
|
||||||
[node name="CSGBox3D110" type="CSGBox3D" parent="Tutorial" index="1" unique_id=731833071]
|
[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, 4.5, -29.25)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -6.25, 0)
|
||||||
use_collision = true
|
use_collision = true
|
||||||
size = Vector3(19.5, 27, 14)
|
size = Vector3(9, 5.5, 2)
|
||||||
material = ExtResource("3_wsc2c")
|
material = ExtResource("3_wsc2c")
|
||||||
|
|
||||||
[node name="CSGBox3D111" type="CSGBox3D" parent="Tutorial" index="2" unique_id=923535141]
|
[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, -21.75, -18.75)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -7.75, -2)
|
||||||
use_collision = true
|
use_collision = true
|
||||||
size = Vector3(19.5, 25.5, 35)
|
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="CSGBox3D119" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="7" unique_id=1284139577]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5, 0.625, 10)
|
||||||
|
use_collision = true
|
||||||
|
size = Vector3(3, 2.25, 6)
|
||||||
|
material = ExtResource("3_wsc2c")
|
||||||
|
|
||||||
|
[node name="CSGBox3D114" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="8" 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="CSGBox3D111" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="9" 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="CSGBox3D114" type="CSGBox3D" parent="Tutorial" index="1" 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="2" unique_id=720911926]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 12.75, -11.75)
|
||||||
|
use_collision = true
|
||||||
|
size = Vector3(18, 22, 37.5)
|
||||||
|
material = ExtResource("3_wsc2c")
|
||||||
|
|
||||||
|
[node name="CSGBox3D115" type="CSGBox3D" parent="Tutorial" index="3" unique_id=995233474]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, -1, -26.5)
|
||||||
|
use_collision = true
|
||||||
|
size = Vector3(18, 1, 6)
|
||||||
|
material = ExtResource("3_wsc2c")
|
||||||
|
|
||||||
|
[node name="CSGBox3D119" type="CSGBox3D" parent="Tutorial" index="4" 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="5" 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="6" 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="CSGBox3D118" type="CSGBox3D" parent="Tutorial" index="7" 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="8" unique_id=1024529143]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -21.75, -11.625)
|
||||||
|
use_collision = true
|
||||||
|
size = Vector3(9, 25.5, 37.75)
|
||||||
|
material = ExtResource("3_wsc2c")
|
||||||
|
|
||||||
|
[node name="CSGBox3D122" type="CSGBox3D" parent="Tutorial" index="9" unique_id=1261455320]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.5, 16.5, -27.5)
|
||||||
|
use_collision = true
|
||||||
|
size = Vector3(3, 1, 6)
|
||||||
material = ExtResource("3_wsc2c")
|
material = ExtResource("3_wsc2c")
|
||||||
|
|||||||
@@ -77,6 +77,9 @@ radius = 0.45
|
|||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_q14ux"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_q14ux"]
|
||||||
radius = 1.0
|
radius = 1.0
|
||||||
|
|
||||||
|
[sub_resource type="SphereShape3D" id="SphereShape3D_u8rdp"]
|
||||||
|
radius = 1.5
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nodcl"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nodcl"]
|
||||||
transparency = 1
|
transparency = 1
|
||||||
albedo_color = Color(0, 0.627451, 0.6313726, 0.49019608)
|
albedo_color = Color(0, 0.627451, 0.6313726, 0.49019608)
|
||||||
@@ -328,6 +331,14 @@ gravity_scale = 3.0
|
|||||||
ThrowForce = 300.0
|
ThrowForce = 300.0
|
||||||
StraightThrowDuration = 0.05
|
StraightThrowDuration = 0.05
|
||||||
|
|
||||||
|
[node name="SwordPickup" type="Area3D" parent="." unique_id=1990087390]
|
||||||
|
collision_layer = 0
|
||||||
|
collision_mask = 65536
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="SwordPickup" unique_id=547241277]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
shape = SubResource("SphereShape3D_u8rdp")
|
||||||
|
|
||||||
[node name="DashIndicator" type="Node3D" parent="." unique_id=1279477982]
|
[node name="DashIndicator" type="Node3D" parent="." unique_id=1279477982]
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
@@ -384,6 +395,10 @@ shape = SubResource("SphereShape3D_ue7xq")
|
|||||||
[node name="InvincibilityTime" type="Timer" parent="." unique_id=1244463585]
|
[node name="InvincibilityTime" type="Timer" parent="." unique_id=1244463585]
|
||||||
one_shot = true
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="WeaponThrowUncatchable" type="Timer" parent="." unique_id=2141801011]
|
||||||
|
wait_time = 0.2
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
[node name="AttackCooldown" type="Timer" parent="." unique_id=1620959518]
|
[node name="AttackCooldown" type="Timer" parent="." unique_id=1620959518]
|
||||||
wait_time = 0.3
|
wait_time = 0.3
|
||||||
one_shot = true
|
one_shot = true
|
||||||
@@ -400,7 +415,7 @@ wait_time = 2.0
|
|||||||
one_shot = true
|
one_shot = true
|
||||||
|
|
||||||
[node name="TimeScaleAimInAir" type="Timer" parent="." unique_id=1346687662]
|
[node name="TimeScaleAimInAir" type="Timer" parent="." unique_id=1346687662]
|
||||||
wait_time = 2.0
|
wait_time = 5.0
|
||||||
one_shot = true
|
one_shot = true
|
||||||
ignore_time_scale = true
|
ignore_time_scale = true
|
||||||
|
|
||||||
@@ -409,6 +424,7 @@ offset_left = 1524.0
|
|||||||
offset_top = 1.0
|
offset_top = 1.0
|
||||||
offset_right = -8.0
|
offset_right = -8.0
|
||||||
offset_bottom = 1.0
|
offset_bottom = 1.0
|
||||||
|
enabled = false
|
||||||
initial_node_to_watch = NodePath("../StateChart")
|
initial_node_to_watch = NodePath("../StateChart")
|
||||||
|
|
||||||
[node name="UI" type="Control" parent="." unique_id=856532641]
|
[node name="UI" type="Control" parent="." unique_id=856532641]
|
||||||
@@ -1158,3 +1174,4 @@ delay_in_seconds = "0.0"
|
|||||||
[connection signal="input_slide_ended" from="InputController" to="." method="OnInputSlideEnded"]
|
[connection signal="input_slide_ended" from="InputController" to="." method="OnInputSlideEnded"]
|
||||||
[connection signal="input_slide_started" from="InputController" to="." method="OnInputSlideStarted"]
|
[connection signal="input_slide_started" from="InputController" to="." method="OnInputSlideStarted"]
|
||||||
[connection signal="WallDetected" from="WallHugSystem" to="." method="OnWallDetected"]
|
[connection signal="WallDetected" from="WallHugSystem" to="." method="OnWallDetected"]
|
||||||
|
[connection signal="body_entered" from="SwordPickup" to="." method="WalkOnWeapon"]
|
||||||
|
|||||||
@@ -317,6 +317,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
|
|
||||||
// Timers
|
// Timers
|
||||||
private Timer _timeScaleAimInAirTimer;
|
private Timer _timeScaleAimInAirTimer;
|
||||||
|
private Timer _weaponThrowUncatchableTimer;
|
||||||
private Timer _simpleDashCooldownTimer;
|
private Timer _simpleDashCooldownTimer;
|
||||||
private Timer _airborneDashCooldownTimer;
|
private Timer _airborneDashCooldownTimer;
|
||||||
private Timer _powerCooldownTimer;
|
private Timer _powerCooldownTimer;
|
||||||
@@ -516,6 +517,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
|
|
||||||
// State timers
|
// State timers
|
||||||
_powerCooldownTimer = GetNode<Timer>("PowerCooldown");
|
_powerCooldownTimer = GetNode<Timer>("PowerCooldown");
|
||||||
|
_weaponThrowUncatchableTimer = GetNode<Timer>("WeaponThrowUncatchable");
|
||||||
_timeScaleAimInAirTimer = GetNode<Timer>("TimeScaleAimInAir");
|
_timeScaleAimInAirTimer = GetNode<Timer>("TimeScaleAimInAir");
|
||||||
_simpleDashCooldownTimer = GetNode<Timer>("DashCooldown");
|
_simpleDashCooldownTimer = GetNode<Timer>("DashCooldown");
|
||||||
_airborneDashCooldownTimer = GetNode<Timer>("AirborneDashCooldown");
|
_airborneDashCooldownTimer = GetNode<Timer>("AirborneDashCooldown");
|
||||||
@@ -711,11 +713,11 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
{
|
{
|
||||||
_isWallJumpAvailable = true;
|
_isWallJumpAvailable = true;
|
||||||
_canDashAirborne = true;
|
_canDashAirborne = true;
|
||||||
|
ResetTimeScale();
|
||||||
|
|
||||||
if (_simpleDashCooldownTimer.IsStopped())
|
if (_simpleDashCooldownTimer.IsStopped())
|
||||||
_simpleDashCooldownTimer.Start();
|
_simpleDashCooldownTimer.Start();
|
||||||
|
|
||||||
|
|
||||||
if (_bufferedAction == BufferedActions.MantleJump)
|
if (_bufferedAction == BufferedActions.MantleJump)
|
||||||
{
|
{
|
||||||
_playerState.SendEvent("jump");
|
_playerState.SendEvent("jump");
|
||||||
@@ -1825,7 +1827,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
public void ReduceTimeScaleWhileAiming()
|
public void ReduceTimeScaleWhileAiming()
|
||||||
{
|
{
|
||||||
Engine.SetTimeScale(TimeScaleAimInAir);
|
Engine.SetTimeScale(TimeScaleAimInAir);
|
||||||
_timeScaleAimInAirTimer.Start();
|
// _timeScaleAimInAirTimer.Start();
|
||||||
}
|
}
|
||||||
public void ResetTimeScale()
|
public void ResetTimeScale()
|
||||||
{
|
{
|
||||||
@@ -1892,7 +1894,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
var plannedDashLocation = targetable.GetTargetGlobalPosition() + Vector3.Down*_playerHeight/2;
|
var plannedDashLocation = targetable.GetTargetGlobalPosition() + Vector3.Down*_playerHeight/2;
|
||||||
travel = plannedDashLocation - GlobalPosition;
|
travel = plannedDashLocation - GlobalPosition;
|
||||||
_dashDirection = travel.Normalized();
|
_dashDirection = travel.Normalized();
|
||||||
var postDashLocation = plannedDashLocation + 2*_dashDirection;
|
var postDashLocation = plannedDashLocation + _dashDirection;
|
||||||
var wallBehindQuery = PhysicsRayQueryParameters3D.Create(GlobalPosition + Vector3.Up*HeadSystem.Position.Y, postDashLocation, GroundDetector.CollisionMask);
|
var wallBehindQuery = PhysicsRayQueryParameters3D.Create(GlobalPosition + Vector3.Up*HeadSystem.Position.Y, postDashLocation, GroundDetector.CollisionMask);
|
||||||
var wallBehindResult = _spaceState.IntersectRay(wallBehindQuery);
|
var wallBehindResult = _spaceState.IntersectRay(wallBehindQuery);
|
||||||
shouldRebound = wallBehindResult.Count > 0;
|
shouldRebound = wallBehindResult.Count > 0;
|
||||||
@@ -1960,6 +1962,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
public void ThrowWeapon()
|
public void ThrowWeapon()
|
||||||
{
|
{
|
||||||
_audioStream.SwitchToClipByName("attacks");
|
_audioStream.SwitchToClipByName("attacks");
|
||||||
|
_weaponThrowUncatchableTimer.Start();
|
||||||
|
|
||||||
_playerState.SendEvent("cancel_aim");
|
_playerState.SendEvent("cancel_aim");
|
||||||
RemoveChildNode(WeaponSystem);
|
RemoveChildNode(WeaponSystem);
|
||||||
@@ -1980,6 +1983,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
HeadSystem.ShowWeapon();
|
HeadSystem.ShowWeapon();
|
||||||
WeaponSystem.ResetWeapon();
|
WeaponSystem.ResetWeapon();
|
||||||
RecoverChildNode(WeaponSystem);
|
RecoverChildNode(WeaponSystem);
|
||||||
|
_audioStream.SwitchToClipByName("parry");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DashToFlyingWeapon()
|
public void DashToFlyingWeapon()
|
||||||
@@ -2061,6 +2065,16 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
|
|
||||||
_playerState.SendEvent(resultingEvent);
|
_playerState.SendEvent(resultingEvent);
|
||||||
}
|
}
|
||||||
|
public void WalkOnWeapon(Node3D other)
|
||||||
|
{
|
||||||
|
if (_weaponDash.Active) return; // Don't recover weapon if already dashing to it
|
||||||
|
if (WeaponSystem.InHandState.Active) return; // Don't recover weapon if in hand
|
||||||
|
if (!_weaponThrowUncatchableTimer.IsStopped()) return; // Don't get weapon back if timer is still running
|
||||||
|
if (WeaponSystem.PlantObject is ITargetable) return; // Don't recover weapon planted in target
|
||||||
|
|
||||||
|
RecoverWeapon();
|
||||||
|
WeaponSystem.PlantObject = null;
|
||||||
|
}
|
||||||
|
|
||||||
public void ManageAttackedEnemyPostDash(Node enemy)
|
public void ManageAttackedEnemyPostDash(Node enemy)
|
||||||
{
|
{
|
||||||
@@ -2229,7 +2243,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
var travel = plannedDashLocation - GlobalPosition;
|
var travel = plannedDashLocation - GlobalPosition;
|
||||||
_dashDirection = travel.Normalized();
|
_dashDirection = travel.Normalized();
|
||||||
|
|
||||||
var postDashLocation = plannedDashLocation + 2*_dashDirection;
|
var postDashLocation = plannedDashLocation + _dashDirection;
|
||||||
var wallBehindQuery = PhysicsRayQueryParameters3D.Create(GlobalPosition + Vector3.Up*HeadSystem.Position.Y, postDashLocation, GroundDetector.CollisionMask);
|
var wallBehindQuery = PhysicsRayQueryParameters3D.Create(GlobalPosition + Vector3.Up*HeadSystem.Position.Y, postDashLocation, GroundDetector.CollisionMask);
|
||||||
var wallBehindResult = _spaceState.IntersectRay(wallBehindQuery);
|
var wallBehindResult = _spaceState.IntersectRay(wallBehindQuery);
|
||||||
var shouldRebound = wallBehindResult.Count > 0;
|
var shouldRebound = wallBehindResult.Count > 0;
|
||||||
@@ -2293,7 +2307,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
|
|
||||||
if (_onWallHanging.Active) return;
|
if (_onWallHanging.Active) return;
|
||||||
|
|
||||||
if (_aiming.Active && WeaponSystem.InHandState.Active)
|
if (_aiming.Active && WeaponSystem.InHandState.Active && CanPerformEmpoweredAction())
|
||||||
{
|
{
|
||||||
ThrowWeapon();
|
ThrowWeapon();
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user