Remove some casts

This commit is contained in:
baz 2024-11-18 02:23:30 +00:00
parent e694e647b0
commit e55d62ff05
4 changed files with 25 additions and 18 deletions

View File

@ -2,9 +2,7 @@
#include "EXPPickup.h"
#include "EXPComponent.h"
#include "PlayerCharacter.h"
void AEXPPickup::BeginPlay()
{
@ -17,11 +15,12 @@ void AEXPPickup::Tick(float DeltaSeconds)
}
void AEXPPickup::OnInnerBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor,
UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep,
const FHitResult& SweepResult)
{
if (APlayerCharacter* PlayerCharacter = Cast<APlayerCharacter>(OtherActor))
if (UEXPComponent* expComponent = OtherActor->GetComponentByClass<UEXPComponent>())
{
PlayerCharacter->GetEXPComponent()->IncrementEXP(EXP);
expComponent->IncrementEXP(EXP);
Super::OnInnerBeginOverlap(OverlappedComponent, OtherActor, OtherComp, OtherBodyIndex, bFromSweep, SweepResult);
}
}

View File

@ -4,7 +4,6 @@
#include "GoldPickup.h"
#include "GoldComponent.h"
#include "PlayerCharacter.h"
class APlayerCharacter;
@ -19,11 +18,12 @@ void AGoldPickup::Tick(float DeltaSeconds)
}
void AGoldPickup::OnInnerBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor,
UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep,
const FHitResult& SweepResult)
{
if (APlayerCharacter* PlayerCharacter = Cast<APlayerCharacter>(OtherActor))
if (UGoldComponent* goldComponent = OtherActor->GetComponentByClass<UGoldComponent>())
{
PlayerCharacter->GetGoldComponent()->IncrementGold(Gold);
goldComponent->IncrementGold(Gold);
Super::OnInnerBeginOverlap(OverlappedComponent, OtherActor, OtherComp, OtherBodyIndex, bFromSweep, SweepResult);
}
}

View File

@ -4,7 +4,6 @@
#include "HealthbarWidget.h"
#include "Kismet/GameplayStatics.h"
#include "vampires/PlayerCharacter.h"
#include "Components/ProgressBar.h"
#include "vampires/HealthComponent.h"
#include "vampires/VampireCharacter.h"
@ -12,15 +11,25 @@
void UHealthbarWidget::NativeConstruct()
{
Super::NativeConstruct();
APlayerCharacter* player = Cast<APlayerCharacter>(UGameplayStatics::GetPlayerCharacter(GetWorld(), 0));
UHealthComponent* healthComponent = player->GetHealthComponent();
if (ACharacter* character = UGameplayStatics::GetPlayerCharacter(GetWorld(), 0))
{
if (UHealthComponent* healthComponent = character->FindComponentByClass<UHealthComponent>())
{
healthComponent->OnDamaged.AddDynamic(this, &UHealthbarWidget::UpdateHealthBar);
UpdateHealthBar({});
}
}
}
void UHealthbarWidget::UpdateHealthBar(FDamageInfo damageInfo)
{
APlayerCharacter* player = Cast<APlayerCharacter>(UGameplayStatics::GetPlayerCharacter(GetWorld(), 0));
float percent = player->GetHealthComponent()->GetCurrentHealth() / player->GetHealthComponent()->GetMaxHealth();
if (ACharacter* character = UGameplayStatics::GetPlayerCharacter(GetWorld(), 0))
{
if (UHealthComponent* healthComponent = character->FindComponentByClass<UHealthComponent>())
{
float percent = healthComponent->GetCurrentHealth() / healthComponent->GetMaxHealth();
HealthBar->SetPercent(percent);
}
}
}

View File

@ -4,7 +4,6 @@
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "vampires/HealthComponent.h"
#include "HealthbarWidget.generated.h"
class UProgressBar;