Startup Data Asset done

master
MostExcellent 2024-10-22 23:35:53 -07:00
parent c68562eca6
commit 66995bc486
2 changed files with 28 additions and 4 deletions

View File

@ -2,3 +2,19 @@
#include "AbilitySystem/StartupData/VRStartupAbilitySystemData.h" #include "AbilitySystem/StartupData/VRStartupAbilitySystemData.h"
#include "AbilitySystemComponent.h"
#include "VRGASUtils.h"
void UVRStartupAbilitySystemData::GiveToAbilitySystemComponent(UAbilitySystemComponent* InAbilitySystemComponent, int32 ApplyLevel)
{
check(InAbilitySystemComponent)
AActor* AvatarActor = InAbilitySystemComponent->GetAvatarActor();
UVRGASUtils::BatchGrantAbilities(StartupAbilities, InAbilitySystemComponent, ApplyLevel);
UVRGASUtils::BatchGrantAbilitySets(StartupAbilitySets, InAbilitySystemComponent);
// Should the avatar actor be the source of the attribute set initializer effect?
UVRGASUtils::ApplyEffectToTargetASC(InAbilitySystemComponent, AttributeInitEffect, AvatarActor, AttributeInitLevel);
}

View File

@ -10,8 +10,12 @@
struct FVRAbilitySet; struct FVRAbilitySet;
class UGameplayAbility; class UGameplayAbility;
/** /**
* @class UVRStartupAbilitySystemData
* *
* A data asset that contains information about initial abilities, ability sets,
* and attribute initialization effects that should be given to an ability system component.
*/ */
UCLASS() UCLASS()
class VRGAS_API UVRStartupAbilitySystemData : public UDataAsset class VRGAS_API UVRStartupAbilitySystemData : public UDataAsset
@ -19,15 +23,19 @@ class VRGAS_API UVRStartupAbilitySystemData : public UDataAsset
GENERATED_BODY() GENERATED_BODY()
public: public:
// Gives abilities and ability sets to the target ASC, as well as applies the attribute initializer gameplay effect
virtual void GiveToAbilitySystemComponent(UAbilitySystemComponent* InAbilitySystemComponent, int32 ApplyLevel = 1);
// Add accessors as needed
protected:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Starup Data|Abilities") UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Starup Data|Abilities")
TArray<UGameplayAbility> StartupAbilities; TArray<TSubclassOf<UGameplayAbility>> StartupAbilities;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Starup Data|Abilities") UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Starup Data|Abilities")
TArray<FVRAbilitySet> StartupAbilitySets; TArray<FVRAbilitySet> StartupAbilitySets;
UPROPERTY(EditDefaultsOnly, Category = "Startup Data|Attributes") UPROPERTY(EditDefaultsOnly, Category = "Startup Data|Attributes")
UGameplayEffect AttributeInitEffect; TSubclassOf<UGameplayEffect> AttributeInitEffect;
UPROPERTY(EditDefaultsOnly, Category = "Startup Data|Attributes") UPROPERTY(EditDefaultsOnly, Category = "Startup Data|Attributes")
float AttributeInitLevel = 1.f; float AttributeInitLevel = 1.f;