Restored enemy bullets collision

This commit is contained in:
Marco 2025-01-31 16:06:15 +01:00
commit 4e09694692
5 changed files with 34 additions and 2 deletions

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=9 format=3 uid="uid://v8s3kubgb2qg"]
[gd_scene load_steps=10 format=3 uid="uid://v8s3kubgb2qg"]
[ext_resource type="Texture2D" uid="uid://b4ynnb14mb4uq" path="res://Sprites/Reisen.png" id="1_4w8mj"]
[ext_resource type="Script" path="res://Scripts/Enemy.cs" id="1_lpwdj"]
@ -18,6 +18,9 @@ radius = 4.0
[sub_resource type="CircleShape2D" id="CircleShape2D_v711r"]
radius = 85.0529
[sub_resource type="RectangleShape2D" id="RectangleShape2D_m1rsg"]
size = Vector2(8, 12)
[node name="Enemy" type="CharacterBody2D" node_paths=PackedStringArray("EquippedWeapon") groups=["Destroyable"]]
collision_layer = 16
collision_mask = 9
@ -34,6 +37,7 @@ visible = false
shape = SubResource("CircleShape2D_8gtts")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
collision_layer = 16
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
visible = false
@ -64,6 +68,14 @@ path_postprocessing = 1
debug_enabled = true
debug_path_custom_color = Color(1, 0, 0, 1)
[node name="DamageHitbox" type="Area2D" parent="."]
collision_layer = 16
collision_mask = 9
[node name="CollisionShape2D" type="CollisionShape2D" parent="DamageHitbox"]
shape = SubResource("RectangleShape2D_m1rsg")
[connection signal="area_entered" from="PlayerDetection" to="." method="_on_player_detection_area_entered"]
[connection signal="area_exited" from="PlayerDetection" to="." method="_on_player_detection_area_exited"]
[connection signal="velocity_computed" from="NavigationAgent2D" to="." method="_on_navigation_agent_2d_velocity_computed"]
[connection signal="area_entered" from="DamageHitbox" to="." method="_on_damage_hitbox_area_entered"]

View file

@ -11,6 +11,7 @@ collision_layer = 8
collision_mask = 85
script = ExtResource("1_jvxw3")
Speed = 200.0
Owner = 1
metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]

View file

@ -11,6 +11,7 @@ collision_layer = 128
collision_mask = 71
script = ExtResource("1_s0j1e")
Speed = 200.0
Owner = 2
metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]

View file

@ -9,6 +9,9 @@ public partial class Bullet : Area2D
[Export]
public float Damage = 1f;
[Export]
public BulletOwner Owner = BulletOwner.None;
private Vector2 _direction = Vector2.Right;
@ -87,3 +90,10 @@ public partial class Bullet : Area2D
}
}
}
public enum BulletOwner
{
None,
Player,
Enemy
}

View file

@ -3,7 +3,7 @@ using Godot;
using System;
using System.Diagnostics;
public partial class Enemy : CharacterBody2D, IDestructible
public partial class Enemy : CharacterBody2D
{
private InteractionController _cachedPlayer;
private EnemyState _currentState = EnemyState.Idle;
@ -190,6 +190,14 @@ public partial class Enemy : CharacterBody2D, IDestructible
_currentState = EnemyState.Idle;
}
}
private void _on_damage_hitbox_area_entered(Area2D area)
{
if (area is not Bullet bullet) return;
GD.Print("Enemy Received damage");
this.Hit(bullet.Damage);
bullet.QueueFree();
}
// Bullets collision
private void _on_area_entered(Area2D area)