summaryrefslogtreecommitdiff
path: root/scripts/Entities/Items
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/Entities/Items')
-rw-r--r--scripts/Entities/Items/GrimoireConsumable.cs22
-rw-r--r--scripts/Entities/Items/GrimoireConsumable.cs.uid1
-rw-r--r--scripts/Entities/Items/GrimoireConsumableDefinition.cs11
-rw-r--r--scripts/Entities/Items/GrimoireConsumableDefinition.cs.uid1
4 files changed, 35 insertions, 0 deletions
diff --git a/scripts/Entities/Items/GrimoireConsumable.cs b/scripts/Entities/Items/GrimoireConsumable.cs
new file mode 100644
index 0000000..e5157a7
--- /dev/null
+++ b/scripts/Entities/Items/GrimoireConsumable.cs
@@ -0,0 +1,22 @@
+using Godot;
+using TheLegendOfGustav.Entities.Actions;
+using TheLegendOfGustav.Entities.Actors;
+using TheLegendOfGustav.Magic;
+using TheLegendOfGustav.Map;
+
+namespace TheLegendOfGustav.Entities.Items;
+
+public partial class GrimoireConsumable(Vector2I initialPosition, MapData map, GrimoireConsumableDefinition definition) : ConsumableItem(initialPosition, map, definition)
+{
+ private SpellResource spell = definition.Spell;
+
+ public override bool Activate(ItemAction action)
+ {
+ Player consumer = action.Player;
+
+ consumer.SpellBook.LearnSpell(spell);
+
+ ConsumedBy(consumer);
+ return true;
+ }
+} \ No newline at end of file
diff --git a/scripts/Entities/Items/GrimoireConsumable.cs.uid b/scripts/Entities/Items/GrimoireConsumable.cs.uid
new file mode 100644
index 0000000..2d56832
--- /dev/null
+++ b/scripts/Entities/Items/GrimoireConsumable.cs.uid
@@ -0,0 +1 @@
+uid://cdk0yd56njql0
diff --git a/scripts/Entities/Items/GrimoireConsumableDefinition.cs b/scripts/Entities/Items/GrimoireConsumableDefinition.cs
new file mode 100644
index 0000000..4b041c1
--- /dev/null
+++ b/scripts/Entities/Items/GrimoireConsumableDefinition.cs
@@ -0,0 +1,11 @@
+using Godot;
+using TheLegendOfGustav.Magic;
+
+namespace TheLegendOfGustav.Entities.Items;
+
+[GlobalClass]
+public partial class GrimoireConsumableDefinition : ConsumableItemDefinition
+{
+ [Export]
+ public SpellResource Spell { get; set; }
+} \ No newline at end of file
diff --git a/scripts/Entities/Items/GrimoireConsumableDefinition.cs.uid b/scripts/Entities/Items/GrimoireConsumableDefinition.cs.uid
new file mode 100644
index 0000000..97ad272
--- /dev/null
+++ b/scripts/Entities/Items/GrimoireConsumableDefinition.cs.uid
@@ -0,0 +1 @@
+uid://blkth0in1fp74