From 75ad559cfb24a8aeddccf74506e9075a182f26b6 Mon Sep 17 00:00:00 2001 From: DongHoonYu96 Date: Sat, 8 Jun 2024 01:14:52 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20cpp=20=EC=97=90=EC=84=9C=20native=20?= =?UTF-8?q?tag=20=EC=B6=94=EA=B0=80=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Config/DefaultGameplayTags.ini | 2 - .../AuraAbilitySystemComponent.cpp | 6 +- Source/Aura/Private/AuraGameplayTags.cpp | 78 ++++++++++++++++++- Source/Aura/Public/AuraGameplayTags.h | 21 ++++- 4 files changed, 94 insertions(+), 13 deletions(-) diff --git a/Config/DefaultGameplayTags.ini b/Config/DefaultGameplayTags.ini index 13361f7..a57001b 100644 --- a/Config/DefaultGameplayTags.ini +++ b/Config/DefaultGameplayTags.ini @@ -10,8 +10,6 @@ NumBitsForContainerSize=6 NetIndexFirstBitSegment=16 +GameplayTagList=(Tag="Attributes.Vital.Health",DevComment="Amount of dmg a player can take before death") +GameplayTagList=(Tag="Attributes.Vital.Mana",DevComment="") -+GameplayTagList=(Tag="Attributes.Vital.MaxHealth",DevComment="") -+GameplayTagList=(Tag="Attributes.Vital.MaxMana",DevComment="") +GameplayTagList=(Tag="Message.HealthCrystal",DevComment="") +GameplayTagList=(Tag="Message.HealthPotion",DevComment="") +GameplayTagList=(Tag="Message.ManaCrystal",DevComment="") diff --git a/Source/Aura/Private/AbilitySystem/AuraAbilitySystemComponent.cpp b/Source/Aura/Private/AbilitySystem/AuraAbilitySystemComponent.cpp index a469fd7..d20b560 100644 --- a/Source/Aura/Private/AbilitySystem/AuraAbilitySystemComponent.cpp +++ b/Source/Aura/Private/AbilitySystem/AuraAbilitySystemComponent.cpp @@ -8,11 +8,7 @@ void UAuraAbilitySystemComponent::AbilityActorInfoSet() { OnGameplayEffectAppliedDelegateToSelf.AddUObject(this,&UAuraAbilitySystemComponent::EffectApplied); - - const FAuraGameplayTags& GameplayTags= FAuraGameplayTags::Get(); - //GameplayTags.Attributes_Secondary_Armor.ToString(); - GEngine->AddOnScreenDebugMessage( - -1,10.f,FColor::Orange,FString::Printf(TEXT("Tag : %s"),*GameplayTags.Attributes_Secondary_Armor.ToString())); + } void UAuraAbilitySystemComponent::EffectApplied(UAbilitySystemComponent* AbilitySystemComponent, diff --git a/Source/Aura/Private/AuraGameplayTags.cpp b/Source/Aura/Private/AuraGameplayTags.cpp index 63a2f99..003c8aa 100644 --- a/Source/Aura/Private/AuraGameplayTags.cpp +++ b/Source/Aura/Private/AuraGameplayTags.cpp @@ -8,6 +8,80 @@ FAuraGameplayTags FAuraGameplayTags::GameplayTags; //전역변수 void FAuraGameplayTags::InitializeNativeGameplayTags() { - //단순히 태그를 추가 - GameplayTags.Attributes_Secondary_Armor = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Attributes.Secondary.Armor"),FString("Reduces damage taken, improves Block Chance")); + /* + * Primary Attributes + */ + GameplayTags.Attributes_Primary_Strength = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Primary.Strength"), + FString("Increases physical damage") + ); + + GameplayTags.Attributes_Primary_Intelligence = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Primary.Intelligence"), + FString("Increases magical damage") + ); + + GameplayTags.Attributes_Primary_Resilience = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Primary.Resilience"), + FString("Increases Armor and Armor Penetration") + ); + + GameplayTags.Attributes_Primary_Vigor = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Primary.Vigor"), + FString("Increases Health") + ); + + /* + * Secondary Attributes + */ + + GameplayTags.Attributes_Secondary_Armor = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Secondary.Armor"), + FString("Reduces damage taken, improves Block Chance") + ); + + GameplayTags.Attributes_Secondary_ArmorPenetration = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Secondary.ArmorPenetration"), + FString("Ignores Percentage of enemy Armor, increases Critical Hit Chance") + ); + + GameplayTags.Attributes_Secondary_BlockChance = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Secondary.BlockChance"), + FString("Chance to cut incoming damage in half") + ); + + GameplayTags.Attributes_Secondary_CriticalHitChance = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Secondary.CriticalHitChance"), + FString("Chance to double damage plus critical hit bonus") + ); + + GameplayTags.Attributes_Secondary_CriticalHitDamage = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Secondary.CriticalHitDamage"), + FString("Bonus damage added when a critical hit is scored") + ); + + GameplayTags.Attributes_Secondary_CriticalHitResistance = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Secondary.CriticalHitResistance"), + FString("Reduces Critical Hit Chance of attacking enemies") + ); + + GameplayTags.Attributes_Secondary_HealthRegeneration = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Secondary.HealthRegeneration"), + FString("Amount of Health regenerated every 1 second") + ); + + GameplayTags.Attributes_Secondary_ManaRegeneration = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Secondary.ManaRegeneration"), + FString("Amount of Mana regenerated every 1 second") + ); + + GameplayTags.Attributes_Secondary_MaxHealth = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Secondary.MaxHealth"), + FString("Maximum amount of Health obtainable") + ); + + GameplayTags.Attributes_Secondary_MaxMana = UGameplayTagsManager::Get().AddNativeGameplayTag( + FName("Attributes.Secondary.MaxMana"), + FString("Maximum amount of Mana obtainable") + ); } diff --git a/Source/Aura/Public/AuraGameplayTags.h b/Source/Aura/Public/AuraGameplayTags.h index c0a7fef..ad55286 100644 --- a/Source/Aura/Public/AuraGameplayTags.h +++ b/Source/Aura/Public/AuraGameplayTags.h @@ -14,13 +14,26 @@ struct FAuraGameplayTags { public: - static const FAuraGameplayTags& Get(){ return GameplayTags; } - static void InitializeNativeGameplayTags(); //@Setter + static const FAuraGameplayTags& Get(){ return GameplayTags; } + static void InitializeNativeGameplayTags(); //@Setter + FGameplayTag Attributes_Primary_Strength; + FGameplayTag Attributes_Primary_Intelligence; + FGameplayTag Attributes_Primary_Resilience; + FGameplayTag Attributes_Primary_Vigor; - FGameplayTag Attributes_Secondary_Armor; + FGameplayTag Attributes_Secondary_Armor; + FGameplayTag Attributes_Secondary_ArmorPenetration; + FGameplayTag Attributes_Secondary_BlockChance; + FGameplayTag Attributes_Secondary_CriticalHitChance; + FGameplayTag Attributes_Secondary_CriticalHitDamage; + FGameplayTag Attributes_Secondary_CriticalHitResistance; + FGameplayTag Attributes_Secondary_HealthRegeneration; + FGameplayTag Attributes_Secondary_ManaRegeneration; + FGameplayTag Attributes_Secondary_MaxHealth; + FGameplayTag Attributes_Secondary_MaxMana; protected: private: - static FAuraGameplayTags GameplayTags; + static FAuraGameplayTags GameplayTags; }; \ No newline at end of file