diff --git a/Source/vampires/Widgets/UpgradeButtonWidget.cpp b/Source/vampires/Widgets/UpgradeButtonWidget.cpp index 21ebbd9..0e67f71 100644 --- a/Source/vampires/Widgets/UpgradeButtonWidget.cpp +++ b/Source/vampires/Widgets/UpgradeButtonWidget.cpp @@ -51,12 +51,8 @@ void UUpgradeButtonWidget::NativeOnListItemObjectSet(UObject* ListItemObject) if (Body) { Body->OnClicked.AddUniqueDynamic(this, &UUpgradeButtonWidget::OnClicked); - - Body->OnHovered.AddUniqueDynamic(this, &UUpgradeButtonWidget::PlayHoveredSound); Body->OnHovered.AddUniqueDynamic(this, &UUpgradeButtonWidget::OnHoveredDelegate); - Body->OnUnhovered.AddUniqueDynamic(this, &UUpgradeButtonWidget::OnUnhoveredDelegate); - Body->OnUnhovered.AddUniqueDynamic(this, &UUpgradeButtonWidget::PlayUnhoveredSound); } } @@ -81,6 +77,8 @@ void UUpgradeButtonWidget::NativeOnListItemObjectSet(UObject* ListItemObject) void UUpgradeButtonWidget::OnClicked() { + PlayClickedSound(); + APlayerController* PlayerController = UGameplayStatics::GetPlayerController(GetWorld(), 0); switch (UpgradeType) @@ -90,7 +88,8 @@ void UUpgradeButtonWidget::OnClicked() break; case NewWeapon: - if (UWeaponInventoryComponent* Inventory = PlayerController->GetPawn()->GetComponentByClass()) + if (UWeaponInventoryComponent* Inventory = PlayerController->GetPawn()->GetComponentByClass< + UWeaponInventoryComponent>()) { Inventory->AddWeaponToInventory(WeaponTemplate); Inventory->ObtainableWeapons.Remove(WeaponTemplate); @@ -100,7 +99,8 @@ void UUpgradeButtonWidget::OnClicked() case Health: if (PlayerController) { - if (UHealthComponent* HealthComponent = PlayerController->GetPawn()->GetComponentByClass()) + if (UHealthComponent* HealthComponent = PlayerController->GetPawn()->GetComponentByClass< + UHealthComponent>()) { HealthComponent->RecoverHealth(HealthComponent->GetMaxHealth() / 10.0f); } @@ -135,3 +135,17 @@ void UUpgradeButtonWidget::OnClicked() Parent->SetIsFocusable(false); } } + +void UUpgradeButtonWidget::OnHoveredDelegate() +{ + PlayHoveredSound(); + SetTextBlockHovered(WeaponNameTextBlock); + SetTextBlockHovered(DescriptionTextBlock); +} + +void UUpgradeButtonWidget::OnUnhoveredDelegate() +{ + PlayUnhoveredSound(); + SetTextBlockUnhovered(WeaponNameTextBlock); + SetTextBlockUnhovered(DescriptionTextBlock); +} diff --git a/Source/vampires/Widgets/UpgradeButtonWidget.h b/Source/vampires/Widgets/UpgradeButtonWidget.h index af8889e..2747c98 100644 --- a/Source/vampires/Widgets/UpgradeButtonWidget.h +++ b/Source/vampires/Widgets/UpgradeButtonWidget.h @@ -32,6 +32,20 @@ class VAMPIRES_API UUpgradeButtonWidget : public UVampireInteractiveWidget, publ GENERATED_BODY() protected: + UPROPERTY(EditDefaultsOnly) + TObjectPtr UpgradeIcon; + + UPROPERTY(EditDefaultsOnly) + TObjectPtr NewWeaponIcon; + + UPROPERTY(EditDefaultsOnly) + TObjectPtr HealthIcon; + + UPROPERTY(EditDefaultsOnly) + TObjectPtr GoldIcon; + +private: + UPROPERTY(EditDefaultsOnly, meta=(BindWidget)) TObjectPtr Body; @@ -44,25 +58,13 @@ protected: UPROPERTY(EditDefaultsOnly, meta=(BindWidget)) TObjectPtr DescriptionTextBlock; - UPROPERTY(EditDefaultsOnly) - TObjectPtr UpgradeIcon; - - UPROPERTY(EditDefaultsOnly) - TObjectPtr NewWeaponIcon; - - UPROPERTY(EditDefaultsOnly) - TObjectPtr HealthIcon; - - UPROPERTY(EditDefaultsOnly) - TObjectPtr GoldIcon; - UPROPERTY(EditDefaultsOnly) TEnumAsByte UpgradeType; - UPROPERTY(EditAnywhere, BlueprintReadWrite) + UPROPERTY() TSubclassOf WeaponTemplate; - UPROPERTY(EditAnywhere, BlueprintReadWrite) + UPROPERTY() TObjectPtr WeaponInstance; UPROPERTY() @@ -82,8 +84,8 @@ private: virtual void OnClicked(); UFUNCTION() - void OnHoveredDelegate() { SetTextBlockHovered(WeaponNameTextBlock); SetTextBlockHovered(DescriptionTextBlock); } + void OnHoveredDelegate(); UFUNCTION() - void OnUnhoveredDelegate() { SetTextBlockUnhovered(WeaponNameTextBlock); SetTextBlockUnhovered(DescriptionTextBlock); } + void OnUnhoveredDelegate(); };