Camada de estilo data-driven do cliente ZMMO, portando o nucleo do projeto de referencia (Hyper) para C++ conforme ARQUITETURA.md (BP Struct proibido): - Source/ZMMO/Data/UI: UIStyleTypes.h (enums EUI*), UIStyleTokens.h (tokens primitive/semantic/component), UIStyleRow.h (FUIStyle + FUIStyleRow). - ZMMOThemeSubsystem: GetActiveUIStyle() resolve DT_UI_Styles por ThemeId com fallback Default. - Fontes: 8 UFontFace Inline (Cinzel/Rajdhani) em Content/ZMMO/UI/Fonts + DT_UI_Styles preenchido. - ARQUITETURA.md: prefixo de widget UI_, classes base UUI*_Base (UCLASS Abstract) sem prefixo ZMMO. - Config/DefaultGame.ini: UIStyleTable apontando DT_UI_Styles. - Scripts/import_fonts.py (importador idempotente). Inclui tambem o scaffolding do modulo ZMMO ainda nao versionado (Source/ZMMO/Data, Game/UI, Content/ZMMO, uproject, Build.cs). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Engine/DataTable.h"
|
|
#include "StatusEffectRow.generated.h"
|
|
|
|
class UTexture2D;
|
|
class UNiagaraSystem;
|
|
|
|
UENUM(BlueprintType)
|
|
enum class EStatusEffectKind : uint8
|
|
{
|
|
Buff UMETA(DisplayName = "Buff"),
|
|
Debuff UMETA(DisplayName = "Debuff"),
|
|
DoT UMETA(DisplayName = "Damage Over Time"),
|
|
HoT UMETA(DisplayName = "Heal Over Time"),
|
|
Crowd UMETA(DisplayName = "Crowd Control")
|
|
};
|
|
|
|
USTRUCT(BlueprintType)
|
|
struct ZMMO_API FStatusEffectRow : public FTableRowBase
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Status")
|
|
FText DisplayName;
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Status", meta = (MultiLine = true))
|
|
FText Description;
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Status")
|
|
EStatusEffectKind Kind = EStatusEffectKind::Buff;
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Status")
|
|
float Duration = 5.f;
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Status")
|
|
float TickInterval = 1.f;
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Status")
|
|
int32 TickValue = 0;
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Status")
|
|
int32 MaxStacks = 1;
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Visuals")
|
|
TSoftObjectPtr<UTexture2D> Icon;
|
|
|
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Visuals")
|
|
TSoftObjectPtr<UNiagaraSystem> AttachedVFX;
|
|
};
|