81 lines
2.8 KiB
C++
Executable file
81 lines
2.8 KiB
C++
Executable file
#pragma once
|
|
#include "CoreMinimal.h"
|
|
#include "RecallableItem.h"
|
|
#include "Templates/SubclassOf.h"
|
|
#include "RecallableSentryGunItem.generated.h"
|
|
|
|
class AItem;
|
|
class ARecallableSentryGun;
|
|
class ARecallableSentryGunItem;
|
|
class UCapacityHoldingItemAggregator;
|
|
class UItemPlacerAggregator;
|
|
class UItemUpgrade;
|
|
|
|
UCLASS(Blueprintable)
|
|
class ARecallableSentryGunItem : public ARecallableItem {
|
|
GENERATED_BODY()
|
|
public:
|
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FRecallableSentryGunSignature, ARecallableSentryGun*, SentryGun);
|
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FRecallableSentryGunItemSignature, ARecallableSentryGunItem*, Item);
|
|
|
|
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
FRecallableSentryGunItemSignature OnActiveItemsChanged;
|
|
|
|
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
FRecallableSentryGunSignature OnSelectedItemChanged;
|
|
|
|
protected:
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
int32 MaxSentryCount;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float MinDistanceBetweenSentries;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
FText RecallHoldDescription;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float RecallHoldDuration;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
|
|
UCapacityHoldingItemAggregator* AmmoCapacity;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
|
|
UItemPlacerAggregator* ItemPlacer;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
TArray<UItemUpgrade*> upgrades;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
TSubclassOf<AItem> LoadoutClass;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float SupplyStatusWeight;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
float SentryAngleRestriction;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
bool bIsUpgraded;
|
|
|
|
public:
|
|
ARecallableSentryGunItem();
|
|
protected:
|
|
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
|
|
void ReceiveItemUpgraded();
|
|
|
|
public:
|
|
UFUNCTION(BlueprintCallable, BlueprintPure)
|
|
bool HasAmmoLeft();
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintPure)
|
|
ARecallableSentryGun* GetSelectedSentryGun();
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintPure)
|
|
TArray<ARecallableSentryGun*> GetActiveSentryGuns();
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintPure)
|
|
bool AreAllSentriesPlaced() const;
|
|
|
|
};
|
|
|