DRG-Femboy-Voice/Source/FSD/Public/BoscoController.h
2025-04-15 12:39:31 -07:00

161 lines
5.1 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "GameplayTagContainer.h"
#include "EInputKeys.h"
#include "FSDAIController.h"
#include "FollowTargetChangedDelegate.h"
#include "LaserPointerTarget.h"
#include "Templates/SubclassOf.h"
#include "BoscoController.generated.h"
class AActor;
class AFSDPlayerState;
class APlayerCharacter;
class UBehaviorTree;
class UDroneUseComponent;
class UHealthComponentBase;
class UTerrainMaterial;
UCLASS(Blueprintable)
class ABoscoController : public AFSDAIController {
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UBehaviorTree* BehaviourTree;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float CheckOutOfTheWayInterval;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float DistCountAsSameHit;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FFollowTargetChanged OnFollowTargetChangedDelegate;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UTerrainMaterial* HearthstoneCrystalMaterial;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TArray<UTerrainMaterial*> PlagueMaterials;
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TArray<TSubclassOf<AActor>> VacuumableTypes;
UPROPERTY(EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<TWeakObjectPtr<AActor>> VacuumTargets;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float SearchForEnemiesInterval;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float SaluteDelay;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float SaluteCooldown;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float CheckGraberInterval;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MaxThrowStrength;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MaxThrowRange;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float RepairRange;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float DistanceCountedAsClose;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FGameplayTagQuery TargetQuery;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FGameplayTagQuery AttackOnOrderQuery;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FGameplayTagQuery AttackOnSightQuery;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FGameplayTagQuery DefendTageQuery;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FGameplayTagQuery VacuumTagQuery;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ReviveHealthPercentage;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, Transient, meta=(AllowPrivateAccess=true))
UDroneUseComponent* CurrentUse;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
AActor* TryingToPickItem;
public:
ABoscoController();
UFUNCTION(BlueprintCallable)
void ReviveTarget();
UFUNCTION(BlueprintCallable)
void ResetToFollowState();
private:
UFUNCTION(BlueprintCallable)
void RegisterPlayer(APlayerCharacter* APlayerCharacter);
public:
UFUNCTION(BlueprintCallable)
void PickupItem();
private:
UFUNCTION(BlueprintCallable)
void OnUseDone(int32 TimesUsed);
public:
UFUNCTION(BlueprintCallable)
void OnSecondaryLaserPointer(const FLaserPointerTarget& HitInfo);
UFUNCTION(BlueprintCallable)
void OnPlayerShout(APlayerCharacter* APlayerCharacter);
UFUNCTION(BlueprintCallable)
void OnPlayerSalute(APlayerCharacter* aCharacater);
UFUNCTION(BlueprintCallable)
void OnPlayerLeave(AFSDPlayerState* APlayerState);
UFUNCTION(BlueprintCallable)
void OnLaserPointer(const FLaserPointerTarget& HitInfo);
UFUNCTION(BlueprintCallable)
void OnJobFinished();
protected:
UFUNCTION(BlueprintCallable)
void OnEscortTargetDied(UHealthComponentBase* Health);
public:
UFUNCTION(BlueprintCallable)
void OnCarriedUsed(APlayerCharacter* usedBy, EInputKeys Key);
UFUNCTION(BlueprintCallable, BlueprintPure)
FVector GetPointNearPlayers() const;
UFUNCTION(BlueprintCallable)
AActor* GetFollowTarget();
UFUNCTION(BlueprintCallable)
void GenerateRelativeLocation(AActor* aTarget, float aRange, float aHeightRestriction, float aMinRange, bool aTryToStayOutOfTheWay, bool aStayBehind);
UFUNCTION(BlueprintCallable)
void ConfirmPickup();
protected:
UFUNCTION(BlueprintCallable)
void CarriableDrop();
};