Don't drink and code.
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "AbilitySystem/AuraAbilitySystemLibrary.h"
|
||||
|
||||
#include "Game/AuraGameMode.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
#include "Player/AuraPlayerState.h"
|
||||
#include "UI/WidgetController/AuraWidgetController.h"
|
||||
@@ -40,3 +41,29 @@ UAttributeMenuWidgetController* UAuraAbilitySystemLibrary::GetAttributeMenuWidge
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void UAuraAbilitySystemLibrary::InitializeDefaultAttributes(const UObject* WorldContextObject, ECharacterClass CharacterClass, float Level, UAbilitySystemComponent* ASC)
|
||||
{
|
||||
AAuraGameMode* AuraGameMode = Cast<AAuraGameMode>(UGameplayStatics::GetGameMode(WorldContextObject));
|
||||
if (AuraGameMode == nullptr) return;
|
||||
|
||||
const AActor* AvatarActor = ASC->GetAvatarActor();
|
||||
|
||||
UCharacterClassInfo* CharacterClassInfo = AuraGameMode->CharacterClassInfo;
|
||||
const FCharacterClassDefaultInfo ClassDefaultInfo = CharacterClassInfo->GetClassDefaultInfo(CharacterClass);
|
||||
|
||||
FGameplayEffectContextHandle PrimaryAttributesContextHandle = ASC->MakeEffectContext();
|
||||
PrimaryAttributesContextHandle.AddSourceObject(AvatarActor);
|
||||
const FGameplayEffectSpecHandle PrimaryAttributesSpecHandle = ASC->MakeOutgoingSpec(ClassDefaultInfo.PrimaryAttributes, Level, PrimaryAttributesContextHandle);
|
||||
ASC->ApplyGameplayEffectSpecToSelf(*PrimaryAttributesSpecHandle.Data.Get());
|
||||
|
||||
FGameplayEffectContextHandle SecondaryAttributesContextHandle = ASC->MakeEffectContext();
|
||||
SecondaryAttributesContextHandle.AddSourceObject(AvatarActor);
|
||||
const FGameplayEffectSpecHandle SecondaryAttributesSpecHandle = ASC->MakeOutgoingSpec(CharacterClassInfo->SecondaryAttributes, Level, SecondaryAttributesContextHandle);
|
||||
ASC->ApplyGameplayEffectSpecToSelf(*SecondaryAttributesSpecHandle.Data.Get());
|
||||
|
||||
FGameplayEffectContextHandle VitalAttributesContextHandle = ASC->MakeEffectContext();
|
||||
VitalAttributesContextHandle.AddSourceObject(AvatarActor);
|
||||
const FGameplayEffectSpecHandle VitalAttributesSpecHandle = ASC->MakeOutgoingSpec(CharacterClassInfo->VitalAttributes, Level, VitalAttributesContextHandle);
|
||||
ASC->ApplyGameplayEffectSpecToSelf(*VitalAttributesSpecHandle.Data.Get());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user