Files
2026-04-22 15:51:07 +02:00

135 lines
5.0 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "Engine/EngineTypes.h"
#include "BuildingGameplayActor.h"
#include "ECaptureState.h"
#include "EContentionRules.h"
#include "EFortTeam.h"
#include "EUnlockRules.h"
#include "OnCapturePointStateChangedDelegate.h"
#include "OnTeamOwningPointChangedDelegate.h"
#include "BuildingCapturePointActor.generated.h"
class AActor;
class UPrimitiveComponent;
class USphereComponent;
UCLASS(Blueprintable, MinimalAPI)
class ABuildingCapturePointActor : public ABuildingGameplayActor {
GENERATED_BODY()
public:
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
uint8 bUseHUDIndicator: 1;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FName HUDStyle;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FVector HUDOffset;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
uint8 bHUDClampToScreenEdge: 1;
public:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
USphereComponent* CollisionComponent;
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, ReplicatedUsing=OnRep_bActivated, meta=(AllowPrivateAccess=true))
uint8 bActivated: 1;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
EContentionRules ContentionRules;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TArray<TEnumAsByte<EFortTeam::Type>> TeamsBarredFromCapture;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float PercentIncreasePerPlayerCaptor;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float PercentIncreasePerAICaptor;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float PercentDecreaseNoCaptor;
UPROPERTY(BlueprintReadWrite, EditAnywhere, ReplicatedUsing=OnRep_bLocked, meta=(AllowPrivateAccess=true))
uint8 bLocked: 1;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float UnlockInterval;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
EUnlockRules UnlockRules;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
int32 NumCapturingPoint;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
uint8 TeamCapturingPoint;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
uint8 TeamControllingPoint;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
uint8 TeamOwningPoint;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, ReplicatedUsing=OnRep_CaptureState, meta=(AllowPrivateAccess=true))
ECaptureState CaptureState;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
float CapturePercentage;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, ReplicatedUsing=OnRep_ReplicatedCapturePercentage, meta=(AllowPrivateAccess=true))
float ReplicatedCapturePercentage;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FOnCapturePointStateChanged OnCapturePointStateChanged;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FOnTeamOwningPointChanged OnTeamOwningPointChanges;
public:
ABuildingCapturePointActor();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
UFUNCTION(BlueprintCallable)
void SetActivatedState(bool bInActivated);
protected:
UFUNCTION(BlueprintCallable)
void OnRep_ReplicatedCapturePercentage();
UFUNCTION(BlueprintCallable)
void OnRep_CaptureState();
UFUNCTION(BlueprintCallable)
void OnRep_bLocked();
UFUNCTION(BlueprintCallable)
void OnRep_bActivated();
UFUNCTION(BlueprintCallable)
void OnLeaveCapturePoint(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex);
UFUNCTION(BlueprintCallable)
void OnEnterCapturePoint(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);
public:
UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
void OnCapturePointStateChange(ECaptureState InState, uint8 InTeam);
UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
void OnCapturePointLockStateChange(bool bInLocked);
UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
void OnCapturePointActiveStateChange(bool bInActive);
UFUNCTION(BlueprintCallable, BlueprintPure)
ECaptureState GetCaptureState() const;
};