summaryrefslogtreecommitdiff
path: root/scripts/entities/actions/PickUpAction.cs
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/entities/actions/PickUpAction.cs')
-rw-r--r--scripts/entities/actions/PickUpAction.cs34
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/entities/actions/PickUpAction.cs b/scripts/entities/actions/PickUpAction.cs
new file mode 100644
index 0000000..b772bb7
--- /dev/null
+++ b/scripts/entities/actions/PickUpAction.cs
@@ -0,0 +1,34 @@
+using Godot;
+
+public partial class PickupAction : DirectionalAction
+{
+ protected Player player;
+
+ public PickupAction(Player player, Vector2I offset) : base(player, offset)
+ {
+ this.player = player;
+ // Pegar itens requer um tempo menor.
+ cost = 2;
+ }
+
+ public override bool Perform()
+ {
+ ConsumableItem item = Map_Data.GetFirstItemAtPosition(Destination);
+
+ if (item == null) {
+ MessageLogData.Instance.AddMessage("Não tem item aqui.");
+ return false;
+ }
+
+ if (player.inventory.Items.Count >= player.inventory.Capacity) {
+ MessageLogData.Instance.AddMessage("Seu inventário está cheio");
+ return false;
+ }
+
+ Map_Data.RemoveEntity(item);
+ player.inventory.Add(item);
+
+ player.Energy -= cost;
+ return true;
+ }
+} \ No newline at end of file