From fff3ddc3cffbcfe3c2f6c587ffca9be46590a7e4 Mon Sep 17 00:00:00 2001 From: Marco Date: Thu, 20 Mar 2025 11:15:37 +0100 Subject: [PATCH] Enemy resource --- Resources/Enemies/Base_Fairy.tres | 52 ++++++++++++++++++++++++++ Resources/Enemies/Fairy_Guard.tres | 52 ++++++++++++++++++++++++++ Scripts/Enums/DifficultyLevel.cs | 9 +++++ Scripts/Resources/EnemyResource.cs | 22 +++++++++++ Scripts/Resources/EnemyResource.cs.uid | 1 + 5 files changed, 136 insertions(+) create mode 100644 Resources/Enemies/Base_Fairy.tres create mode 100644 Resources/Enemies/Fairy_Guard.tres create mode 100644 Scripts/Enums/DifficultyLevel.cs create mode 100644 Scripts/Resources/EnemyResource.cs create mode 100644 Scripts/Resources/EnemyResource.cs.uid diff --git a/Resources/Enemies/Base_Fairy.tres b/Resources/Enemies/Base_Fairy.tres new file mode 100644 index 00000000..bc16c649 --- /dev/null +++ b/Resources/Enemies/Base_Fairy.tres @@ -0,0 +1,52 @@ +[gd_resource type="Resource" script_class="EnemyResource" load_steps=14 format=3 uid="uid://cocl3qontm3be"] + +[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="1_q1ekm"] +[ext_resource type="Script" uid="uid://cq65aed620ijo" path="res://Scripts/Resources/Loot/LootDrop.cs" id="2_sxbtw"] +[ext_resource type="Resource" uid="uid://dy53gia1tmkah" path="res://Resources/Items/Points_Pickup.tres" id="3_ppsgt"] +[ext_resource type="Resource" uid="uid://bhbufxodybsw4" path="res://Resources/Items/Shield_Pickup.tres" id="4_6iugy"] +[ext_resource type="Resource" uid="uid://dodwpect0ldjf" path="res://Resources/Items/Heart_Pickup.tres" id="5_4s7dw"] +[ext_resource type="Resource" uid="uid://clr1gln7nxa1o" path="res://Resources/Items/Power_Pickup.tres" id="6_qvgac"] +[ext_resource type="Resource" uid="uid://cdfmedtgp2rcn" path="res://Resources/Weapons/EnemyWeapon.tres" id="7_xkg5o"] +[ext_resource type="Script" uid="uid://cd5o0ceb50jki" path="res://Scripts/Resources/EnemyResource.cs" id="8_241b0"] + +[sub_resource type="Resource" id="Resource_c8nix"] +script = ExtResource("2_sxbtw") +Item = ExtResource("1_q1ekm") +Chance = 40.0 +metadata/_custom_type_script = "uid://cq65aed620ijo" + +[sub_resource type="Resource" id="Resource_gs2l3"] +script = ExtResource("2_sxbtw") +Item = ExtResource("3_ppsgt") +Chance = 10.0 +metadata/_custom_type_script = "uid://cq65aed620ijo" + +[sub_resource type="Resource" id="Resource_sqnvg"] +script = ExtResource("2_sxbtw") +Item = ExtResource("4_6iugy") +Chance = 5.0 +metadata/_custom_type_script = "uid://cq65aed620ijo" + +[sub_resource type="Resource" id="Resource_5tyar"] +script = ExtResource("2_sxbtw") +Item = ExtResource("5_4s7dw") +Chance = 5.0 +metadata/_custom_type_script = "uid://cq65aed620ijo" + +[sub_resource type="Resource" id="Resource_48xq6"] +script = ExtResource("2_sxbtw") +Item = ExtResource("6_qvgac") +Chance = 6.0 +metadata/_custom_type_script = "uid://cq65aed620ijo" + +[resource] +script = ExtResource("8_241b0") +EnemyName = &"Fairy" +EnemyKey = &"FAIRY_BASE" +PrefabPath = &"res://Scenes/Actors/Fairy_New.tscn" +MaxHealth = 2.0 +Weapon = ExtResource("7_xkg5o") +LootDrops = Array[Object]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")]) +AlarmReactRange = 200.0 +PlayerDisengageRange = 500.0 +metadata/_custom_type_script = "uid://cd5o0ceb50jki" diff --git a/Resources/Enemies/Fairy_Guard.tres b/Resources/Enemies/Fairy_Guard.tres new file mode 100644 index 00000000..f8825004 --- /dev/null +++ b/Resources/Enemies/Fairy_Guard.tres @@ -0,0 +1,52 @@ +[gd_resource type="Resource" script_class="EnemyResource" load_steps=14 format=3 uid="uid://qbo6avc7x64b"] + +[ext_resource type="Script" uid="uid://cd5o0ceb50jki" path="res://Scripts/Resources/EnemyResource.cs" id="1_p31tv"] +[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="1_u7yd8"] +[ext_resource type="Script" uid="uid://cq65aed620ijo" path="res://Scripts/Resources/Loot/LootDrop.cs" id="2_ivudp"] +[ext_resource type="Resource" uid="uid://dy53gia1tmkah" path="res://Resources/Items/Points_Pickup.tres" id="3_n54y5"] +[ext_resource type="Resource" uid="uid://bhbufxodybsw4" path="res://Resources/Items/Shield_Pickup.tres" id="4_78cwo"] +[ext_resource type="Resource" uid="uid://dodwpect0ldjf" path="res://Resources/Items/Heart_Pickup.tres" id="5_0pbok"] +[ext_resource type="Resource" uid="uid://clr1gln7nxa1o" path="res://Resources/Items/Power_Pickup.tres" id="6_bun8b"] +[ext_resource type="Resource" uid="uid://cdfmedtgp2rcn" path="res://Resources/Weapons/EnemyWeapon.tres" id="7_xlxdc"] + +[sub_resource type="Resource" id="Resource_c8nix"] +script = ExtResource("2_ivudp") +Item = ExtResource("1_u7yd8") +Chance = 40.0 +metadata/_custom_type_script = "uid://cq65aed620ijo" + +[sub_resource type="Resource" id="Resource_gs2l3"] +script = ExtResource("2_ivudp") +Item = ExtResource("3_n54y5") +Chance = 10.0 +metadata/_custom_type_script = "uid://cq65aed620ijo" + +[sub_resource type="Resource" id="Resource_sqnvg"] +script = ExtResource("2_ivudp") +Item = ExtResource("4_78cwo") +Chance = 5.0 +metadata/_custom_type_script = "uid://cq65aed620ijo" + +[sub_resource type="Resource" id="Resource_5tyar"] +script = ExtResource("2_ivudp") +Item = ExtResource("5_0pbok") +Chance = 5.0 +metadata/_custom_type_script = "uid://cq65aed620ijo" + +[sub_resource type="Resource" id="Resource_48xq6"] +script = ExtResource("2_ivudp") +Item = ExtResource("6_bun8b") +Chance = 6.0 +metadata/_custom_type_script = "uid://cq65aed620ijo" + +[resource] +script = ExtResource("1_p31tv") +EnemyName = &"Fairy Guard" +EnemyKey = &"FAIRY_GUARD" +PrefabPath = &"res://Scenes/Actors/FairyGuard_New.tscn" +MaxHealth = 4.0 +Weapon = ExtResource("7_xlxdc") +LootDrops = Array[Object]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")]) +AlarmReactRange = 200.0 +PlayerDisengageRange = 500.0 +metadata/_custom_type_script = "uid://cd5o0ceb50jki" diff --git a/Scripts/Enums/DifficultyLevel.cs b/Scripts/Enums/DifficultyLevel.cs new file mode 100644 index 00000000..7a93103a --- /dev/null +++ b/Scripts/Enums/DifficultyLevel.cs @@ -0,0 +1,9 @@ +namespace Cirno.Scripts.Enums; + +public enum DifficultyLevel +{ + Easy, + Normal, + Hard, + Lunatic +} \ No newline at end of file diff --git a/Scripts/Resources/EnemyResource.cs b/Scripts/Resources/EnemyResource.cs new file mode 100644 index 00000000..96725088 --- /dev/null +++ b/Scripts/Resources/EnemyResource.cs @@ -0,0 +1,22 @@ +using Cirno.Scripts.Resources.Loot; +using Godot; +using Godot.Collections; + +namespace Cirno.Scripts.Resources; + +[GlobalClass] +public partial class EnemyResource : Resource +{ + [Export] public StringName EnemyName { get; private set; } + [Export] public StringName EnemyKey { get; private set; } + [Export] public StringName PrefabPath { get; private set; } + [Export] public float MaxHealth { get; private set; } + [Export] public DamageResistance Resistances { get; private set; } + [Export] public WeaponResource Weapon { get; private set; } + + [Export] public Array LootDrops { get; private set; } + + [ExportCategory("AI")] + [Export] public float AlarmReactRange { get; private set; } + [Export] public float PlayerDisengageRange { get; private set; } +} \ No newline at end of file diff --git a/Scripts/Resources/EnemyResource.cs.uid b/Scripts/Resources/EnemyResource.cs.uid new file mode 100644 index 00000000..52ec354f --- /dev/null +++ b/Scripts/Resources/EnemyResource.cs.uid @@ -0,0 +1 @@ +uid://cd5o0ceb50jki