/
Azarel
/
Metro2
Обзор
Документация
Войти
/
Azarel
/
Metro2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Source/GameJam/Private/HealthComponent.cpp
44 строки
971 B
Arsenii
SlimeHealthChanges
19 июн 2024, 02:07
19 июн 2024, 02:07
6b2ca0d
Код
Авторство
О чём код?
// Fill out your copyright notice in the Description page of Project Settings. #include "HealthComponent.h" // Sets default values for this component's properties UHealthComponent::UHealthComponent() { PrimaryComponentTick.bCanEverTick = false; } // Called when the game starts void UHealthComponent::BeginPlay() { Super::BeginPlay(); OnHealthChanged.Broadcast(Health); AActor* ComponentOwner = GetOwner(); if (ComponentOwner) { ComponentOwner->OnTakeAnyDamage.AddDynamic(this, &UHealthComponent::OnTakeAnyDamageHandele); } } void UHealthComponent::OnTakeAnyDamageHandele(AActor* DamagedActor, float Damage, const class UDamageType* DamageType, class AController* InstigatedBy, AActor* DamageCauser) { Health -= Damage; Health = FMath::Clamp(Health - Damage, 0.f, MaxHealth); OnHealthChanged.Broadcast(Health); if (IsDead()) { OnDeath.Broadcast(); } } void UHealthComponent::SetMaxHealth(float MaxHp) { MaxHealth = MaxHp; Health = MaxHp; }