rename Attack to AttackHitbox for clarity
This commit is contained in:
+11
-11
@@ -8,7 +8,7 @@
|
|||||||
[ext_resource type="Script" path="res://scripts/states/run.gd" id="6_fllo7"]
|
[ext_resource type="Script" path="res://scripts/states/run.gd" id="6_fllo7"]
|
||||||
[ext_resource type="Script" path="res://scripts/states/fall.gd" id="7_0e04j"]
|
[ext_resource type="Script" path="res://scripts/states/fall.gd" id="7_0e04j"]
|
||||||
[ext_resource type="Script" path="res://scripts/states/dead.gd" id="9_8je4a"]
|
[ext_resource type="Script" path="res://scripts/states/dead.gd" id="9_8je4a"]
|
||||||
[ext_resource type="Script" path="res://scripts/states/lunge.gd" id="9_nqccg"]
|
[ext_resource type="Script" path="res://scripts/states/attack.gd" id="9_nqccg"]
|
||||||
|
|
||||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_ukf45"]
|
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_ukf45"]
|
||||||
properties/0/path = NodePath(".:player_id")
|
properties/0/path = NodePath(".:player_id")
|
||||||
@@ -20,10 +20,10 @@ properties/1/replication_mode = 1
|
|||||||
properties/2/path = NodePath(".:server_rotation")
|
properties/2/path = NodePath(".:server_rotation")
|
||||||
properties/2/spawn = true
|
properties/2/spawn = true
|
||||||
properties/2/replication_mode = 1
|
properties/2/replication_mode = 1
|
||||||
properties/3/path = NodePath("RotationBase/Attack:visible")
|
properties/3/path = NodePath(".:dead")
|
||||||
properties/3/spawn = true
|
properties/3/spawn = true
|
||||||
properties/3/replication_mode = 1
|
properties/3/replication_mode = 1
|
||||||
properties/4/path = NodePath(".:dead")
|
properties/4/path = NodePath("RotationBase/AttackHitbox:visible")
|
||||||
properties/4/spawn = true
|
properties/4/spawn = true
|
||||||
properties/4/replication_mode = 1
|
properties/4/replication_mode = 1
|
||||||
|
|
||||||
@@ -111,27 +111,27 @@ mesh = SubResource("SphereMesh_tudvv")
|
|||||||
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.1, 0.6, -0.25)
|
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.1, 0.6, -0.25)
|
||||||
mesh = SubResource("SphereMesh_1gltg")
|
mesh = SubResource("SphereMesh_1gltg")
|
||||||
|
|
||||||
[node name="Attack" type="Area3D" parent="RotationBase"]
|
[node name="AttackHitbox" type="Area3D" parent="RotationBase"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -0.75)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -0.75)
|
||||||
visible = false
|
visible = false
|
||||||
monitorable = false
|
monitorable = false
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="RotationBase/Attack"]
|
[node name="AttackCollider" type="CollisionShape3D" parent="RotationBase/AttackHitbox"]
|
||||||
shape = SubResource("BoxShape3D_rsamr")
|
shape = SubResource("BoxShape3D_rsamr")
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="RotationBase/Attack"]
|
[node name="AttackVisualBox" type="MeshInstance3D" parent="RotationBase/AttackHitbox"]
|
||||||
transparency = 0.8
|
transparency = 0.8
|
||||||
mesh = SubResource("BoxMesh_phaav")
|
mesh = SubResource("BoxMesh_phaav")
|
||||||
surface_material_override/0 = SubResource("StandardMaterial3D_ssauw")
|
surface_material_override/0 = SubResource("StandardMaterial3D_ssauw")
|
||||||
|
|
||||||
[node name="AttackTimer" type="Timer" parent="RotationBase/Attack"]
|
[node name="AttackTimer" type="Timer" parent="RotationBase/AttackHitbox"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
process_callback = 0
|
process_callback = 0
|
||||||
wait_time = 0.35
|
wait_time = 0.35
|
||||||
one_shot = true
|
one_shot = true
|
||||||
|
|
||||||
[node name="AttackCooldown" type="Timer" parent="RotationBase/Attack"]
|
[node name="AttackCooldown" type="Timer" parent="RotationBase/AttackHitbox"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
process_callback = 0
|
process_callback = 0
|
||||||
wait_time = 2.0
|
wait_time = 2.0
|
||||||
@@ -170,10 +170,10 @@ script = ExtResource("7_0e04j")
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
script = ExtResource("9_8je4a")
|
script = ExtResource("9_8je4a")
|
||||||
|
|
||||||
[node name="Lunge" type="Node" parent="StateMachine"]
|
[node name="Attack" type="Node" parent="StateMachine"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
script = ExtResource("9_nqccg")
|
script = ExtResource("9_nqccg")
|
||||||
|
|
||||||
[connection signal="delta_synchronized" from="Sync" to="." method="_on_sync_delta_synchronized"]
|
[connection signal="delta_synchronized" from="Sync" to="." method="_on_sync_delta_synchronized"]
|
||||||
[connection signal="body_entered" from="RotationBase/Attack" to="StateMachine/Lunge" method="_on_attack_body_entered"]
|
[connection signal="body_entered" from="RotationBase/AttackHitbox" to="StateMachine/Attack" method="_on_attack_body_entered"]
|
||||||
[connection signal="body_exited" from="RotationBase/Attack" to="StateMachine/Lunge" method="_on_attack_body_exited"]
|
[connection signal="body_exited" from="RotationBase/AttackHitbox" to="StateMachine/Attack" method="_on_attack_body_exited"]
|
||||||
|
|||||||
+30
-5
@@ -1,15 +1,14 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://d22gcvp7p2sfr"]
|
[gd_scene load_steps=10 format=3 uid="uid://d22gcvp7p2sfr"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/in_game.gd" id="1_0lma2"]
|
[ext_resource type="Script" path="res://scripts/in_game.gd" id="1_0lma2"]
|
||||||
[ext_resource type="PlaneMesh" uid="uid://dwpvym2kc4gd8" path="res://meshes/ground.tres" id="1_7j0qh"]
|
[ext_resource type="PlaneMesh" uid="uid://dwpvym2kc4gd8" path="res://meshes/ground.tres" id="1_7j0qh"]
|
||||||
[ext_resource type="Material" uid="uid://chp3rogcgumau" path="res://materials/ground.tres" id="2_f8uto"]
|
[ext_resource type="Material" uid="uid://chp3rogcgumau" path="res://materials/ground.tres" id="2_f8uto"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cw0ho53ruh87m" path="res://scenes/house.tscn" id="4_38bom"]
|
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_2c67a"]
|
[sub_resource type="Environment" id="Environment_2c67a"]
|
||||||
background_mode = 1
|
background_mode = 1
|
||||||
ambient_light_source = 2
|
ambient_light_source = 2
|
||||||
ambient_light_color = Color(1, 1, 1, 1)
|
ambient_light_color = Color(1, 1, 1, 1)
|
||||||
ambient_light_energy = 0.01
|
ambient_light_energy = 0.15
|
||||||
tonemap_mode = 3
|
tonemap_mode = 3
|
||||||
sdfgi_read_sky_light = false
|
sdfgi_read_sky_light = false
|
||||||
glow_enabled = true
|
glow_enabled = true
|
||||||
@@ -21,12 +20,23 @@ volumetric_fog_emission_energy = 0.25
|
|||||||
|
|
||||||
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_1l61b"]
|
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_1l61b"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_kcty4"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_6koow"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_y3ciy"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_2wvq0"]
|
||||||
|
|
||||||
[node name="InGame" type="Node3D"]
|
[node name="InGame" type="Node3D"]
|
||||||
script = ExtResource("1_0lma2")
|
script = ExtResource("1_0lma2")
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
environment = SubResource("Environment_2c67a")
|
environment = SubResource("Environment_2c67a")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.258819, 0.965926, 0, -0.965926, 0.258819, 0, 10.0494, 0)
|
||||||
|
|
||||||
[node name="ChaserSpawner" type="MultiplayerSpawner" parent="."]
|
[node name="ChaserSpawner" type="MultiplayerSpawner" parent="."]
|
||||||
_spawnable_scenes = PackedStringArray("res://scenes/chaser.tscn")
|
_spawnable_scenes = PackedStringArray("res://scenes/chaser.tscn")
|
||||||
spawn_path = NodePath("../Chasers")
|
spawn_path = NodePath("../Chasers")
|
||||||
@@ -44,8 +54,6 @@ shape = SubResource("WorldBoundaryShape3D_1l61b")
|
|||||||
mesh = ExtResource("1_7j0qh")
|
mesh = ExtResource("1_7j0qh")
|
||||||
surface_material_override/0 = ExtResource("2_f8uto")
|
surface_material_override/0 = ExtResource("2_f8uto")
|
||||||
|
|
||||||
[node name="House" parent="." instance=ExtResource("4_38bom")]
|
|
||||||
|
|
||||||
[node name="Chasers" type="Node3D" parent="."]
|
[node name="Chasers" type="Node3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|
||||||
@@ -73,4 +81,21 @@ unique_name_in_owner = true
|
|||||||
wait_time = 0.5
|
wait_time = 0.5
|
||||||
autostart = true
|
autostart = true
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
||||||
|
transform = Transform3D(0.96321, 0, 0.268752, 0, 1, 0, -0.268752, 0, 0.96321, 3, 0.5, 0)
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D"]
|
||||||
|
mesh = SubResource("BoxMesh_kcty4")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
||||||
|
shape = SubResource("BoxShape3D_6koow")
|
||||||
|
|
||||||
|
[node name="MainObjective" type="StaticBody3D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="MainObjective"]
|
||||||
|
shape = SubResource("BoxShape3D_y3ciy")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="MainObjective"]
|
||||||
|
mesh = SubResource("BoxMesh_2wvq0")
|
||||||
|
|
||||||
[connection signal="timeout" from="PingTimer" to="." method="_on_ping_timer_timeout"]
|
[connection signal="timeout" from="PingTimer" to="." method="_on_ping_timer_timeout"]
|
||||||
|
|||||||
@@ -5,14 +5,14 @@ var players_in_area = {}
|
|||||||
|
|
||||||
func enter() -> void:
|
func enter() -> void:
|
||||||
super()
|
super()
|
||||||
if has_node("%Attack"): %Attack.visible = true
|
if has_node("%AttackHitbox"): %AttackHitbox.visible = true
|
||||||
if has_node("%AttackTimer"): %AttackTimer.start()
|
if has_node("%AttackTimer"): %AttackTimer.start()
|
||||||
if has_node("%AttackCooldown"): %AttackCooldown.start()
|
if has_node("%AttackCooldown"): %AttackCooldown.start()
|
||||||
hit = false
|
hit = false
|
||||||
|
|
||||||
func exit() -> void:
|
func exit() -> void:
|
||||||
super()
|
super()
|
||||||
if has_node("%Attack"): %Attack.visible = false
|
if has_node("%AttackHitbox"): %AttackHitbox.visible = false
|
||||||
|
|
||||||
func process_physics(delta: float) -> State:
|
func process_physics(delta: float) -> State:
|
||||||
if not Main.is_server_or_predicting(subject.player_id, subject.client_prediction): return
|
if not Main.is_server_or_predicting(subject.player_id, subject.client_prediction): return
|
||||||
@@ -8,7 +8,7 @@ func process_physics(delta: float) -> State:
|
|||||||
|
|
||||||
if not subject.is_on_floor(): return %Fall
|
if not subject.is_on_floor(): return %Fall
|
||||||
if has_node("%Dead") and subject.dead: return %Dead
|
if has_node("%Dead") and subject.dead: return %Dead
|
||||||
if has_node("%Lunge") and %Input.primary_interact and (not has_node("%AttackCooldown") or %AttackCooldown.time_left == 0): return %Lunge
|
if has_node("%Attack") and %Input.primary_interact and (not has_node("%AttackCooldown") or %AttackCooldown.time_left == 0): return %Attack
|
||||||
if input_direction.length() < 0.05: return
|
if input_direction.length() < 0.05: return
|
||||||
if has_node("%Walk") and %Input.walk: return %Walk
|
if has_node("%Walk") and %Input.walk: return %Walk
|
||||||
return %Run
|
return %Run
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ func process_physics(delta: float) -> State:
|
|||||||
|
|
||||||
if not subject.is_on_floor(): return %Fall
|
if not subject.is_on_floor(): return %Fall
|
||||||
if has_node("%Dead") and subject.dead: return %Dead
|
if has_node("%Dead") and subject.dead: return %Dead
|
||||||
if has_node("%Lunge") and %Input.primary_interact and (not has_node("%AttackCooldown") or %AttackCooldown.time_left == 0): return %Lunge
|
if has_node("%Attack") and %Input.primary_interact and (not has_node("%AttackCooldown") or %AttackCooldown.time_left == 0): return %Attack
|
||||||
if input_direction.length() < 0.05: return %Idle
|
if input_direction.length() < 0.05: return %Idle
|
||||||
if has_node("%Walk") and %Input.walk: return %Walk
|
if has_node("%Walk") and %Input.walk: return %Walk
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ func process_physics(delta: float) -> State:
|
|||||||
|
|
||||||
if not subject.is_on_floor(): return %Fall
|
if not subject.is_on_floor(): return %Fall
|
||||||
if has_node("%Dead") and subject.dead: return %Dead
|
if has_node("%Dead") and subject.dead: return %Dead
|
||||||
if has_node("%Lunge") and %Input.primary_interact and (not has_node("%AttackCooldown") or %AttackCooldown.time_left == 0): return %Lunge
|
if has_node("%Attack") and %Input.primary_interact and (not has_node("%AttackCooldown") or %AttackCooldown.time_left == 0): return %Attack
|
||||||
if input_direction.length() < 0.05: return %Idle
|
if input_direction.length() < 0.05: return %Idle
|
||||||
if not %Input.walk: return %Run
|
if not %Input.walk: return %Run
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user