50 lines
1.0 KiB
C++
50 lines
1.0 KiB
C++
// Project Lab - NHTV Igad
|
|
|
|
#pragma once
|
|
|
|
#include "Blueprint/UserWidget.h"
|
|
#include "StatBar.generated.h"
|
|
|
|
enum class EBarColor
|
|
{
|
|
Green = 0,
|
|
Red,
|
|
Blue,
|
|
Purple,
|
|
GreenGradient = 0x80,
|
|
BlueGradient
|
|
};
|
|
|
|
/**
|
|
*
|
|
*/
|
|
UCLASS()
|
|
class UNREALPROJECT_API UStatBar : public UUserWidget
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
UStatBar(const FObjectInitializer& init);
|
|
void NativeConstruct() override;
|
|
void NativeTick(const FGeometry& MyGeometry, float InDeltaTime) override;
|
|
|
|
void SetStat(int32 newStat, int32 max, bool applyAnimation);
|
|
void SetStat(float newStat, bool applyAnimation);
|
|
void SetBlocked(float newBlocked);
|
|
void SetBarColor(EBarColor colorID);
|
|
|
|
UPROPERTY(EditDefaultsOnly, Category = "Stat Bar")
|
|
float damageAnimationDuration;
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stat Bar")
|
|
bool showText;
|
|
|
|
private:
|
|
float m_damageAnimation;
|
|
float m_lastValue;
|
|
float m_currentValue;
|
|
UImage* m_base;
|
|
UImage* m_blocked;
|
|
UImage* m_damage;
|
|
UTextBlock* m_text;
|
|
};
|