- #include "HealthSystem.h"
- UHealthSystem::UHealthSystem()
- {
-
- PrimaryComponentTick.bCanEverTick = false;
- PrimaryComponentTick.bStartWithTickEnabled = false;
- }
- void UHealthSystem::BeginPlay()
- {
- Super::BeginPlay();
-
- Health = MaxHealth;
- }
- float UHealthSystem::GetHealth() const
- {
- return Health;
- }
- float UHealthSystem::GetMaxHealth() const
- {
- return MaxHealth;
- }
- float UHealthSystem::GetHealthAsPercentage() const
- {
- return Health / MaxHealth;
- }
- void UHealthSystem::ModifyHealth(const float Amount)
- {
- if(Amount == 0)
- return;
-
- Health += Amount;
- Amount > 0 ? OnDamageHealedEvent.Broadcast(Amount) : OnDamageTakenEvent.Broadcast(Amount);
- }
- void UHealthSystem::TakeDamage(const float Amount)
- {
- if(Amount > 0)
- {
- Health -= Amount;
- OnDamageTakenEvent.Broadcast(Amount);
- }
- }
-
- void UHealthSystem::RecoverHealth(const float Amount)
- {
- if(Amount > 0)
- {
- Health += Amount;
- OnDamageHealedEvent.Broadcast(Amount);
- }
- }