66 lines
2.0 KiB
C++
66 lines
2.0 KiB
C++
// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "AttributeSet.h"
|
|
#include "OLSAttributeSetBase.generated.h"
|
|
|
|
/**
|
|
* This macro defines a set of helper functions for accessing and initializing attributes.
|
|
*
|
|
* The following example of the macro:
|
|
* ATTRIBUTE_ACCESSORS(ULyraHealthSet, Health)
|
|
* will create the following functions:
|
|
* static FGameplayAttribute GetHealthAttribute();
|
|
* float GetHealth() const;
|
|
* void SetHealth(float NewVal);
|
|
* void InitHealth(float NewVal);
|
|
*/
|
|
#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \
|
|
GAMEPLAYATTRIBUTE_PROPERTY_GETTER(ClassName, PropertyName) \
|
|
GAMEPLAYATTRIBUTE_VALUE_GETTER(PropertyName) \
|
|
GAMEPLAYATTRIBUTE_VALUE_SETTER(PropertyName) \
|
|
GAMEPLAYATTRIBUTE_VALUE_INITTER(PropertyName)
|
|
|
|
/**
|
|
* Delegate used to broadcast attribute events, some of these parameters may be null on clients:
|
|
* @param EffectInstigator The original instigating actor for this event
|
|
* @param EffectCauser The physical actor that caused the change
|
|
* @param EffectSpec The full effect spec for this change
|
|
* @param EffectMagnitude The raw magnitude, this is before clamping
|
|
* @param OldValue The value of the attribute before it was changed
|
|
* @param NewValue The value after it was changed
|
|
*/
|
|
DECLARE_MULTICAST_DELEGATE_SixParams(
|
|
FOLSAttributeEventNativeDelegate,
|
|
class AActor* /*effectInstigator*/,
|
|
class AActor* /*effectCauser*/,
|
|
const struct FGameplayEffectSpec* /*effectSpec*/,
|
|
float /*effectMagnitude*/,
|
|
float /*oldValue*/,
|
|
float /*newValue*/);
|
|
|
|
/**
|
|
* UOLSAttributeSet
|
|
*
|
|
* Base attribute set class for the project.
|
|
*/
|
|
UCLASS()
|
|
class OLS_API UOLSAttributeSetBase : public UAttributeSet
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
|
|
UOLSAttributeSetBase();
|
|
|
|
//~ Begin UObject interface
|
|
class UWorld* GetWorld() const override;
|
|
//~ End UObject interface
|
|
|
|
public:
|
|
|
|
class UOLSAbilitySystemComponent* GetOLSAbilitySystemComponent() const;
|
|
};
|