63 lines
2.0 KiB
C++
63 lines
2.0 KiB
C++
// Amasson
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Components/ActorComponent.h"
|
|
#include "PerkPointsComponent.generated.h"
|
|
|
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPointChangedSignature, int32, NewPoints);
|
|
|
|
UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
|
|
class AURA_API UPerkPointsComponent : public UActorComponent
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
// Sets default values for this component's properties
|
|
UPerkPointsComponent();
|
|
|
|
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
|
|
|
|
/** Attribute Points */
|
|
|
|
FORCEINLINE int32 GetAttributePoints() const { return AttributePoints; }
|
|
UFUNCTION(BlueprintCallable, Category = "Attributes")
|
|
void AddToAttributePoints(int32 AddingPoints);
|
|
UFUNCTION(BlueprintCallable, Category = "Attributes")
|
|
int32 SpendAttributePoints(int32 Count);
|
|
UFUNCTION(BlueprintCallable, Category = "Attributes")
|
|
void SetAttributePoints(int32 NewPoints);
|
|
|
|
UPROPERTY(BlueprintAssignable, Category = "Attributes")
|
|
FOnPointChangedSignature OnAttributePointsChangedDelegate;
|
|
|
|
/** Ability Points */
|
|
|
|
FORCEINLINE int32 GetAbilityPoints() const { return AbilityPoints; }
|
|
UFUNCTION(BlueprintCallable, Category = "Abilities")
|
|
void AddToAbilityPoints(int32 AddingPoints);
|
|
UFUNCTION(BlueprintCallable, Category = "Abilities")
|
|
int32 SpendAbilityPoints(int32 Count);
|
|
UFUNCTION(BlueprintCallable, Category = "Abilities")
|
|
void SetAbilityPoints(int32 NewPoints);
|
|
|
|
UPROPERTY(BlueprintAssignable, Category = "Abilities")
|
|
FOnPointChangedSignature OnAbilityPointsChangedDelegate;
|
|
|
|
protected:
|
|
|
|
/** Attribute Points */
|
|
|
|
UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_AttributePoints, Category = "Attributes")
|
|
int32 AttributePoints = 0;
|
|
UFUNCTION() void OnRep_AttributePoints(int32 OldAttributePoints) const;
|
|
|
|
/** Ability Points */
|
|
|
|
UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_AbilityPoints, Category = "Abilitys")
|
|
int32 AbilityPoints = 0;
|
|
UFUNCTION() void OnRep_AbilityPoints(int32 OldAbilityPoints) const;
|
|
|
|
};
|