// Copyright 2025 https://yuewu.dev/en All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "StructUtils/InstancedStruct.h" #include "Abilities/GameplayAbilityTargetTypes.h" #include "GGA_GameplayAbilityTargetData_Payload.generated.h" /** * */ USTRUCT(BlueprintType) struct GENERICGAMEPLAYABILITIES_API FGGA_GameplayAbilityTargetData_Payload : public FGameplayAbilityTargetData { GENERATED_BODY() virtual ~FGGA_GameplayAbilityTargetData_Payload() override { } FGGA_GameplayAbilityTargetData_Payload() { }; FGGA_GameplayAbilityTargetData_Payload(const FInstancedStruct& InPayload) : Payload(InPayload) { } virtual UScriptStruct* GetScriptStruct() const override { return FGGA_GameplayAbilityTargetData_Payload::StaticStruct(); } virtual FString ToString() const override { return TEXT("FGGA_GameplayAbilityTargetData_Payload"); } UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = Targeting) FInstancedStruct Payload; bool NetSerialize(FArchive& Ar, class UPackageMap* Map, bool& bOutSuccess) { return Payload.NetSerialize(Ar, Map, bOutSuccess); }; }; template <> struct TStructOpsTypeTraits : public TStructOpsTypeTraitsBase2 { enum { WithNetSerializer = true, // For now this is REQUIRED for FGameplayAbilityTargetDataHandle net serialization to work }; };