Extra checks in SetCurrentHealth
This commit is contained in:
parent
49fab1bf38
commit
d93127a74e
@ -59,12 +59,26 @@ float UHealthComponent::GetCurrentHealth()
|
|||||||
|
|
||||||
void UHealthComponent::SetCurrentHealth(float Value)
|
void UHealthComponent::SetCurrentHealth(float Value)
|
||||||
{
|
{
|
||||||
CurrentHealth = Value;
|
|
||||||
|
|
||||||
if (CurrentHealth > MaxHealth)
|
if (Value > MaxHealth)
|
||||||
{
|
{
|
||||||
CurrentHealth = MaxHealth;
|
CurrentHealth = MaxHealth;
|
||||||
}
|
}
|
||||||
|
else if (Value <= 0.0f)
|
||||||
|
{
|
||||||
|
IsDead = true;
|
||||||
|
OnDeath.Broadcast({GetOwner(), CurrentHealth - Value, nullptr, nullptr, nullptr});
|
||||||
|
CurrentHealth = 0.0f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Value < CurrentHealth)
|
||||||
|
{
|
||||||
|
OnDamaged.Broadcast({GetOwner(), CurrentHealth - Value, nullptr, nullptr, nullptr});
|
||||||
|
}
|
||||||
|
|
||||||
|
CurrentHealth = Value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UHealthComponent::ResetHealth()
|
void UHealthComponent::ResetHealth()
|
||||||
@ -75,9 +89,11 @@ void UHealthComponent::ResetHealth()
|
|||||||
|
|
||||||
void UHealthComponent::RecoverHealth(float value)
|
void UHealthComponent::RecoverHealth(float value)
|
||||||
{
|
{
|
||||||
// TODO: We might want to add some extra checking here
|
if (value > 0)
|
||||||
|
{
|
||||||
IncrementHealth(value);
|
IncrementHealth(value);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool UHealthComponent::GetIsDead()
|
bool UHealthComponent::GetIsDead()
|
||||||
{
|
{
|
||||||
|
@ -47,6 +47,7 @@ protected:
|
|||||||
UPROPERTY(VisibleAnywhere)
|
UPROPERTY(VisibleAnywhere)
|
||||||
float CurrentHealth;
|
float CurrentHealth;
|
||||||
|
|
||||||
|
private:
|
||||||
bool IsDead = false;
|
bool IsDead = false;
|
||||||
|
|
||||||
bool CanDamage = true;
|
bool CanDamage = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user