79 lines
2.8 KiB
C++
79 lines
2.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "AbilitySystem/Attributes/PHYAttributeSet.h"
|
|
#include "PHYCoreAttributeSet.generated.h"
|
|
|
|
/**
|
|
* @brief PHY 基础属性集,作为所有玩家和 AI 的通用根属性。
|
|
*/
|
|
UCLASS(BlueprintType)
|
|
class PHY_API UPHYCoreAttributeSet : public UAttributeSet
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
/** @brief 构造基础属性并读取默认配置。 */
|
|
UPHYCoreAttributeSet();
|
|
|
|
/** @brief 注册属性复制。 */
|
|
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
|
|
|
|
/** @brief 力量,影响物理攻击、格挡、破防和负重倾向。 */
|
|
UPROPERTY(BlueprintReadOnly, ReplicatedUsing=OnRep_Strength, Category="PHY|Attributes|Core")
|
|
FGameplayAttributeData Strength;
|
|
PHY_ATTRIBUTE_ACCESSORS(UPHYCoreAttributeSet, Strength);
|
|
|
|
/** @brief 灵巧,影响暴击、攻速、命中和闪避倾向。 */
|
|
UPROPERTY(BlueprintReadOnly, ReplicatedUsing=OnRep_Dexterity, Category="PHY|Attributes|Core")
|
|
FGameplayAttributeData Dexterity;
|
|
PHY_ATTRIBUTE_ACCESSORS(UPHYCoreAttributeSet, Dexterity);
|
|
|
|
/** @brief 体魄,影响生命、护甲、耐力和韧性倾向。 */
|
|
UPROPERTY(BlueprintReadOnly, ReplicatedUsing=OnRep_Vitality, Category="PHY|Attributes|Core")
|
|
FGameplayAttributeData Vitality;
|
|
PHY_ATTRIBUTE_ACCESSORS(UPHYCoreAttributeSet, Vitality);
|
|
|
|
/** @brief 智力,影响法术强度、法力和冷却缩减倾向。 */
|
|
UPROPERTY(BlueprintReadOnly, ReplicatedUsing=OnRep_Intelligence, Category="PHY|Attributes|Core")
|
|
FGameplayAttributeData Intelligence;
|
|
PHY_ATTRIBUTE_ACCESSORS(UPHYCoreAttributeSet, Intelligence);
|
|
|
|
/** @brief 精神,影响法力、魔法抗性和元素抗性倾向。 */
|
|
UPROPERTY(BlueprintReadOnly, ReplicatedUsing=OnRep_Spirit, Category="PHY|Attributes|Core")
|
|
FGameplayAttributeData Spirit;
|
|
PHY_ATTRIBUTE_ACCESSORS(UPHYCoreAttributeSet, Spirit);
|
|
|
|
/** @brief 感知,影响命中、暴击、弱点和穿透倾向。 */
|
|
UPROPERTY(BlueprintReadOnly, ReplicatedUsing=OnRep_Perception, Category="PHY|Attributes|Core")
|
|
FGameplayAttributeData Perception;
|
|
PHY_ATTRIBUTE_ACCESSORS(UPHYCoreAttributeSet, Perception);
|
|
|
|
protected:
|
|
/** @brief 复制力量。 */
|
|
UFUNCTION()
|
|
void OnRep_Strength(const FGameplayAttributeData& OldValue);
|
|
|
|
/** @brief 复制灵巧。 */
|
|
UFUNCTION()
|
|
void OnRep_Dexterity(const FGameplayAttributeData& OldValue);
|
|
|
|
/** @brief 复制体魄。 */
|
|
UFUNCTION()
|
|
void OnRep_Vitality(const FGameplayAttributeData& OldValue);
|
|
|
|
/** @brief 复制智力。 */
|
|
UFUNCTION()
|
|
void OnRep_Intelligence(const FGameplayAttributeData& OldValue);
|
|
|
|
/** @brief 复制精神。 */
|
|
UFUNCTION()
|
|
void OnRep_Spirit(const FGameplayAttributeData& OldValue);
|
|
|
|
/** @brief 复制感知。 */
|
|
UFUNCTION()
|
|
void OnRep_Perception(const FGameplayAttributeData& OldValue);
|
|
};
|