66. Initialize Attributes with Gameplay Effects

This commit is contained in:
2024-10-22 15:19:45 -04:00
parent 7f7a041978
commit f1a4a44c8d
8 changed files with 36 additions and 71 deletions

View File

@ -69,10 +69,16 @@ void AGasaCharacter::InitDefaultAttributes()
{
UAbilitySystemComponent* ASC = GetAbilitySystemComponent();
ensure(ASC);
ensure(DefaultAttributes);
FGameplayEffectContextHandle Context = ASC->MakeEffectContext();
FGameplayEffectSpecHandle Spec = ASC->MakeOutgoingSpec(DefaultAttributes, 1.0f, Context );
ASC->ApplyGameplayEffectSpecToTarget( * Spec.Data, ASC );
ensure(DefaultVitalAttributes);
ensure(DefaultPrimaryAttributes);
ensure(DefaultSecondaryAttributes);
FGameplayEffectContextHandle Context = ASC->MakeEffectContext();
FGameplayEffectSpecHandle SpecPrimary = ASC->MakeOutgoingSpec(DefaultPrimaryAttributes, 1.0f, Context );
FGameplayEffectSpecHandle SpecSecondary = ASC->MakeOutgoingSpec(DefaultSecondaryAttributes, 1.0f, Context );
FGameplayEffectSpecHandle SpecVital = ASC->MakeOutgoingSpec(DefaultVitalAttributes, 1.0f, Context );
ASC->ApplyGameplayEffectSpecToTarget( * SpecPrimary.Data, ASC );
ASC->ApplyGameplayEffectSpecToTarget( * SpecSecondary.Data, ASC );
ASC->ApplyGameplayEffectSpecToTarget( * SpecVital.Data, ASC );
}
#pragma endregion Ability System
@ -168,11 +174,15 @@ void AGasaCharacter::PossessedBy(AController* NewController)
GetMesh()->bOnlyAllowAutonomousTickPose = true;
}
#if 0
if (bAutoAbilitySystem)
{
AbilitySystem->InitAbilityActorInfo(this, this);
}
#if 1
// if (bAutoAbilitySystem)
// {
// // Note(Ed): For the player character; this is manually called by the player controller in NetOwner_Ready()
// AbilitySystem->InitAbilityActorInfo(this, this);
// Cast<UGasaAbilitySystemComp>(AbilitySystem)->OnAbilityActorInfoSet();
//
// InitDefaultAttributes();
// }
#endif
}
@ -196,6 +206,7 @@ void AGasaCharacter::BeginPlay()
// There is also OnPossessed, PostInitializeComponents, etc...
if (bAutoAbilitySystem)
{
// Note(Ed): For the player character; this is manually called by the player controller in NetOwner_Ready()
AbilitySystem->InitAbilityActorInfo(this, this);
Cast<UGasaAbilitySystemComp>(AbilitySystem)->OnAbilityActorInfoSet();

View File

@ -13,7 +13,7 @@ UENUM(BlueprintType)
enum class EHighlight : uint8
{
Disabled,
Enabled,
Enabled,ddddddd
};
UCLASS(Abstract)
@ -36,7 +36,13 @@ public:
TObjectPtr<UAttributeSet> Attributes;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Ability System")
TSubclassOf<UGameplayEffect> DefaultAttributes;
TSubclassOf<UGameplayEffect> DefaultVitalAttributes;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Ability System")
TSubclassOf<UGameplayEffect> DefaultPrimaryAttributes;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Ability System")
TSubclassOf<UGameplayEffect> DefaultSecondaryAttributes;
void InitDefaultAttributes();
#pragma endregion Ability System