5#include "CoreMinimal.h"
6#include "GameFramework/Actor.h"
10#include "SoftBoundaryVolume.generated.h"
12class UAfflictionOverlapComponent;
17UCLASS(BlueprintType, Blueprintable)
20 GENERATED_UCLASS_BODY()
24 virtual int32
GetTeam()
const override {
return TeamOwner; }
26 virtual int32 SetTeam(int32 NewTeam)
override;
29 virtual TSoftObjectPtr<UTexture2D>
GetRadarIcon()
const override {
return RadarIcon; }
35 UFUNCTION(BlueprintCallable, Category =
"Soft Boundary|Events")
36 virtual
void ToggleVolume(
bool bToggle);
38 UFUNCTION(BlueprintCallable, Category = "Soft Boundary|State")
39 virtual
bool GetVolumeActiveState()
const {
return bIsBoundaryActive; }
40 UFUNCTION(BlueprintCallable, Category =
"Soft Boundary")
41 float GetSoftBoundaryRadius() const;
43 UPROPERTY(BlueprintAssignable, Category = "Soft Boundary|Events")
44 FOnTeamOwnerChangedSignature OnBoundaryTeamOwnerChanged;
45 UPROPERTY(BlueprintAssignable, Category = "Soft Boundary|Events")
46 FOnVolumeActiveStateChangedSignature OnBoundaryActiveStateChanged;
49 virtual
void BeginPlay() override;
50 virtual
void MatchEnded() override;
51 virtual
void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
54 void OnActivationToggledForActor(AActor* TargetActor,
bool bIsActivated);
57 void OnRep_TeamOwner();
59 void OnRep_IsBoundaryActive();
63 UPROPERTY(EditAnywhere, ReplicatedUsing = OnRep_TeamOwner, Category = "Soft Boundary", meta = (AllowPrivateAccess = true))
64 int32 TeamOwner = INDEX_NONE;
66 UPROPERTY(EditAnywhere, ReplicatedUsing = OnRep_TeamOwner, Category = "Soft Boundary", meta = (AllowPrivateAccess = true))
67 bool bDeactivateOnTeamNone = true;
69 UPROPERTY(EditAnywhere, ReplicatedUsing = OnRep_IsBoundaryActive, Category = "Soft Boundary", meta = (AllowPrivateAccess = true))
70 bool bIsBoundaryActive = true;
72 UPROPERTY(EditAnywhere, Category = "Soft Boundary", meta = (AllowPrivateAccess = true))
73 UAfflictionOverlapComponent* BoundaryZone =
nullptr;
76 UPROPERTY(EditDefaultsOnly, Category = "Soft Boundary", meta = (AllowPrivateAccess = true))
77 TSoftObjectPtr<UTexture2D> RadarIcon =
nullptr;
79 UPROPERTY(EditDefaultsOnly, Category = "Soft Boundary", meta = (AllowPrivateAccess = true))
80 float RadarIconOpacity = 0.3f;
82 UPROPERTY(EditDefaultsOnly, Category = "Soft Boundary", meta = (AllowPrivateAccess = true))
83 float RadarIconEnemyOpacity = .9f;
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnTeamOwnerChangedSignature, int32, NewTeam)
Definition: SoftBoundaryVolume.h:19
virtual float GetRadarIconSize() const
Definition: SoftBoundaryVolume.h:28
virtual float GetRadarIconOpacity() const override
Definition: SoftBoundaryVolume.h:30
virtual bool GetRadarIconCompensantesRotation() const override
Definition: SoftBoundaryVolume.h:32
virtual float GetRadarIconEnemyOpacity() const override
Definition: SoftBoundaryVolume.h:31
virtual TSoftObjectPtr< UTexture2D > GetRadarIcon() const override
Definition: SoftBoundaryVolume.h:29
virtual int32 GetTeam() const override
Definition: SoftBoundaryVolume.h:24
Definition: ReactsToMatchEvents.h:16
Definition: TeamInterface.h:26
Definition: TrackableInterface.h:22