0. 개요
속성 데미지를 증가시키는 게임플레이 어빌리티 업그레이드 태그를 가지고 있으면 해당 스펠 데미지를 증가시키도록 데미지 계산 식을 수정한다.
1. 속성 추가 데미지
(1) Native 게임플레이 태그 생성
FGameplayTag Upgrades_Fire_Increase10PercentDamage;
FGameplayTag Upgrades_Arcane_Increase10PercentDamage;
FGameplayTag Upgrades_Lightning_Increase10PercentDamage;
GameplayTags.Upgrades_Fire_Increase10PercentDamage = UGameplayTagsManager::Get().AddNativeGameplayTag(
FName("Upgrades.Fire.Increase10PercentDamage"),
FString("Increase Damage of Fire SpellDamage")
);
GameplayTags.Upgrades_Arcane_Increase10PercentDamage = UGameplayTagsManager::Get().AddNativeGameplayTag(
FName("Upgrades.Arcane.Increase10PercentDamage"),
FString("Increase Damage of Arcane SpellDamage")
);
GameplayTags.Upgrades_Lightning_Increase10PercentDamage = UGameplayTagsManager::Get().AddNativeGameplayTag(
FName("Upgrades.Lightning.Increase10PercentDamage"),
FString("Increase Damage of Lightning SpellDamage")
);
(2) ExecCalc_Damage의 Execute_Implementation 수정
// 속성 저항이 데미지를 퍼센트로 무시함
DamageTypeValue *= (100.f - Resistance) / 100.f;
Damage += DamageTypeValue;
if (AAuraCharacter* AuraCharacter = Cast<AAuraCharacter>(SourceAvatar))
{
if (AAuraPlayerState* AuraPS = AuraCharacter->GetPlayerState<AAuraPlayerState>())
{
// 화염 데미지 증가
if (AuraPS->HasUpgradeTag(Tags.Upgrades_Fire_Increase10PercentDamage))
{
int Stacks = AuraPS->GetUpgradeTagCount(Tags.Upgrades_Fire_Increase10PercentDamage);
Damage += Damage * 0.1f * Stacks;
}
// 전기 데미지 증가
if (AuraPS->HasUpgradeTag(Tags.Upgrades_Lightning_Increase10PercentDamage))
{
int Stacks = AuraPS->GetUpgradeTagCount(Tags.Upgrades_Lightning_Increase10PercentDamage);
Damage += Damage * 0.1f * Stacks;
}
// 화염 데미지 증가
if (AuraPS->HasUpgradeTag(Tags.Upgrades_Arcane_Increase10PercentDamage))
{
int Stacks = AuraPS->GetUpgradeTagCount(Tags.Upgrades_Arcane_Increase10PercentDamage);
Damage += Damage * 0.1f * Stacks;
}
}
}
'UE 5 스터디 > Gameplay Ability System(GAS)' 카테고리의 다른 글
| 32-16. 로그 라이크 - (3) 게임플레이 어빌리티 - (6) 뽑기 로직 리펙토링 (2) | 2025.07.09 |
|---|---|
| 24-3. 엔진 업그레이드 - (2) MVVM - 로드 및 저장 UI 버그 수정 (0) | 2025.07.08 |
| 24-2. 엔진 업그레이드 - (1) 게임플레이 어빌리티 - (1) 아케인 파편 수정 (0) | 2025.06.30 |
| 24-1. 엔진 업그레이드 - 컴파일 오류 해결 (0) | 2025.06.30 |
| 24. 언리얼 엔진 업그레이드 (UE 5.2 -> UE 5.6) (0) | 2025.06.30 |
