diff --git a/Enemies/Attacks/FireAtPlayer.cs b/Enemies/Attacks/FireAtPlayer.cs index d2e9ad1..5a924d1 100644 --- a/Enemies/Attacks/FireAtPlayer.cs +++ b/Enemies/Attacks/FireAtPlayer.cs @@ -4,7 +4,7 @@ using System.Linq; public partial class FireAtPlayer : Timer { [Export] - private StaticBody3D _enemy; + private Area3D _enemy; [Export] private PackedScene _fireProjectile; diff --git a/Enemies/MeleeEnemy.tscn b/Enemies/MeleeEnemy.tscn index a65b5ac..a61fd91 100644 --- a/Enemies/MeleeEnemy.tscn +++ b/Enemies/MeleeEnemy.tscn @@ -1181,8 +1181,8 @@ script = ExtResource("1_50och") [node name="CharacterBody3D" type="CharacterBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.251952, 0) -collision_layer = 0 -collision_mask = 0 +collision_layer = 4096 +collision_mask = 2 axis_lock_angular_x = true [node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"] @@ -1193,7 +1193,7 @@ shape = SubResource("BoxShape3D_1nq5h") [node name="Area3D" type="Area3D" parent="CharacterBody3D"] collision_layer = 0 -collision_mask = 4098 +collision_mask = 2 [node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D/Area3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0840461, 0.475385, 0.143401) diff --git a/Enemies/RangedEnemy.tscn b/Enemies/RangedEnemy.tscn index 466f73e..b2ac4df 100644 --- a/Enemies/RangedEnemy.tscn +++ b/Enemies/RangedEnemy.tscn @@ -4,6 +4,9 @@ [ext_resource type="PackedScene" uid="uid://rlxnnw4yay7e" path="res://Enemies/Attacks/EnemyBullet.tscn" id="3_qenx3"] [ext_resource type="Script" path="res://Enemies/Attacks/FireAtPlayer.cs" id="3_qt2md"] +[sub_resource type="BoxShape3D" id="BoxShape3D_dm3u7"] +size = Vector3(0.721796, 2.37333, 0.564825) + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cr37n"] resource_name = "Material.002" cull_mode = 2 @@ -887,182 +890,177 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_j7wsk") -[sub_resource type="BoxShape3D" id="BoxShape3D_dm3u7"] -size = Vector3(0.721796, 2.37333, 0.564825) - [node name="RangedEnemy" type="CharacterBody3D" groups=["Enemy"]] -collision_layer = 4098 -collision_mask = 4098 -axis_lock_linear_x = true -axis_lock_linear_y = true -axis_lock_linear_z = true -axis_lock_angular_x = true -axis_lock_angular_z = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.532091, 0) +collision_layer = 4096 +collision_mask = 2 script = ExtResource("1_01lvj") [node name="Timer" type="Timer" parent="." node_paths=PackedStringArray("_enemy")] wait_time = 3.0 autostart = true script = ExtResource("3_qt2md") -_enemy = NodePath("../StaticBody3D") +_enemy = NodePath("../Area3D") _fireProjectile = ExtResource("3_qenx3") -[node name="ranged enemy" type="Node3D" parent="."] -transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0.5, 0) +[node name="Area3D" type="Area3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.113206, 0.857215, 0) +collision_layer = 4096 +collision_mask = 2 -[node name="Cube" type="MeshInstance3D" parent="ranged enemy"] +[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"] +shape = SubResource("BoxShape3D_dm3u7") + +[node name="ranged enemy" type="Node3D" parent="Area3D"] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.113206, -0.357215, 0) + +[node name="Cube" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_q32da") skeleton = NodePath("") -[node name="Plane" type="MeshInstance3D" parent="ranged enemy"] +[node name="Plane" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(-0.0100222, 0.0018531, -0.000882675, 1.93522e-05, -0.00431383, -0.00927625, -0.00205249, -0.00908929, 0.00422261, -0.303114, 0.427881, 0.058823) cast_shadow = 0 mesh = SubResource("ArrayMesh_u3ad8") skeleton = NodePath("") -[node name="Cube001" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube001" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.315871, -0.0694096, -0.000752944, 0.0682386, 0.311148, -0.0558839, 0.0127182, 0.0544227, 0.318542, -0.0773843, 0.835929, -0.0333594) cast_shadow = 0 mesh = SubResource("ArrayMesh_rm34g") skeleton = NodePath("") -[node name="Cube002" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube002" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.313807, -0.0597582, 0.0504638, 0.0682386, 0.311148, -0.0558839, -0.0382248, 0.0648728, 0.31452, -0.0636578, 0.633983, -0.0944303) cast_shadow = 0 mesh = SubResource("ArrayMesh_0bt4x") skeleton = NodePath("") -[node name="Cube003" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube003" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.313807, -0.0597582, 0.0504638, 0.0682386, 0.311148, -0.0558839, -0.0382248, 0.0648728, 0.31452, -0.0655749, 0.637828, -0.0946047) cast_shadow = 0 mesh = SubResource("ArrayMesh_8yxbn") skeleton = NodePath("") -[node name="Cube004" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube004" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.313807, -0.0597582, 0.0504638, 0.0682386, 0.311148, -0.0558839, -0.0382248, 0.0648728, 0.31452, -0.0655749, 0.637828, -0.0946047) cast_shadow = 0 mesh = SubResource("ArrayMesh_15lqi") skeleton = NodePath("") -[node name="Cube005" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube005" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.305187, -0.0854223, 0.0644708, 0.0815859, 0.311789, 0.0269073, -0.0692616, -0.00912739, 0.315772, -0.0531487, 0.661378, -0.0700054) cast_shadow = 0 mesh = SubResource("ArrayMesh_mpb1j") skeleton = NodePath("") -[node name="Cube006" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube006" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.313807, -0.0597582, 0.0504638, 0.0682386, 0.311148, -0.0558839, -0.0382248, 0.0648728, 0.31452, -0.0655749, 0.637828, -0.0946047) cast_shadow = 0 mesh = SubResource("ArrayMesh_mcinf") skeleton = NodePath("") -[node name="Cube008" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube008" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_pmc1t") skeleton = NodePath("") -[node name="Cube009" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube009" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.313807, -0.0597582, 0.0504638, 0.0682386, 0.311148, -0.0558839, -0.0382248, 0.0648728, 0.31452, -0.0684862, 0.799624, -0.0750265) cast_shadow = 0 mesh = SubResource("ArrayMesh_gtkhd") skeleton = NodePath("") -[node name="Cube010" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube010" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_trp2a") skeleton = NodePath("") -[node name="Cube012" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube012" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_25adi") skeleton = NodePath("") -[node name="Cube014" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube014" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.386719, -0.0654828, -0.0060564, 0.0657464, 0.385777, 0.0270154, 0.00144638, -0.0276482, 0.391293, -0.352872, 0.654756, -0.0707455) cast_shadow = 0 mesh = SubResource("ArrayMesh_u67jf") skeleton = NodePath("") -[node name="Cube019" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube019" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_ariha") skeleton = NodePath("") -[node name="Cube020" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube020" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_xyipj") skeleton = NodePath("") -[node name="Cube021" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube021" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_jo33y") skeleton = NodePath("") -[node name="Cube022" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube022" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_7kmmw") skeleton = NodePath("") -[node name="Cube026" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube026" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_vfj0q") skeleton = NodePath("") -[node name="Circle" type="MeshInstance3D" parent="ranged enemy"] +[node name="Circle" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(-0.0166754, -0.00145308, 0.00157151, -0.00158678, 0.000108831, -0.0167367, 0.00143639, -0.0167489, -0.000245091, -0.0910357, 0.761053, 0.00444521) cast_shadow = 0 mesh = SubResource("ArrayMesh_rlqqm") skeleton = NodePath("") -[node name="Circle001" type="MeshInstance3D" parent="ranged enemy"] +[node name="Circle001" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.0164801, 0.00292982, 0.00157151, 0.001504, 0.000517407, -0.0167367, 0.00296504, -0.0165468, -0.000245089, -0.0447078, 0.770397, 0.00533548) cast_shadow = 0 mesh = SubResource("ArrayMesh_sjkuu") skeleton = NodePath("") -[node name="Cube007" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube007" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_ad76t") skeleton = NodePath("") -[node name="Cube011" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube011" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_dcy7l") skeleton = NodePath("") -[node name="Cube013" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube013" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_tup6f") skeleton = NodePath("") -[node name="Cube015" type="MeshInstance3D" parent="ranged enemy"] +[node name="Cube015" type="MeshInstance3D" parent="Area3D/ranged enemy"] transform = Transform3D(0.323408, 0, 0, 0, 0.323408, 0, 0, 0, 0.323408, -0.0862004, 0.632917, -0.0732053) cast_shadow = 0 mesh = SubResource("ArrayMesh_lu7e3") skeleton = NodePath("") -[node name="StaticBody3D" type="StaticBody3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.113206, 0.857215, 0) -collision_mask = 4098 - -[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"] -shape = SubResource("BoxShape3D_dm3u7") - [node name="CollisionShape3D" type="CollisionShape3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0714533, 0.795379, 0.0138905) shape = SubResource("BoxShape3D_dm3u7") [connection signal="timeout" from="Timer" to="Timer" method="OnFireAtPlayer"] +[connection signal="body_exited" from="Area3D" to="." method="OnEnemyHit"] diff --git a/Enemies/Scripts/RangedEnemy.cs b/Enemies/Scripts/RangedEnemy.cs index a25f9c3..d2f91bf 100644 --- a/Enemies/Scripts/RangedEnemy.cs +++ b/Enemies/Scripts/RangedEnemy.cs @@ -10,8 +10,9 @@ public partial class RangedEnemy : BasicEnemy { var convertedPlayers = players.Select(x => (Node3D)x); var target = convertedPlayers.OrderBy(x => Position.DistanceTo(x.Position)).FirstOrDefault(); - var hitBox = GetChildren().OfType().Single(); + var hitBox = GetChildren().OfType().Single(); hitBox.LookAt(target.Position, Vector3.Up); + hitBox.Rotation = new Vector3(0, hitBox.Rotation.Y, hitBox.Rotation.Z); } } } diff --git a/Player/Base/Character.cs b/Player/Base/Character.cs index a22aa7c..1bc0062 100644 --- a/Player/Base/Character.cs +++ b/Player/Base/Character.cs @@ -88,6 +88,7 @@ public partial class Character : CharacterBody3D public void OnHit(Node3D node) { + GD.Print($"Hit by {node.Name}"); if (this != null) _gameManager.CallDeferred(GameManager.MethodName.RemoveCharacter, OwnerPlayer); }