blob: 2104693937ff39d927ff678c9660be00b18ecf17 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
using Godot;
public partial class HealingConsumable : ConsumableItem
{
private HealingConsumableDefinition definition;
public float HealingPercentage { get; private set; }
public HealingConsumable(Vector2I initialPosition, MapData map, HealingConsumableDefinition definition) : base(initialPosition, map, definition)
{
this.definition = definition;
HealingPercentage = definition.healingPercentage;
}
public override bool Activate(ItemAction action)
{
Player consumer = (Player) action.ThisActor;
int intendedAmount = (int)(HealingPercentage / 100 * consumer.MaxHp);
int recovered = consumer.Heal(intendedAmount);
// Se não tinha o que curar, a ativação falhou.
if (recovered == 0) {
MessageLogData.Instance.AddMessage("Você já está saudável.");
return false;
}
MessageLogData.Instance.AddMessage($"Você consome {DisplayName} e recupera {recovered} de HP");
ConsumedBy(consumer);
return true;
}
}
|