Ersetze HealthComponent und StaminaComponent durch GAS-basierte AttributeSets (`UHealthAttributeSet`, `UStaminaAttributeSet`) und füge `UAbilitySystemComponent` hinzu. Implementiere neue GameplayEffects (`UGE_HealthDamage`, `UGE_HealthHealing`, `UGE_HealthDebuff`, `UGE_StaminaFatiguePenalty`) und eine Modifikator-Berechnung (`UMMC_MaxStaminaFatiguePenalty`). Erweitere `AKingshearthLegacyCharacter` um Methoden zur Attributmanipulation (`ApplyDamage`, `SpendStamina`, etc.) und Stamina-Regeneration. Aktualisiere UI-Widgets (`HealthBarWidget`, `StaminaBarWidget`) zur Nutzung der neuen AttributeSets. Entferne Legacy-Code für Health- und Stamina-Komponenten. Füge neue Assets (Niagara-Systeme, Materialien, Texturen) hinzu und passe Projektkonfiguration an (z. B. `GameplayAbilities`-Modul, `r.Substrate`).
19 lines
543 B
C++
19 lines
543 B
C++
#include "GE_HealthDamage.h"
|
|
#include "HealthAttributeSet.h"
|
|
#include "KingshearthLegacyGameplayTags.h"
|
|
|
|
UGE_HealthDamage::UGE_HealthDamage()
|
|
{
|
|
DurationPolicy = EGameplayEffectDurationType::Instant;
|
|
|
|
FSetByCallerFloat SetByCaller;
|
|
SetByCaller.DataTag = TAG_Data_Health_Damage.GetTag();
|
|
|
|
FGameplayModifierInfo Modifier;
|
|
Modifier.Attribute = UHealthAttributeSet::GetDamageAttribute();
|
|
Modifier.ModifierOp = EGameplayModOp::Additive;
|
|
Modifier.ModifierMagnitude = FGameplayEffectModifierMagnitude(SetByCaller);
|
|
|
|
Modifiers.Add(Modifier);
|
|
}
|