Added demon enemy prototype

- Created Demon enemy scene with animations
- Implemented demon AI, detection, pursuit, attack, and damage systems
- Adjusted enemy collision layers to allow flying enemies to overlap the player
- Added and tested combat encounters in Demon Race and Graveyard memory levels
This commit is contained in:
doctorbatmanwho-creator committed 2026-06-15 19:00:32 -04:00
1 parent 0f7889adfb
commit f0d3931c37
24 files changed
+669 -23

No files matched your search

+17
View File
@@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=3 uid="uid://bnvrarj8b5adq"]
[ext_resource type="Script" uid="uid://4mvhseasvij4" path="res://Scripts/MemoryPiece.gd" id="1_jkw5v"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ef2q7"]
size = Vector2(44, 36)
[node name="MemoryPiece" type="Area2D"]
script = ExtResource("1_jkw5v")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
scale = Vector2(0.1, 0.1)
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-1, 0)
shape = SubResource("RectangleShape2D_ef2q7")
+29
View File
@@ -0,0 +1,29 @@
[gd_scene load_steps=5 format=3 uid="uid://dyxbksdpg14iw"]
[ext_resource type="Script" uid="uid://dvy2m2noeyqdg" path="res://Scripts/wardrobe.gd" id="1_g2djp"]
[ext_resource type="Texture2D" uid="uid://b4146fu52p18y" path="res://Assets/Graphics/Terrains/Items/Graveyard/closed-wardrobe.png" id="2_vjqmg"]
[ext_resource type="Texture2D" uid="uid://c1cttdrixt2nx" path="res://Assets/Graphics/Terrains/Items/Graveyard/opened-wardrobe.png" id="3_ufc8o"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_g5gow"]
size = Vector2(330, 380)
[node name="Wardrobe" type="Node2D"]
script = ExtResource("1_g2djp")
[node name="ClosedSprite" type="Sprite2D" parent="."]
scale = Vector2(0.2, 0.2)
texture = ExtResource("2_vjqmg")
[node name="OpenSprite" type="Sprite2D" parent="."]
visible = false
position = Vector2(-0.9999996, 0.9999987)
scale = Vector2(0.24, 0.24)
texture = ExtResource("3_ufc8o")
[node name="Area2D" type="Area2D" parent="."]
scale = Vector2(0.2, 0.2)
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(-5.000018, 9.999998)
scale = Vector2(0.9999998, 0.9999998)
shape = SubResource("RectangleShape2D_g5gow")
+115
View File
@@ -0,0 +1,115 @@
[gd_scene load_steps=17 format=3 uid="uid://dr1mp5x0cmbhw"]
[ext_resource type="Texture2D" uid="uid://d06dps348kx8t" path="res://Assets/Graphics/Pickups/coin.png" id="1_2qo34"]
[ext_resource type="Script" uid="uid://cl87sslvg52qg" path="res://Scripts/coin.gd" id="1_jgi06"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jgi06"]
[sub_resource type="AtlasTexture" id="AtlasTexture_g537i"]
atlas = ExtResource("1_2qo34")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_h2p6v"]
atlas = ExtResource("1_2qo34")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ffmqm"]
atlas = ExtResource("1_2qo34")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_81h6x"]
atlas = ExtResource("1_2qo34")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_qbp07"]
atlas = ExtResource("1_2qo34")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_2l7mo"]
atlas = ExtResource("1_2qo34")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_q30xt"]
atlas = ExtResource("1_2qo34")
region = Rect2(96, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_7w2r2"]
atlas = ExtResource("1_2qo34")
region = Rect2(112, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_tthw5"]
atlas = ExtResource("1_2qo34")
region = Rect2(128, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6pu15"]
atlas = ExtResource("1_2qo34")
region = Rect2(144, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_vgc30"]
atlas = ExtResource("1_2qo34")
region = Rect2(160, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_qtgto"]
atlas = ExtResource("1_2qo34")
region = Rect2(176, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_m55n1"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_g537i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_h2p6v")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ffmqm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_81h6x")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qbp07")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2l7mo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_q30xt")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7w2r2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tthw5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6pu15")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vgc30")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qtgto")
}],
"loop": true,
"name": &"default",
"speed": 12.0
}]
[node name="Area2D" type="Area2D"]
script = ExtResource("1_jgi06")
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
scale = Vector2(0.611397, 0.612769)
shape = SubResource("CircleShape2D_jgi06")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1
sprite_frames = SubResource("SpriteFrames_m55n1")
autoplay = "default"
frame_progress = 0.658766
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
+19
View File
@@ -0,0 +1,19 @@
[gd_scene load_steps=4 format=3 uid="uid://cd7fv3pwgr880"]
[ext_resource type="Script" uid="uid://b546t5rmhjwiu" path="res://Scripts/crate.gd" id="1_i4r3v"]
[ext_resource type="Texture2D" uid="uid://m685ffchmchr" path="res://Assets/Graphics/Objects/crate.png" id="1_wp72f"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ebmjs"]
[node name="RigidBody2D3" type="RigidBody2D"]
script = ExtResource("1_i4r3v")
metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(0, 1)
scale = Vector2(0.0754011, 0.0688039)
texture = ExtResource("1_wp72f")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_ebmjs")
debug_color = Color(0.796822, 0.420181, 0.140254, 0.42)